统信UOS + 海光K100 AI卡环境下VLLM服务部署手册
·
部署环境说明
- 服务器型号:曙光 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
安装步骤
一、安装系统依赖包
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 驱动安装
# 修改驱动安装文件权限
chmod +x rock-6.3.13-V1.12.0.run
# 执行驱动安装
./rock-6.3.13-V1.12.0.run
# 安装完成后重启主机
reboot
2. DTK 安装
# 解压缩到 /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 卡信息的输出示例:

容器化部署
一、导入容器镜像
# 拉取镜像(如需从仓库获取)
docker pull registry.uniontech.com/uos-ai/uos-server-25-hygon-vllm:v0.8.5-dtk25.04.1
# 查看导入结果
docker images
二、启动容器
前置条件:物理机上已完成 ROCm 驱动和 DTK 安装(见上文"物理机环境部署"章节)。
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 服务
# 进入容器
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
服务启动成功后的输出示例:

多节点集群部署方式
前提条件
每个节点均需按照"容器化部署"章节完成容器启动和环境配置。
部署步骤
1. 配置环境变量(所有节点容器内均需执行)
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 集群
在 主节点 容器内执行:
ray start --head \
--port=6000 \
--node-ip-address=<主节点IP> \
--num-gpus=<主节点GPU数量>
在 工作节点 容器内执行:
ray start \
--address=<主节点IP>:6000 \
--num-gpus=<工作节点GPU数量>
3. 启动 vLLM 分布式服务
在 主节点 容器内执行:
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
服务启动成功后的输出示例:

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)