龙蜥 8.9 部署大模型服务实战全流程:海光 DCU + vLLM

龙蜥(Anolis OS)8.9 操作系统上,基于海光开发者社区提供的 vLLM Docker 镜像 部署大模型服务的完整流程,涵盖 DCU 驱动安装、Docker 环境搭建、镜像拉取、服务部署与调用验证。


目录


一、环境概览

项目 说明
操作系统 龙蜥(Anolis OS)8.9
加速硬件 海光 DCU(Hygon DCU)
驱动版本 rock-6.3.30+(对应 DTK 26.04)
推理框架 vLLM 0.11.0
运行环境 Docker 容器(Ubuntu 22.04 + Python 3.11)

💡 什么是 DCU? DCU(Deep Computing Unit)是海光推出的深度计算加速卡,其编程模型兼容 ROCm 生态,可通过 vLLM 等框架高效运行大模型推理任务。


二、DCU 驱动安装

1. 选择驱动版本

目前主流的 vLLM Docker 镜像基于 DTK 26.04 构建,因此需要下载对应的驱动 .run 文件。驱动版本与硬件、DTK 的兼容关系如下:

驱动版本 支持硬件 推荐 DTK 版本
rock-6.3.8+ BW1000 / K100-AI / K100 / Z100L / Z100 25.04
rock-6.3.30+ BW1100 / BW1000 / BW150 / BW100 / BW10 / K100-AI / K100 / Z100L / Z100 26.04

🔗 DCU 驱动下载地址:请前往海光开发者社区官方下载页获取对应 .run 文件。

2. 安装依赖

根据操作系统选择对应的依赖安装命令:

# CentOS / Anolis(龙蜥)
yum install -y rpm-build gcc-c++ cmake automake elfutils-libelf-devel \
    libdrm libdrm-devel pciutils
yum install -y kernel-devel-`uname -r` kernel-modules-extra-`uname -r`

# Ubuntu
apt install -y gcc g++ cmake automake libelf-dev \
    libdrm_amdgpu1 libtinfo5 pciutils libdrm-dev
apt install -y linux-headers-`uname -r` linux-modules-extra-`uname -r`

⚠️ libdrm_amdgpu1 在不同 Ubuntu 版本中包名可能为 libdrm-amdgpu1,若安装失败可尝试替换。

3. 安装驱动

# 修改驱动安装包权限
chmod +x rock*.run

# 执行驱动安装
./rock*.run

安装过程中会提示更新 vbios,选择 是(Yes)。安装完成后重启驱动服务:

# 重启驱动服务
systemctl restart hymgr

4. 驱动验证

# 6.3.x 及其以上的驱动,检查内核模块
lsmod | grep -E "hydcu|hycu"

# 查看显卡信息
/opt/hyhal/bin/hy-smi

执行 /opt/hyhal/bin/hy-smi 后若能正常列出显卡信息,说明驱动安装成功。


三、Docker 环境搭建

1. 在线安装 Docker

# 安装依赖工具
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2

# 添加阿里云 Docker CE 镜像源
sudo yum-config-manager --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装 Docker 相关组件
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

2. 启动并设置开机自启

# 启动 Docker
sudo systemctl start docker

# 设置开机自启
sudo systemctl enable docker

四、获取 vLLM 镜像

前往光源 vLLM 镜像仓库,找到需要的 vLLM 版本,点击对应镜像右下角的 复制 按钮即可获得拉取命令,例如:

docker pull harbor.sourcefind.cn:5443/dcu/admin/base/vllm:0.11.0-ubuntu22.04-dtk26.04-py3.11

📌 镜像命名解析vllm:0.11.0 表示 vLLM 版本,ubuntu22.04 为容器基础系统,dtk26.04 为对应的 DCU 工具包版本,py3.11 为 Python 版本。


五、部署模型服务

1. 启动容器

docker run -d \
    --name dcu-model-service \
    --restart=unless-stopped \
    --network=host \
    --ipc=host \
    --shm-size=16G \
    --device=/dev/kfd \
    --device=/dev/mkfd \
    --device=/dev/dri \
    -v /data/model/llm:/model \
    -v /opt/hyhal:/opt/hyhal \
    --group-add video \
    --cap-add=SYS_PTRACE \
    --security-opt seccomp=unconfined \
    -e VLLM_LOGGING_LEVEL=INFO \
    harbor.sourcefind.cn:5443/dcu/admin/base/vllm:0.11.0-ubuntu22.04-dtk26.04-py3.11 \
    python -m vllm.entrypoints.openai.api_server \
    --model /model \
    --served-model-name test \
    --host 0.0.0.0 \
    --port 30000 \
    --max-model-len 20000 \
    --tensor-parallel-size 4 \
    --gpu-memory-utilization 0.9 \
    --trust-remote-code \
    --dtype bfloat16

2. vLLM 服务参数说明

参数 说明
--model /model 模型路径(容器内挂载路径)
--served-model-name test API 中显示的模型名称
--host 0.0.0.0 监听所有网络地址
--port 30000 服务端口
--max-model-len 20000 最大序列长度
--tensor-parallel-size 4 张量并行度(对应 4 张 DCU)
--gpu-memory-utilization 0.9 GPU 显存利用率上限
--trust-remote-code 信任模型仓库中的远程代码
--dtype bfloat16 推理数据类型

3. Docker 运行参数说明

参数分类 参数 说明
基础 -d 后台运行容器
--name dcu-model-service 容器名称
重启策略 --restart unless-stopped 异常崩溃自动重启,手动停止后不重启
网络 --network host 使用宿主机网络,无网络隔离
内存/IPC --ipc host 共享宿主机 IPC 命名空间
--shm-size 16G 共享内存大小 16GB
设备挂载 --device /dev/kfd DCU 核心驱动设备
--device /dev/mkfd DCU 辅助设备文件
--device /dev/dri DCU 显示/计算设备
数据卷 -v 模型目录:/model 挂载模型文件
-v /opt/hyhal:/opt/hyhal 挂载 DCU 运行时库
权限 --group-add video 加入 video 组以访问 DCU
--cap-add SYS_PTRACE 允许 ptrace 系统调用
--security-opt seccomp=unconfined 禁用 seccomp 限制
环境变量 -e VLLM_LOGGING_LEVEL=INFO 设置日志级别
镜像 harbor.sourcefind.cn:5443/dcu/admin/base/vllm:0.11.0-ubuntu22.04-dtk26.04-py3.11 vLLM DCU 镜像

4. 验证服务状态

# 查看容器是否正常运行
docker ps

# 查看启动日志,确认无报错
docker logs -f dcu-model-service

容器启动后,可通过 hy-smi 观察到显卡显存被占用,说明模型已成功加载。

在这里插入图片描述


六、服务调用验证

服务启动成功后,通过 OpenAI 兼容接口进行调用测试:

curl -s -X POST http://127.0.0.1:30000/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "test",
        "messages": [
            {"role": "user", "content": "Hello"}
        ],
        "max_tokens": 200,
        "temperature": 0.7,
        "stream": true
    }'

返回符合 OpenAI Chat Completions 格式的响应即表示部署成功。


七、常见问题

Q1:容器启动失败,提示无法找到 /dev/kfd

驱动未正确安装或未重启服务。执行以下命令检查:

lsmod | grep -E "hydcu|hycu"
systemctl restart hymgr

Q2:--tensor-parallel-size 应该如何设置?

应设置为参与推理的 DCU 卡数量,且需能整除模型的注意力头数。例如 4 卡则设置为 4

Q3:显存不足(OOM)如何调整?

适当降低 --max-model-len--gpu-memory-utilization 的值。


参考链接

  • https://developer.sourcefind.cn/servicelist/detail?post_id=61036870-b3c7-11f0-9989-acde48001122&active=Overview

  • https://download.sourcefind.cn:65024/6/main/

Logo

免费领 150 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐