☰
【稀缺实测】全网缺货的B300我们搞来了!Ubuntu 22.04 + SGLang 部署 GLM-5.2-FP8 全流程实录
2026/9/27 22:10:33 网站建设 项目流程

1. B300 上跑 GLM-5.2-FP8,为什么很多人卡在第一步

B300 现在属于想买不一定买得到、买到了也不一定一次点亮的硬件。它用的是 Blackwell 架构,算力和 FP8 能力都比上一代强,但代价是整条软件栈必须一起升级:驱动、Fabric Manager、CUDA、DOCA-OFED、NCCL、PyTorch、SGLang,任何一层版本对不上,表现都不是“报个错”这么简单,而是 GPU 能识别、多卡却通信失败,或者服务卡在 load checkpoint 阶段不动。

这篇记录的是我在 Ubuntu 22.04 上,从裸机系统一路配到 SGLang 成功加载 GLM-5.2-FP8、并用 8 卡 Tensor Parallel 跑通一次推理请求的完整过程。适合手里有 B300 机器、准备做 FP8 推理验证的工程师,也适合正在评估“新卡到底能不能直接上生产”的团队。核心检索词就三个:B300、Ubuntu 22.04、SGLang 部署 GLM-5.2-FP8。

我踩过的坑集中在两处:一是以为 nvidia-smi 正常就万事大吉,结果 nvlink 状态报错;二是 NCCL 悄悄 fallback 到 SOCKET,吞吐直接掉一截。所以下面每一步我都会给出“验证动作”,跑不通就别往下走,这样排障成本最低。

2. 部署前先把版本锁死,别边装边升

B300 部署最容易犯的错,是把它当成 A100/H100 的“换卡即用”。实际上 Blackwell 的新特性需要更高版本软件栈才能释放,所以第一步不是敲命令,而是把版本清单定下来,全程不升级。

组件推荐版本说明
操作系统Ubuntu 22.04 LTS长期支持,驱动兼容性好
内核5.15+与 580 驱动兼容
NVIDIA 驱动580.159.04B300 专用
Fabric Manager580.159.04-1必须与驱动严格一致
CUDA Toolkit13.0Blackwell 完整特性
DOCA-OFED24.10-4.1.4.0高速网络与 GPUDirect RDMA
NCCLCUDA 13 对应版本多卡/多机通信
PyTorch2.5+ cu130推理框架依赖
推理框架SGLang支持 FP8 / MoE / TP
模型GLM-5.2-FP8量化配置需匹配

注意:驱动和 Fabric Manager 版本必须严格一致。我实测遇到过 Fabric Manager 小版本落后,导致nvidia-smi nvlink --status直接报错、多卡通信建不起来。

推荐执行顺序是:系统准备(禁 Nouveau)→ DOCA-OFED 与 InfiniBand → 驱动 → Fabric Manager → CUDA 13 → Python/PyTorch/SGLang → 系统优化 → 启动服务 → benchmark。每装一层验证一层,别一口气装完再排错。

3. 从裸机到可推理:可复制的配置与命令

3.1 系统准备与禁用 Nouveau

sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential dkms linux-headers-$(uname -r) \ wget curl vim git net-tools pciutils ethtool openssh-server python3-pip sudo bash -c "cat > /etc/modprobe.d/blacklist-nouveau.conf" << EOF blacklist nouveau options nouveau modeset=0 EOF sudo update-initramfs -u sudo reboot

重启后验证:

lsmod | grep nouveau # 应无输出 lspci | grep -i nvidia # 应能看到 B300

3.2 安装 DOCA-OFED 并验证高速网络

cd ~/downloads wget https://content.mellanox.com/ofed/MLNX_OFED-24.10-4.1.4.0/MLNX_OFED_LINUX-24.10-4.1.4.0-ubuntu22.04-x86_64.tgz tar -xzf MLNX_OFED_LINUX-24.10-4.1.4.0-ubuntu22.04-x86_64.tgz cd MLNX_OFED_LINUX-24.10-4.1.4.0-ubuntu22.04-x86_64 sudo ./mlnxofedinstall --all --with-doca sudo /etc/init.d/openibd restart ofed_info -s ibstat

ibstat里链路状态应为 Active。这里提醒一句:ping 通只代表 IP 可达,不代表 RDMA / InfiniBand / NCCL 链路正常,别用 ping 当验收标准。

3.3 安装驱动 580.159.04

cd ~/downloads/nvidia_driver wget https://us.download.nvidia.com/XFree86/Linux-x86_64/580.159.04/NVIDIA-Linux-x86_64-580.159.04.run chmod +x NVIDIA-Linux-x86_64-580.159.04.run sudo systemctl isolate multi-user.target sudo ./NVIDIA-Linux-x86_64-580.159.04.run sudo reboot

安装选项里,接受协议、自动更新 X 配置选 No、运行 nvidia-xconfig 选 No。重启后:

nvidia-smi # Driver Version: 580.159.04,CUDA Version: 13.0

3.4 安装 Fabric Manager 并验证多卡互通

distribution=$(. /etc/os-release; echo $ID$VERSION_ID | sed -e 's/\.//g') wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-keyring_1.0-1_all.deb sudo dpkg -i cuda-keyring_1.0-1_all.deb sudo apt update sudo apt install -y nvidia-fabricmanager-580=580.159.04-1 sudo systemctl start nvidia-fabricmanager sudo systemctl enable nvidia-fabricmanager sudo systemctl status nvidia-fabricmanager nvidia-smi nvlink --status

服务应为 active,nvlink 状态不报错。这一步过了,多卡 P2P 才有基础。

3.5 安装 CUDA 13.0 与 Python 环境

wget https://developer.download.nvidia.com/compute/cuda/13.0.0/local_installers/cuda_13.0.0_580.32.07_linux.run chmod +x cuda_13.0.0_580.32.07_linux.run sudo sh cuda_13.0.0_580.32.07_linux.run --silent --toolkit --samples echo 'export CUDA_HOME=/usr/local/cuda-13.0' >> ~/.bashrc echo 'export PATH=$CUDA_HOME/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc nvcc --version # release 13.0
sudo add-apt-repository ppa:deadsnakes/ppa -y sudo apt update sudo apt install -y python3.11 python3.11-venv python3.11-dev curl -sS https://bootstrap.pypa.io/get-pip.py | python3.11 python3.11 -m venv ~/b300-env source ~/b300-env/bin/activate pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu130 pip install transformers accelerate sglang flash-attn --no-build-isolation python -c "import torch; print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))"

torch.cuda.is_available()返回 True 才算环境通了。

3.6 系统级优化

sudo nvidia-smi -pm 1 sudo nvidia-smi -pl 700 sudo bash -c "cat >> /etc/security/limits.conf" << EOF * soft nofile 65536 * hard nofile 65536 * soft memlock unlimited * hard memlock unlimited EOF sudo bash -c "cat >> /etc/sysctl.conf" << EOF kernel.shmmax = 68719476736 kernel.shmall = 16777216 EOF sudo sysctl -p

注意:透明大页(THP)建议单独确认状态,别把无关服务当成 THP 配置命令照抄,生产环境以系统文件实际状态为准。

3.7 启动 GLM-5.2-FP8 推理服务

docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v /models:/models \ --ipc=host \ -e PYTHONUNBUFFERED=1 \ -e NCCL_DEBUG=WARN \ lmsysorg/sglang:latest \ sglang serve \ --model-path /models/GLM-5.2-FP8 \ --tp 8 \ --mem-fraction-static 0.8 \ --enforce-disable-flashinfer-allreduce-fusion \ --host 0.0.0.0

启动日志里重点看:CUDA 13.0.1、NCCL 2.28.9+cuda13.0、DeepGemm 启用、8 个 TP rank 依次初始化完成、服务监听 0.0.0.0:30000。

4. 验证请求:健康检查与一次真实推理

服务起来后先做健康检查:

curl http://127.0.0.1:30000/health

返回 200 即服务存活。再发一次真实推理请求:

curl http://127.0.0.1:30000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "/models/GLM-5.2-FP8", "messages": [{"role": "user", "content": "用一句话解释什么是 FP8 量化"}], "max_tokens": 128, "temperature": 0.7 }'

能正常返回内容,说明模型加载、TP 切分、FP8 推理链路全部打通。随后用 SGLang benchmark 压测,本次 8 卡 TP 实测结果如下:

指标实测结果
后端sglang
最大并发16
成功请求数8
压测时长8.63 s
请求吞吐0.93 req/s
输入 token 吞吐4449.39 tok/s
输出 token 吞吐309.28 tok/s
峰值输出吞吐607.00 tok/s
总 token 吞吐4758.67 tok/s
平均并发5.13

延迟方面,TTFT 约 1.3s(本次输入 token 总量 38412,属长上下文,预填充开销大),TPOT 约 12.7–13 ms/token,P99 E2E 约 8.5s。TPOT 稳定说明 FP8 生成链路没问题,P99 偏高说明并发接近上限时排队明显,生产环境别只看均值。

5. 本篇常见错排查

nvidia-smi 正常但 nvlink 报错:几乎都是 Fabric Manager 版本和驱动不一致,用 apt 装指定版本nvidia-fabricmanager-580=580.159.04-1,别手动混装多个 deb。

卡在 load checkpoint:先查/models/GLM-5.2-FP8在容器内是否存在、挂载是否成功,再查 FP8 量化配置和 SGLang 版本是否匹配。

--tp 8启动失败:确认docker --gpus all、nvidia-smi可见卡数、CUDA_VISIBLE_DEVICES三者一致。

吞吐明显偏低:开 NCCL 日志确认是否走 IB,出现 SOCKET fallback 就回头查 DOCA-OFED 和 ibstat。

报 CUDA capability 10.0+ required:多半是误装 CUDA 12 或 PyTorch 不是 cu130 版本,回退到第 3.5 步重装。

多卡 P2P 失败:检查systemctl status nvidia-fabricmanager是否 active,未启动就 enable 后重启。

6. 把服务接进你的日常开发流

单机 8 卡跑通只是起点。如果你后续要把这套推理服务接进编码助手、Agent 或内部工具链,建议先把 API Key 和接入文档理顺,避免每次调试都手动拼请求。可以到 TaoToken API Keys 生成密钥,接入方式参考 TaoToken 接入文档,想先验证模型对话效果可以直接用 模型对话。

如果是要长期跑编码类任务或 Agent 工作流,Coding Plan 更适合按周期使用;需要看资源用量和调用情况就去 控制台。官网入口在 taotoken.net。

最后补一句实操经验:B300 这套栈真正耗时间的从来不是最后那条sglang serve,而是前面驱动、Fabric Manager、CUDA、DOCA-OFED、NCCL 的逐项对齐。把每一层的验证命令都跑一遍再往下走,比事后对着日志猜要省太多时间。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询