H20 大模型推理系统环境配置踩坑
基础环境
CPU:INTEL(R) XEON(R) PLATINUM 8558P 48 Cores 96 Threads × 2
GPU:NVIDIA H20-3e NVL 141G × 8,NVLINK × 4
MEM:2TB
SYS:Ubuntu Desktop 22.04 LTS
环境安装
八张H20 141GB显卡拥有1128G巨量显存,可以支持DeepSeek R1/V3全量部署
但客户公司没有运维人员懂如何安装显卡驱动,无奈我们软件人员为了完成任务只好接下硬件驱动安装问题。在使用常规方式安装驱动与容器工具包后,即使驱动与nvcc都能检测到显卡存在,容器内torch无法检测到正确的显卡数量导致无法正常执行推理。
root@fe29691aa24c:/vllm-workspace# python3
Python 3.12.11 (main, Jun 4 2025, 08:56:18) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
/usr/local/lib/python3.12/dist-packages/torch/cuda/__init__.py:174: UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount().
Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 802: system not yet initialized (Triggered internally at /pytorch/c10/cuda/CUDAFunctions.cpp:109.)
安装踩坑
- 550版本驱动与H20显卡或者Ubuntu系统不兼容(不确定,没有时间继续测试了),导致开机系统加载驱动时卡死,需要尽量新版本驱动
- .run格式驱动安装包依赖对应gcc版本,可以在
/usr/bin内添加cc到gcc对应版本(在570驱动下为gcc12)可执行文件的的软链接 - 带有NVLINK桥的系统必须安装nvidia-fabricmanager依赖,否则即使驱动与nvcc显卡识别正常,torch也无法正常检测到显卡
- nvidia-fabricmanager的大版本与小版本必须与显卡驱动完全对应,否则无法安装
- nvidia-fabricmanager可下载的版本只有有限的一些:Index of /compute/cuda/repos/ubuntu2204/x86_64 (注意操作系统版本对应),需要首先确定可用nvidia-fabricmanager版本再确定cuda-driver、显卡驱动版本
- 装驱动这一类动系统内核较高风险软件前,尽量提前问客户要服务器远程BMC权限,方便自己重装系统,防止后续可能出现的经常性系统级翻车带来的沟通麻烦和面子问题😂
正确安装步骤
- 确定Ubuntu系统版本
- 确定可下载的nvidia-fabricmanager版本并下载Index of /compute/cuda/repos/ubuntu2204/x86_64
- 根据可下载的fabricmanager版本找到对应的cuda-toolkit的.run文件并下载安装CUDA Toolkit Archive
- 配置cuda toolkit依赖:安装gcc-12;执行
ln -s /usr/bin/cc /usr/bin/gcc-12; - 运行安装勾选驱动和toolkit安装
- 安装后重启
- 重启后系统未冻结且nvidia-smi与nvcc指令运行正常说明版本与硬件兼容良好
- 配置cuda toolkit依赖:安装gcc-12;执行
- 使用
dpkg -i命令安装与驱动版本完全一致的nvidia-fabricmanager - 正常安装docker、Nvidia Container Toolkit(最新版就可以)并运行工具配置docker
- 现在可以测试容器内torch与vllm的工作情况了
FAQ
如何确定系统是否带有NVLINK桥?
执行
lspci | grep NVIDIA如果显示有bridge设备则带显卡桥
浙公网安备 33010602011771号