部署环境说明

  • 服务器型号:曙光 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

服务启动成功后的输出示例:

Logo

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

更多推荐