DCU技术达人
统信UOS + 海光K100 AI卡环境下VLLM服务部署手册
2026-10-13 10:07:58
34
## 部署环境说明 - **服务器型号**:曙光 X7850H0(256 核 + 8 张 K100 + 1.5 TB 内存) - **服务器操作系统**:UOS V2500 - **DTK 版本**:25.04.1 - **ROCm 版本**:6.3.13 - **VLLM 版本**:0.8.5 - **Python 版本**:3.10.16 > **注意**:海光 VLLM 安装文件依赖 `uma` 库,与 Python 3.11 版本不兼容,因此本部署选择 Python 3.10 版本。 ## 安装包清单 - **驱动包**:`rock-6.3.13-V1.12.0.run` - **开发工具包**:`DTK-25.04.1-openEuler22.03-x86_64.tar.gz` - **容器镜像包**:`registry.uniontech.com/uos-ai/uos-server-25-hygon-vllm:v0.8.5-dtk25.04.1` ## 安装步骤 ### 一、安装系统依赖包 ```bash yum install -y gcc openssl-devel zlib-devel bzip2-devel gdbm-devel \ xz-devel sqlite-devel tk-devel libuuid-devel libnsl2-devel \ readline-devel libffi-devel numactl-devel.x86_64 pciutils \ libgfortran.x86_64 automake findutils mlocate autoconf \ rpm-build gcc-c++ libdrm-devel.x86_64 ``` ### 二、物理机环境部署 #### 1. ROCm 驱动安装 ```bash # 修改驱动安装文件权限 chmod +x rock-6.3.13-V1.12.0.run # 执行驱动安装 ./rock-6.3.13-V1.12.0.run # 安装完成后重启主机 reboot ``` #### 2. DTK 安装 ```bash # 解压缩到 /opt 目录 tar -zxf /opt/dcu/DTK-25.04.1-openEuler22.03-x86_64.tar.gz -C /opt mv dtk-25.04.1 dtk # 配置环境变量 cat >> /etc/profile << 'EOF' export LIBRARY_PATH=/opt/dtk/lib:$LIBRARY_PATH source /opt/dtk/env.sh source /opt/hyhal/env.sh EOF cat >> ~/.bashrc << 'EOF' export LIBRARY_PATH=/opt/dtk/lib:$LIBRARY_PATH source /opt/dtk/env.sh source /opt/hyhal/env.sh EOF source /etc/profile source ~/.bashrc # 验证 K100 卡信息 rocm-smi ``` 成功查看 K100 卡信息的输出示例: ![1791857228858.png](/api-forum/file/RedirectImage?path=20261013/1791857229051_1791857228858.png '1791857228858.png') ## 容器化部署 ### 一、导入容器镜像 ```bash # 拉取镜像(如需从仓库获取) docker pull registry.uniontech.com/uos-ai/uos-server-25-hygon-vllm:v0.8.5-dtk25.04.1 # 查看导入结果 docker images ``` ### 二、启动容器 > **前置条件**:物理机上已完成 ROCm 驱动和 DTK 安装(见上文"物理机环境部署"章节)。 ```bash docker run -dit \ --restart=always \ --name=vllm-api \ --network=host \ --privileged \ --device=/dev/kfd \ --device=/dev/dri \ --device=/dev/mkfd \ --ipc=host \ --shm-size=128G \ --group-add video \ --cap-add=SYS_PTRACE \ --security-opt seccomp=unconfined \ -u root \ --ulimit stack=-1:-1 \ --ulimit memlock=-1:-1 \ -v /opt/hyhal:/opt/hyhal \ -v /root/models:/opt/models \ registry.uniontech.com/uos-ai/uos-server-25-hygon-vllm:v0.8.5-dtk25.04.1 \ tail -f /dev/null ``` ### 三、运行 vLLM 服务 ```bash # 进入容器 docker exec -it vllm-api /bin/bash # 启动 vLLM 服务 vllm serve /opt/models/DeepSeek-R1-Distill-Qwen-32B \ --trust-remote-code \ --dtype float16 \ --max-model-len 1024 \ --tensor-parallel-size 8 \ --host 0.0.0.0 \ --port 8000 \ --served-model-name deepseek ``` 服务启动成功后的输出示例: ![1791857246077.png](/api-forum/file/RedirectImage?path=20261013/1791857246712_1791857246077.jpg '1791857246077.png') ## 多节点集群部署方式 ### 前提条件 每个节点均需按照"容器化部署"章节完成容器启动和环境配置。 ### 部署步骤 #### 1. 配置环境变量(所有节点容器内均需执行) ```bash docker exec -it vllm-api /bin/bash # 配置环境变量 export ALLREDUCE_STREAM_WITH_COMPUTE=1 export VLLM_HOST_IP=<本节点IP> export NCCL_SOCKET_IFNAME=<本节点IP对应的网口名> export GLOO_SOCKET_IFNAME=<本节点IP对应的网口名> export NCCL_MIN_NCHANNELS=16 export NCCL_MAX_NCHANNELS=16 export NCCL_NET_GDR_READ=1 export HIP_VISIBLE_DEVICES=0,1 ``` #### 2. 启动 Ray 集群 在 **主节点** 容器内执行: ```bash ray start --head \ --port=6000 \ --node-ip-address=<主节点IP> \ --num-gpus=<主节点GPU数量> ``` 在 **工作节点** 容器内执行: ```bash ray start \ --address=<主节点IP>:6000 \ --num-gpus=<工作节点GPU数量> ``` #### 3. 启动 vLLM 分布式服务 在 **主节点** 容器内执行: ```bash vllm serve /opt/models/DeepSeek-R1-Distill-Qwen-32B \ --trust-remote-code \ --dtype float16 \ --max-model-len 1024 \ --tensor-parallel-size 8 \ --distributed-executor-backend ray \ --host 0.0.0.0 \ --port 8000 \ --served-model-name deepseek ``` 服务启动成功后的输出示例: ![1791857270732.png](/api-forum/file/RedirectImage?path=20261013/1791857271501_1791857270732.jpg '1791857270732.png')
全部评论(0)
只看楼主
暂无数据
--
楼主
Level.3
0 帖子
楼主热帖
暂无数据