ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

SGLang 部署翻车急救指南:PyTorch 版本兼容问题一次讲透(附 NVIDIA/CPU/AMD 可复制配方)

SGLang 部署翻车急救指南:PyTorch 版本兼容问题一次讲透(附 NVIDIA/CPU/AMD 可复制配方) SGLang 部署翻车急救指南PyTorch 版本兼容问题一次讲透附 NVIDIA/CPU/AMD 可复制配方【免费下载链接】sglangSGLang is a high-performance serving framework for large language models and multimodal models.项目地址: https://gitcode.com/GitHub_Trending/sg/sglang你在 GPU 机器上装 SGLang服务一起来就报 CUDA 或 torch 对不上号。问题九成出在 PyTorch 版本兼容这条链上——主分支、CPU、ROCm 各自锁了不同的 torch 版本装错一个整条链路就塌。SGLang 是一个面向大模型与多模态模型的高性能推理服务框架本文只解决一件事怎么让它的 PyTorch 版本在你机器上真正跑起来。A先看图各平台到底锁了哪个 torch把版本约束摊开看比翻源码快。下面这张表是当前仓库里每个变体真实锁定的 torch 版本3.10为统一 Python 门槛torchaudio2.11.0、transformers5.12.1全平台一致锁死。平台 / 组件torch 约束出处主包NVIDIA 默认torch2.13.0python/pyproject.tomlCPUtorch2.12.0python/pyproject_cpu.tomlROCm 7.2.4 变体torch2.11.0python/pyproject_other.tomlIntel XPUtorch2.13.0xpupython/pyproject_xpu.tomlsglang-kernelGPU 构建torch2.13.0python/sglang/kernels/aot/pyproject.tomlsglang-kernelROCm 构建torch2.8.0python/sglang/kernels/aot/pyproject_rocm.tomlsglang-kernelCPU 构建torch2.12.0python/sglang/kernels/aot/pyproject_cpu.toml关键结论没有一个 torch 通吃所有平台。主包要 2.13.0CPU 要 2.12.0ROCm 7.2.4 只要 2.11.0。你环境里若是别的版本冲突是必然的不是偶然的。B三个高频翻车现场现场 1CUDA 12 机器装完flashinfer / 内核起不来现象默认装法CUDA 13在只有 CUDA 12 的机器上启动报内核不匹配或报OSError: CUDA_HOME environment variable is not set。根因默认 wheel 走 CUDA 13 源内核与 flashinfer 的预编译产物和你的驱动对不上。关键证据官方安装页专门给了 CUDA 12 的回退配方用cu129索引重装 torch 与内核。见 docs/docs/get-started/install.mdx。现场 2跨平台复用环境依赖互相打架现象同一台机器又想跑 GPU 又想跑 CPU 变体pip 解析时 torchaudio、transformers 反复被改写最后 import 报错。根因主包锁torch2.13.0CPU 配方锁torch2.12.0两者对torchaudio2.11.0、transformers5.12.1的期望又和 torch 版本绑定共用一个 site-packages 必然漂移。关键证据python/pyproject_cpu.toml 与 python/pyproject.toml 的dependencies段torch 主版本号不同是冲突的直接来源。现场 3静默装成了旧版半天查不出现象装完python -c import sglang能 import但行为像旧版本跑新特性全报错。根因部分依赖只在 PyPI 发布 pre-releaseuv早于 0.12.0 时若不加--prereleaseallow会静默退回 SGLang 0.5.9。关键证据安装页原话——uv 旧版本silently installs SGLang 0.5.9。见 docs/docs/get-started/install.mdx。C按环境给可复制安装配方以下命令均为最小可跑集按你的硬件挑一块即可。NVIDIA默认升级 pip 后用 uv 装--prereleaseallow必须带上避免退回旧版pip install --upgrade pip pip install uv uv pip install --prereleaseallow sglangNVIDIA CUDA 12强制从 cu129 源重装 torch 与内核对齐你的驱动uv pip install --force-reinstall torch2.13.0 torchaudio2.11.0 torchvision --index-url https://download.pytorch.org/whl/cu129 uv pip install --force-reinstall sglang-kernel --index-url https://docs.sglang.ai/whl/cu129/CPU走 CPU 配方sglang-cpu锁torch2.12.0不要复用 GPU 环境uv pip install --prereleaseallow sglang-cpuAMDROCm以 python/pyproject_other.toml 的srt_hip_rocm724段为准torch2.11.0、compressed-tensors0.16.0。不同 ROCm 大版本对应不同 torch别用主分支的 2.13.0 硬套细节看 docs/ 的 AMD 平台页。D进阶让代码自己适应版本仓库里已经有一套版本自适应的写法照抄即可别再手撕if cuda is 12/13。torch 版本门python/sglang/kernels/ops/kimi_k3/gemm_ar.py 第 105 行直接用if torch.__version__ 2.11.0:切换实现这是判断 torch 能力最省事的姿势。Triton 版本门python/sglang/kernels/ops/mamba/triton_ops/mamba_ssm.py 顶部TRITON3 version.parse(triton.__version__) version.parse(3.0.0)把版本判断收敛成一个模块级常量后面到处复用。环境自检装完先跑python/sglang/check_env.py见 python/sglang/check_env.py一眼看清 torch/CUDA 是否成对比等服务崩溃再回头查快得多。回归验证改动后用 test/run_suite.py 或pytest test/registered/unit过一遍单测确认版本切换没打断推理路径。原则把版本判断写成模块级布尔常量 一处分支别散落在几十处torch.__version__字符串比较里日后升级只改一个点。避坑清单确认 Python 3.10否则主包直接拒装用uv且--prereleaseallow一定带上防止静默装回 0.5.9按硬件挑 torchNVIDIA2.13.0/ CPU2.12.0/ ROCm 7.2.42.11.0/ XPU2.13.0xpuCUDA 12 机器切到cu129索引重装 torch 与 sglang-kernelGPU 与 CPU 变体拆成独立环境不共用 site-packages跑前先执行python/sglang/check_env.py自检改动后用test/run_suite.py或pytest test/registered/unit回归版本对得上服务才稳。踩到本文没覆盖的版本冲突把check_env.py输出贴到社区 issue 里一起看比独自排查快得多。【免费下载链接】sglangSGLang is a high-performance serving framework for large language models and multimodal models.项目地址: https://gitcode.com/GitHub_Trending/sg/sglang创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表