海光GPU上AI模型测试通用环境及Docker、docker-compose文件编写

前言

本文主要是部署一个通用的环境,常用依赖都安装上,方便模型测试。

相关网站

ModelScope

ModelScope 魔搭社区

海光开发者社区

光源-光合开发者社区

准备工作

创建目录

1
mkdir -p /data/aitest/ai-server-common

环境测试代码

验证 PyTorch 是否识别海光 GPU

/data/aitest/ai-server-common/cuda_test.py

1
2
3
4
5
import torch
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.cuda.device_count())
print(torch.cuda.get_device_name(0))

注意:

在 ROCm 中,torch.cuda 接口仍然可用(AMD/海光做了 CUDA API 兼容层),所以代码无需修改。

代码路径为

1
/data/aitest/ai-server-common

下载模型

Qwen2.5-VL-32B-Instruct

千问2.5-VL-32B-Instruct · 模型库

下载模型

1
modelscope download --model Qwen/Qwen2.5-VL-32B-Instruct

模型下载位置为

1
/data/tools/modelscope

Docker

Dockerfile

/data/aitest/ai-server-common/Dockerfile

1
2
3
4
5
6
7
8
FROM image.sourcefind.cn:5000/dcu/admin/base/vllm:0.8.5-ubuntu22.04-dtk25.04.1-rc5-das1.6-py3.10-20250724

RUN pip install modelscope
ENV MODELSCOPE_CACHE="/data/tools/modelscope"

RUN pip install qwen-vl-utils[decord]==0.0.8

EXPOSE 8002

Docker Compose

/data/aitest/ai-server-common/docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
version: '3.8'

services:
z_vllm_modelscope:
build:
context: ./
dockerfile: Dockerfile
image: z_vllm_modelscope:v1.0.0
container_name: z_ai_01
privileged: true
network_mode: host
user: root
shm_size: '64g'
cap_add:
- SYS_PTRACE
security_opt:
- seccomp:unconfined
group_add:
- video
devices:
- /dev/kfd
- /dev/dri
- /dev/mkfd
volumes:
- /opt/hyhal/:/opt/hyhal/:ro
- /data/tools/modelscope/:/data/tools/modelscope/
- /data/aitest/ai-server-common/:/data/aitest/ai-server-common/
working_dir: /data/aitest/ai-server-common/
command: [ "python", "cuda_test.py" ]

构建

1
2
# 开发时,确保干净构建
docker-compose build --no-cache

启动

1
docker-compose up

后台启动

1
docker-compose up -d

停止并删除

1
docker-compose down

常用速查

查看驱动是否安装

1
lsmod | grep hycu

查看显卡型号

1
clinfo | grep -A 2 "Device Type"

可以看到 Board name

1
2
3
Device Type:                                   CL_DEVICE_TYPE_GPU
Vendor ID: 1d94h
Board name: K100_AI

GPU使用情况

功能类似于 NVIDIA 的 nvidia-smi 或 AMD 的 rocm-smi,用于监控和管理海光 GPU 的状态。

输入

1
hy-smi

查看剩余显存

1
hy-smi --showmemavailable

显示总显存和已用显存

1
hy-smi --showmeminfo vram

查看是否有进程在使用 GPU

1
hy-smi --showpids

查看显存是否启用 ECC(关键用于稳定性)

1
hy-smi --showmemeccinfo

判断是否在容器内

执行

1
systemd-detect-virt
  • 容器内可能返回:dockerpodmanlxcprivate-users
  • 宿主机通常返回:nonekvm/vmware(如果是虚拟机)

安装(如未安装):

1
2
apt-get install -y systemd-container  # Debian/Ubuntu
yum install -y systemd # CentOS/RHEL