DCU技术达人
龙蜥 8.9 部署大模型服务实战全流程:海光 DCU + vLLM
2026-10-13 18:49:22
50
# 龙蜥 8.9 部署大模型服务实战全流程:海光 DCU + vLLM > 在 **龙蜥(Anolis OS)8.9** 操作系统上,基于海光开发者社区提供的 **vLLM Docker 镜像** 部署大模型服务的完整流程,涵盖 DCU 驱动安装、Docker 环境搭建、镜像拉取、服务部署与调用验证。 --- ## 目录 - [一、环境概览](#一环境概览) - [二、DCU 驱动安装](#二dcu-驱动安装) - [三、Docker 环境搭建](#三docker-环境搭建) - [四、获取 vLLM 镜像](#四获取-vllm-镜像) - [五、部署模型服务](#五部署模型服务) - [六、服务调用验证](#六服务调用验证) - [七、常见问题](#七常见问题) --- ## 一、环境概览 | 项目 | 说明 | | -------- | ----------------------------------------- | | 操作系统 | 龙蜥(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 | ![](https://i-blog.csdnimg.cn/img_convert/67ccada4d8a5bcd9c344844c2097737c.png) ![](https://i-blog.csdnimg.cn/img_convert/c119904318b0769bad971bc5b8edc3dd.png) > 🔗 **DCU 驱动下载地址**:请前往[海光开发者社区](https://download.sourcefind.cn:65024/6/main/)官方下载页获取对应 `.run` 文件。 ### 2. 安装依赖 根据操作系统选择对应的依赖安装命令: ```bash # 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`,若安装失败可尝试替换。 ![](https://i-blog.csdnimg.cn/img_convert/07762a55a0b4321464cf4825bab3f194.png) ### 3. 安装驱动 ```bash # 修改驱动安装包权限 chmod +x rock*.run # 执行驱动安装 ./rock*.run ``` 安装过程中会提示更新 **vbios**,选择 **是(Yes)**。安装完成后重启驱动服务: ```bash # 重启驱动服务 systemctl restart hymgr ``` ![](https://i-blog.csdnimg.cn/img_convert/6e1917ade3dba08499ff987b9b512ca9.png) ### 4. 驱动验证 ```bash # 6.3.x 及其以上的驱动,检查内核模块 lsmod | grep -E "hydcu|hycu" # 查看显卡信息 /opt/hyhal/bin/hy-smi ``` 执行 `/opt/hyhal/bin/hy-smi` 后若能正常列出显卡信息,说明驱动安装成功。 ![](https://i-blog.csdnimg.cn/img_convert/7910422896a4feb08ff10e627d5a7175.png) --- ## 三、Docker 环境搭建 ### 1. 在线安装 Docker ```bash # 安装依赖工具 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 ``` ![](https://i-blog.csdnimg.cn/img_convert/e26f22400b543ed79e3415546647b428.png) ### 2. 启动并设置开机自启 ```bash # 启动 Docker sudo systemctl start docker # 设置开机自启 sudo systemctl enable docker ``` --- ## 四、获取 vLLM 镜像 前往**光源 vLLM 镜像仓库**,找到需要的 vLLM 版本,点击对应镜像右下角的 **复制** 按钮即可获得拉取命令,例如: ```bash 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 版本。 ![](https://i-blog.csdnimg.cn/img_convert/b5526e058818adbb560d0167d42f2e5d.png) --- ## 五、部署模型服务 ### 1. 启动容器 ```bash 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. 验证服务状态 ```bash # 查看容器是否正常运行 docker ps # 查看启动日志,确认无报错 docker logs -f dcu-model-service ``` 容器启动后,可通过 `hy-smi` 观察到显卡显存被占用,说明模型已成功加载。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/424cdb2ff7844f63bcf1dd3daf97a968.png) --- ## 六、服务调用验证 服务启动成功后,通过 OpenAI 兼容接口进行调用测试: ```bash 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` 驱动未正确安装或未重启服务。执行以下命令检查: ```bash 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/
全部评论(0)
只看楼主
暂无数据
--
楼主
Level.1
0 帖子
楼主热帖
暂无数据