海光DCU部署大模型:从驱动到推理的完整操作流程
在海光DCU上部署大模型,核心流程是确认硬件与系统兼容性、安装驱动和DTK软件栈、拉取适配的推理镜像、启动服务并验证输出。
整个过程对Linux命令有一定要求,但只要按顺序检查,零基础用户也能逐步完成。
本文以常见Linux服务器环境为例,给出可执行的操作路径和验证方法,具体版本号请以你拿到的驱动包和镜像说明为准。
先确认硬件和系统是否就绪
开始前,先登录服务器确认DCU已被系统识别。
执行以下命令查看PCI设备:
lspci | grep -i -E "display|hygon|dcu"
如果能看到海光相关设备条目,说明硬件已被枚举。
接着检查操作系统版本:
cat /etc/os-release
uname -r
建议使用厂商兼容性列表中明确支持的Linux发行版和内核版本,不要在同一台机器上混装其他加速卡的驱动。
还需要确认三件事:
- 服务器能正常访问外网或内网镜像仓库,便于拉取容器镜像。
- 磁盘至少有几十GB空闲空间,用于存放驱动、镜像和模型权重。
- 你有root权限或sudo权限,驱动安装和内核模块加载都需要提权。
安装DCU驱动和DTK软件栈
驱动和DTK通常由厂商提供离线安装包,文件名可能类似hygon-driver-*.run和dtk-*.run。
上传到服务器后,按以下顺序操作:
- 安装编译依赖,避免内核模块编译失败:
sudo apt update
sudo apt install -y gcc make dkms linux-headers-$(uname -r)
如果是CentOS或Rocky Linux,把apt换成yum或dnf,包名相应调整。
- 给安装包执行权限并运行:
chmod +x hygon-driver-*.run
sudo ./hygon-driver-*.run
安装过程中如果提示是否加载内核模块,选择允许。
完成后重启服务器:
sudo reboot
- 重启后验证驱动状态:
lsmod | grep -i hygon
能看到相关模块即表示驱动已加载。
再安装DTK软件栈,方式和驱动类似,安装后检查环境变量是否生效:
echo $PATH | grep -i dtk
如果环境变量没有自动写入,根据安装包说明手动在/etc/profile.d/下添加脚本,然后执行source /etc/profile。
用容器方式运行大模型推理
推荐用Docker容器部署,避免宿主机Python依赖冲突。
先确认Docker已安装并运行:
docker version
然后拉取适配海光DCU的推理镜像。
镜像名称和标签以厂商提供的仓库为准,不要随意使用通用CUDA镜像。
启动容器时通常需要挂载设备目录和模型目录,示例命令如下:
docker run -it --rm \
--device=/dev/kfd \
--device=/dev/dri \
-v /data/models:/models \
-p 8000:8000 \
<适配DCU的推理镜像> bash
进入容器后,先检查DCU是否可见:
hy-smi
如果hy-smi能列出设备信息,说明容器内驱动映射正常。
接着在容器内安装或确认推理框架,例如vLLM的海光适配版本,启动服务:
python -m vllm.entrypoints.openai.api_server \
--model /models/你的模型目录 \
--port 8000
模型目录需要提前下载好,并确认文件完整。
启动日志出现监听端口后,不要急着关掉终端,另开一个窗口做验证。
验证推理服务是否正常
用curl调用接口,检查模型能否返回结果:
curl http://127.0.0.1:8000/v1/models
正常应返回模型列表JSON。
再发一条简单对话请求:
curl http://127.0.0.1:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"你的模型名","messages":[{"role":"user","content":"你好"}]}'
如果返回内容包含模型回复,说明部署成功。
同时观察hy-smi中的显存占用和利用率,确认请求确实跑在DCU上,而不是回退到CPU。
容易踩坑的几个地方
- 驱动安装后没有重启:内核模块可能未加载,
hy-smi会报找不到设备。 - 容器没有映射设备:漏掉
--device参数时,容器内看不到DCU,推理会失败或极慢。 - 镜像与驱动版本不匹配:DTK版本和镜像内运行时版本差异过大时,可能出现初始化错误,优先使用厂商配套版本。
- 模型权重不完整:下载中断会导致加载时报错,检查文件大小和校验值。
- 端口被占用:启动前用
ss -lntp | grep 8000确认端口空闲。
出现报错时,先看容器日志和hy-smi输出,再对照驱动版本与镜像说明排查,不要盲目重装系统。
整个流程的关键在于驱动、DTK和推理镜像三者版本匹配。
部署完成后,建议把驱动版本、DTK版本、镜像标签和模型名称记录到运维文档中,方便后续复现和升级。
如果你在某个步骤卡住,优先回看该步骤的验证命令输出,再决定是否继续下一步。