前言
相关网站
ModelScope
海光开发者社区
常用命名速查
查看驱动是否安装
1 | lsmod | grep hycu |
查看显卡型号
1 | clinfo | grep -A 2 "Device Type" |
可以看到Board name
1 | Device Type: CL_DEVICE_TYPE_GPU |
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 |
准备工作
环境测试代码
验证 PyTorch 是否识别海光 GPU
/data/aitest/cuda_test.py
1 | import torch |
注意:
在 ROCm 中,
torch.cuda接口仍然可用(AMD/海光做了 CUDA API 兼容层),所以代码无需修改。
代码路径为
1 | /data/aitest |
下载模型
Qwen2.5-VL-32B-Instruct
下载模型
1 | modelscope download --model Qwen/Qwen2.5-VL-32B-Instruct |
模型下载位置为
1 | /data/tools/modelscope |
步骤
vLLM镜像启动
下载vllm镜像
1 | docker pull image.sourcefind.cn:5000/dcu/admin/base/vllm:0.8.5-ubuntu22.04-dtk25.04.1-rc5-das1.6-py3.10-20250724 |
运行容器
我这里下载镜像的 IMAGE ID是efc1a5d819c4
1 | docker run -it --shm-size 64g --network=host --name vllm_085 --privileged --device=/dev/kfd --device=/dev/dri --device=/dev/mkfd --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -u root -v /opt/hyhal/:/opt/hyhal/:ro -v /data/tools/modelscope/:/data/tools/modelscope/ -v /data/aitest/:/data/aitest/ efc1a5d819c4 bash |
参数说明:
-it:以交互模式运行容器,并分配一个伪终端(TTY)。--shm-size 64g:将容器的共享内存(/dev/shm)大小设为 64GB,供 vLLM 等大模型推理使用。--network=host:让容器直接使用宿主机的网络命名空间(端口无需映射)。--name vllm_085:给容器指定名称为vllm_085。--privileged:赋予容器几乎全部系统权限(用于访问硬件设备,但有安全风险)。--device=/dev/kfd:将海光/AMD 的 KFD(Kernel Fusion Driver)计算设备挂载进容器。--device=/dev/dri:挂载 DRI 图形/计算设备节点,用于 GPU/DCU 访问。--device=/dev/mkfd:挂载海光特有的多卡管理设备(如 Multi-KFD)。--group-add video:将容器内用户加入video用户组,获得设备访问权限。--cap-add=SYS_PTRACE:授予容器进程跟踪(ptrace)能力,用于调试或性能分析。--security-opt seccomp=unconfined:禁用 seccomp 安全限制,避免 DCU 驱动调用被拦截。-u root:以 root 用户身份在容器内运行。-v /opt/hyhal/:/opt/hyhal/:ro:将宿主机的海光 HAL 驱动库以只读方式挂载到容器内。-v /data/tools/modelscope/:/data/tools/modelscope/:挂载 ModelScope 模型缓存目录,供容器内使用。-v /data/aitest/:/data/aitest/:挂载自定义测试数据或代码目录。efc1a5d819c4:要运行的 Docker 镜像 ID(或可替换为完整镜像名)。bash:容器启动后执行的命令(进入 bash shell)。
如果已经运行可以这样进入
1 | docker exec -it vllm_085 bash |
查看容器内是否有所需依赖
1 | pip list | grep transformers |
这里是都安装了
1 | accelerate 1.9.0 |
安装依赖
安装modelscope
安装
1 | pip install modelscope |
环境变量
创建目录
1 | mkdir -p /data/tools/modelscope |
添加环境变量
添加
1 | echo 'export MODELSCOPE_CACHE="/data/tools/modelscope"' >> ~/.bashrc |
重新加载配置
1 | source ~/.bashrc |
验证
1 | echo $MODELSCOPE_CACHE |
查看
1 | vim ~/.bashrc |
安装图片处理工具包
它可以更方便地处理各种类型的视觉输入,就像使用API一样。这包括base64、URL以及混合的图片和视频。
您可以使用以下命令安装它:
1 | pip install qwen-vl-utils[decord]==0.0.8 |
运行模型
/data/aitest/run_qwen_vl.py
1 | from modelscope import Qwen2_5_VLForConditionalGeneration, AutoTokenizer, AutoProcessor |
运行
1 | cd /data/aitest |
Docker
Dockerfile
/data/aitest/Dockerfile
1 | FROM image.sourcefind.cn:5000/dcu/admin/base/vllm:0.8.5-ubuntu22.04-dtk25.04.1-rc5-das1.6-py3.10-20250724 |
Docker Compose
/data/aitest/docker-compose.yml
1 | version: '3.8' |
启动
1 | docker-compose up -d |
停止并删除
1 | docker-compose down |
判断是否在容器内
执行
1 | systemd-detect-virt |
- 容器内可能返回:
docker、podman、lxc、private-users - 宿主机通常返回:
none或kvm/vmware(如果是虚拟机)
安装(如未安装):
1 | apt-get install -y systemd-container # Debian/Ubuntu |