海光GPU及环境部署

前言

截至目前(2026 年),海光(Hygon)GPU 主要基于 DCU(Deep Computing Unit)架构,其硬件兼容 AMD 的 CDNA 架构,并通过 ROCm(Radeon Open Compute)平台 提供 AI 加速支持。因此,在海光 GPU 上运行 AI 模型的核心路径是:使用 ROCm 生态 + 兼容框架

ROCm 是 AMD 为自家 GPU(包括 Instinct 加速卡、Radeon 专业卡和部分消费级显卡)打造的 GPU 计算生态系统,对标 NVIDIA 的 CUDA。

PyTorch、TensorFlow、ONNX Runtime 等均有官方或社区 ROCm 适配版

ModelScope

ModelScope 魔搭社区

海光DCU

海光平台 DCU指的是由海光信息(Hygon)自主研发的、基于其 DCU(Deep Computing Unit,深度计算单元)加速芯片构建的高性能计算软硬件平台

架构兼容性

  • 基于 ROCm(Radeon Open Compute)生态开发;
  • ROCm 与 NVIDIA 的 CUDA 高度相似,因此被称为 “类 CUDA” 环境;
  • 这使得大量原本为 CUDA 编写的 AI 框架(如 PyTorch、TensorFlow)可较低成本迁移到海光 DCU 平台

海光开发者社区

光合开发者社区

image-20260206104205196

简介

  • 驱动是显卡驱动。
  • DTK就相当于英伟达平台的CUDA Toolkit,必须要安装,版本要和驱动版本兼容。
  • DAK是AI相关的软件包。
  • 光源 镜像和测试过能使用的模型仓库,里面有模型的调用方式,不包含模型,模型还要从ModelScope上下载。

环境安装

查看系统信息

查看系统版本

1
2
cat /etc/os-release        # 大多数现代发行版
lsb_release -a # Debian/Ubuntu 系

我这是CentOS8

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 先恢复备份(避免叠加错误)
sudo cp /etc/yum.repos.d.bak.*/CentOS-Linux-*.repo /etc/yum.repos.d/

# 正确替换:注意 vault 路径中没有 $contentdira# 1. 备份当前文件
sudo cp /etc/yum.repos.d/CentOS-Linux-AppStream.repo /etc/yum.repos.d/CentOS-Linux-AppStream.repo.bak2
sudo cp /etc/yum.repos.d/CentOS-Linux-BaseOS.repo /etc/yum.repos.d/CentOS-Linux-BaseOS.repo.bak2

# 2. 强制重写 AppStream
sudo cat > /etc/yum.repos.d/CentOS-Linux-AppStream.repo << 'EOF'
[appstream]
name=CentOS Linux 8 - AppStream
baseurl=https://mirrors.aliyun.com/centos-vault/8.5.2111/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
EOF

# 3. 强制重写 BaseOS
sudo cat > /etc/yum.repos.d/CentOS-Linux-BaseOS.repo << 'EOF'
[baseos]
name=CentOS Linux 8 - BaseOS
baseurl=https://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
EOF


sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.aliyun.com/centos-vault/8.5.2111|g' \
-i.bak /etc/yum.repos.d/CentOS-Linux-*.repo


# 备份
sudo cp /etc/yum.repos.d/CentOS-Linux-Extras.repo /etc/yum.repos.d/CentOS-Linux-Extras.repo.bak2

# 强制重写 Extras(注意:vault 中 extras 目录名是小写)
sudo cat > /etc/yum.repos.d/CentOS-Linux-Extras.repo << 'EOF'
[extras]
name=CentOS Linux 8 - Extras
baseurl=https://mirrors.aliyun.com/centos-vault/8.5.2111/extras/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
EOF

配置完成后必须执行:

1
2
3
4
5
6
# 清除旧缓存 + 重建元数据
sudo dnf clean all
sudo dnf makecache

# 测试:查看是否从新镜像拉取
sudo dnf repolist -v | grep -i "baseurl"

安装驱动

下载驱动

1
curl -o rock-6.3.30-V1.4.1a.run https://download.sourcefind.cn:65024/file/6/dtk-26.04驱动/rock-6.3.30-V1.4.1a.run

安装

安装依赖

1
2
3
4
sudo dnf install -y cmake
sudo dnf install -y mlocate
sudo dnf install -y python3-policycoreutils
sudo dnf install -y policycoreutils-python-utils

安装驱动

1
2
chmod +x rock-6.3.30-V1.4.1a.run
./rock-6.3.30-V1.4.1a.run

安装完成后建议重启,再执行以下命令验证驱动是否生效。

验证驱动

检查 hycu 内核模块是否已加载:

1
lsmod | grep hycu

有输出(含 hycu 行)说明驱动模块已加载。

检查 DCU 设备节点是否存在:

1
ls -l /dev/kfd /dev/dri

使用 hy-smi 查看 GPU 是否被识别(驱动安装后位于 /opt/hyhal):

1
/opt/hyhal/bin/hy-smi

能列出 HCU 编号、温度、显存等信息,说明驱动安装成功。

安装DTK

DTK 版本需与驱动版本一致,本文示例为 DTK 26.04 搭配上文 rock-6.3.30-V1.4.1a 驱动。

完整安装包列表见官方下载页:

z-file

/etc/os-release 中的系统版本选择对应压缩包,我这是 CentOS 8.5:

1
curl -o DTK-26.04-CentOS8.5-x86_64.tar.gz https://download.sourcefind.cn:65024/file/1/DTK-26.04/CentOS8.5/DTK-26.04-CentOS8.5-x86_64.tar.gz

解压到 /opt 目录(需 root 权限):

1
sudo tar xvf DTK-26.04-CentOS8.5-x86_64.tar.gz -C /opt

创建软链接,便于后续切换 DTK 版本:

1
sudo ln -sf /opt/dtk-26.04 /opt/dtk

加载 DTK 环境变量,推荐写入 ~/.bashrc 以便登录后自动生效:

1
2
source /opt/dtk/env.sh
echo "source /opt/dtk/env.sh" >> ~/.bashrc

env.sh 会自动设置 DTK_HOMEPATHLD_LIBRARY_PATHROCM_PATH 等变量。

若无法使用 env.sh,可手动追加以下核心变量:

1
2
3
4
5
export DTK_HOME=/opt/dtk
export PATH=${DTK_HOME}/bin:${PATH}
export LD_LIBRARY_PATH=${DTK_HOME}/lib:${DTK_HOME}/lib64:${LD_LIBRARY_PATH}
export HIP_PATH=${DTK_HOME}
export ROCM_PATH=${DTK_HOME}

加载环境变量后再验证 DTK 是否安装成功:

1
2
3
source /opt/dtk/env.sh
hipcc --version
rocminfo | grep -i gfx

hipcc --version 应输出 DTK 版本信息;rocminfo 中能看到 gfx936 等 DCU 代号,说明 DTK 与设备识别正常。

rocminfo 无设备信息,先确认上文驱动验证已通过,并检查是否已执行 source /opt/dtk/env.sh

Python

ModelScope 及后续脚本依赖 Python 3.8及以上版本。

安装

安装 Python 3 与 pip:

1
2
3
4
5
6
7
8
# 1. 下载 Miniconda 安装脚本
curl -o Miniconda3-latest-Linux-x86_64.sh https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 2. 执行安装(一路回车/yes即可)
bash Miniconda3-latest-Linux-x86_64.sh

# 3. 使环境变量生效
source ~/.bashrc

验证安装是否成功:

1
2
python3 --version
pip3 --version

建议升级 pip,避免安装 ModelScope 时出现版本兼容问题:

1
pip3 install --upgrade pip

设置镜像

清华大学镜像源

1
2
3
4
5
6
7
8
9
10
11
12
13
# 清除旧配置
conda config --remove-key channels 2>/dev/null

# 添加清华镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

# 显示通道URL
conda config --set show_channel_urls yes

# ⚠️ 关键:禁用默认官方源,避免回退到国外源导致卡顿
conda config --remove channels defaults 2>/dev/null

查看

1
conda config --show

虚拟环境

1
2
3
4
5
6
7
# 创建 Python 3.10 虚拟环境
conda create -n ms_env python=3.10 -y
conda activate ms_env

# 验证 & 安装 modelscope
python --version # 应显示 Python 3.10.x
pip install modelscope

ModelScope

概览 · 魔搭社区

安装

1
pip3 install modelscope

创建目录

1
2
mkdir -p /data/tools/modelscope
chmod 755 /data/tools/modelscope

添加环境变量

1
vi ~/.bashrc

添加

1
2
# ModelScope cache directory
export MODELSCOPE_CACHE="/data/tools/modelscope"

重新加载配置

1
source ~/.bashrc

验证

1
2
echo $MODELSCOPE_CACHE
# 输出应为:/data/tools/modelscope

Docker

安装 Docker

CentOS 8 下安装 Docker CE,与上文 dnf 源配置保持一致。

若系统里已有旧版 Docker 或 Podman,先卸载避免冲突:

1
sudo dnf remove -y docker docker-client docker-client-latest docker-common docker-latest docker-logrotate docker-selinux docker-engine podman runc

安装依赖并添加 Docker 官方源(此处使用阿里云镜像):

1
2
3
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo dnf makecache

安装 Docker CE 及 Compose 插件:

1
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

启动服务并设置开机自启:

1
2
3
sudo systemctl start docker
sudo systemctl enable docker
sudo docker version

镜像源设置

拉取 Docker Hub 官方镜像较慢时,可配置国内加速源;拉取光合 DCU 镜像还需额外配置 insecure-registries

查看源

查看当前已配置的镜像加速:

1
docker info | grep -A 10 "Registry Mirrors"

或者:

1
docker info --format '{{json .RegistryConfig.Mirrors}}'

设置源

创建或修改 /etc/docker/daemon.json,同时写入 Docker Hub 加速光合私有仓库 配置(写法参考 Linux 上 Docker 镜像源配置CentOS 7 上从 Docker 1.13 升级到 Docker CE 及 镜像设置):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": [
"https://docker.xuanyuan.me",
"https://docker.1ms.run/",
"https://docker.m.daocloud.io",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com"
],
"insecure-registries": [
"image.sourcefind.cn:5000",
"harbor.sourcefind.cn:5443"
],
"dns": ["223.5.5.5", "114.114.114.114"]
}
EOF

registry-mirrors 用于加速 Docker Hub 等公共镜像拉取;insecure-registries 用于允许访问光合 HTTP 端口仓库(如 image.sourcefind.cn:5000),避免证书或协议报错。

注意:部分镜像加速源需注册账号(如毫秒镜像),详见 Linux 上 Docker 镜像源配置

修改后重启 Docker 使配置生效:

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

查看镜像源是否生效:

1
sudo docker info | grep -A 10 "Registry Mirrors"

运行光源镜像

光源提供了集成相关组件的镜像,可以在容器内直接调用 AI 模型。

例如下面这个镜像基于 Ubuntu 22.04,内置 DTK 25.04.1、vLLM 0.8.5 和 Python 3.10。

先拉取镜像(标签按实际需要替换):

1
docker pull image.sourcefind.cn:5000/dcu/admin/base/vllm:0.8.5-ubuntu22.04-dtk25.04.1-py3.10

启动容器时需挂载宿主机 /opt/hyhal 并映射 DCU 设备节点:

1
2
3
4
5
6
7
8
9
10
11
12
13
docker run -it \
--network=host \
--ipc=host \
--shm-size=16G \
--device=/dev/kfd \
--device=/dev/mkfd \
--device=/dev/dri \
-v /opt/hyhal:/opt/hyhal \
--group-add video \
--cap-add=SYS_PTRACE \
--security-opt seccomp=unconfined \
image.sourcefind.cn:5000/dcu/admin/base/vllm:0.8.5-ubuntu22.04-dtk25.04.1-py3.10 \
/bin/bash

常用镜像

pytorch镜像

https://developer.sourcefind.cn/servicelist/detail?post_id=9f296762-b3c7-11f0-9a0f-acde48001122&active=TagDownload

vllm

https://developer.sourcefind.cn/servicelist/detail?post_id=61036870-b3c7-11f0-9989-acde48001122&active=TagDownload

适配说明

适配说明

查看显卡型号

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信息

GPU管理工具

1
/opt/hyhal/bin/hy-smi

hy-smi海光(Hygon)自研 GPU(如 P800、W100 等)配套的系统管理接口工具。

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

包括:

  • 显存使用情况(总显存、已用、空闲)
  • GPU 利用率
  • 温度、功耗
  • 驱动版本
  • 设备拓扑等

输入

1
hy-smi

信息说明

你提供的 hy-smi(或类似海光 GPU 监控工具)输出信息如下:

1
2
3
HCU     Temp     AvgPwr     Perf     PwrCap     VRAM%      HCU%      Mode     
0 61.0C 108.0W auto 400.0W 0% 0.0% Normal
1 62.0C 112.0W auto 400.0W 0% 0.0% Normal

这是对 两张海光 GPU(HCU = Hygon Compute Unit) 的实时状态监控。下面逐列解释其含义:

各列详细说明

列名 含义 你的值示例 说明
HCU GPU 设备编号 0, 1 表示系统中第 0 号和第 1 号海光 GPU
Temp 温度 61.0°C, 62.0°C GPU 芯片当前温度,正常工作范围通常为 30–85°C
AvgPwr 当前平均功耗 108.0W, 112.0W GPU 实时功耗,远低于上限,说明负载很低
Perf 性能状态 auto 表示 GPU 处于自动频率调节模式(类似 NVIDIA 的 “P2” 或 “P8” 状态)
PwrCap 功耗上限(TDP) 400.0W 该 GPU 最大允许功耗为 400W(典型如 P800/W100 的规格)
VRAM% 显存使用率 0% 当前显存占用比例为 0% —— 注意:这只是使用率,不是总显存大小!
HCU% 计算单元利用率 0.0% GPU 核心计算单元空闲,无任务运行
Mode 运行模式 Normal 正常工作模式(非维护、节能或故障状态)

常用指令

查看剩余显存

1
hy-smi --showmemavailable

显示总显存和已用显存

1
hy-smi --showmeminfo vram

查看是否有进程在使用 GPU

1
hy-smi --showpids

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

1
hy-smi --showmemeccinfo

总结速查表

目标 推荐参数
总显存 / 已用显存 --showmeminfo vram
剩余可用显存 --showmemavailable
GPU 核心频率 -g-c
显存频率 -c--showclkfrq
功耗上限 -M
当前运行的 GPU 进程 --showpids
ECC 错误检查 --showmemeccinfo

前提条件

确认你的海光 GPU 型号和驱动

必须安装 海光官方提供的 ROCm 兼容驱动栈(通常由服务器厂商或海光提供,非公开下载)。

验证命令(需 root 或 sudo):

1
2
rocminfo          # 查看 ROCm 设备信息
clinfo # 查看 OpenCL 支持(部分场景)

推理环境

推理环境要用海光提供的兼容版本

比如PyTorch、vLLM等

海光 GPU 调用 AI 模型路线图

image-20260203151716533

  • 多模态 Qwen/Qwen3.6-27B
  • 图像识别 baidu-qianfan/Qianfan-OCR
  • TTS Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice
  • ASR Qwen/Qwen3-ASR-1.7B
  • 视频生成 WanX/Wan2.2-T2V-A14B
1
modelscope download --model Qwen/Qwen3.6-27B