文章目录
前言
公司目前在做国产化适配,设计包含华为昇腾系列、海光DCU等,本文记录下海光机器的部署过程。
简单介绍下,DCU指的是深度计算处理器(Deep-learning Computing Unit),是海光信息GPU架构的适用于计算密集型任务加速的协处理器产品。这个DCU产品的有趣在于,它基于海光DTK(DCU Toolkit计算平台库),全面兼容适配ROCm GPU计算生态,由此对齐CUDA生态、工具链和开发者环境等。可以简单的理解为海光DTK与DCU,对标英伟达的CUDA及GPU。
一、基础环境
Ubuntu22.04操作系统
内核版本 5.15.0-157-generic
选取DTK版本 25.04
二、DTK开发环境安装
2.1 安装相关依赖
安装DCU加速卡驱动所需的依赖包命令::
sudo apt-get update
sudo apt-get install -y cmake
sudo apt-get install -y gcc
sudo apt-get install -y g++
sudo apt-get install -y autoconf
sudo apt-get install -y linux-kernel-headers
sudo apt-get install -y kernel-package
安装DTK-25.04所需要的依赖包命令:
sudo apt-get install -y make gcc g++ cmake git wget gfortran elfutils libdrm-dev
sudo apt-get install -y kmod libtinfo5 sqlite3 libsqlite3-dev libelf-dev
sudo apt-get install -y libnuma-dev libgl1-mesa-dev rpm rsync mesa-common-dev apt-utils
sudo apt-get install -y cmake libpci-dev pciutils libpciaccess-dev libbabeltrace-dev pkg-config
sudo apt-get install -y libfile-which-perl libfile-basedir-perl libfile-copy-recursiveperl libfile-listing-perl
sudo apt-get install -y python3 python3-pip python3-dev python3-wheel
sudo apt-get install -y gettext gettext-base libprotobuf-dev tcl
sudo apt-get install -y libio-digest-perl libdigest-md5-file-perl libdata-dumper simple-perl vim curl libcurlpp-dev
sudo apt-get install -y doxygen graphviz texlive libncurses5 msgpack*
根据系统内核版本安装所需包:
# 查看内核
uname -r
#(例如)uname -r 显示 5.15.0-157-generic
# 查看可用内核
apt list linux-image-5.15.0-157-generic
# 安装指定版本
sudo apt-get install -y linux-image-5.15.0-157-generic
2.2 安装DCU加速卡驱动
下载驱动
https://download.sourcefind.cn:65024/6/main/ ->dtk-25.04驱动->rock-6.3.15-V1.0.1.run
安装DCU加速卡驱动
chmod 755 rock-6.3.15-V1.0.1.run
./rock-6.3.15-V1.0.1.run

重启机器
reboot
三、Docker环境部署
3.1 Docker基本环境安装
添加阿里云的GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
设置存储库
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
安装最新版本的Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
验证Docker是否安装成功
docker version

验证 Docker 服务是否在运行
systemctl status docker
启动Docker服务
sudo systemctl start docker
设置Docker服务在每次开机时自动启动
sudo systemctl enable docker
3.2 部署pytorch镜像
方式一:通过光源直接docker pull拉取镜像
https://sourcefind.cn/#/service-list

可以选用2.4.1-ubuntu22.04-dtk25.04-py3.10 版本镜像
docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.4.1-ubuntu22.04-dtk25.04-py3.10
方式二:直接加载打包好的tar包镜像
docker load -i xxxxxx.tar.gz
3.3 部署pytorch镜像
查看目前的docker镜像
docker images

创建docker容器
docker run -it --name ai_dcu --network=host --privileged --ipc=host --shm-size=1G --device=/dev/kfd --device=/dev/mkfd --device=/dev/dri -v /opt/hyhal:/opt/hyhal -v /home/suma/:/home/suma -v /etc/machine-id:/etc/machine-id -v /sbin/dmidecode:/sbin/dmidecode -v /dev/mem:/dev/mem -v /data_1/files:/data_1/files --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined dcu/admin/base/pytorch2.4.1-ubuntu22.04-dtk25.04-py3.10:v1 /bin/bash
其中dcu/admin/base/pytorch2.4.1-ubuntu22.04-dtk25.04-py3.10:v1改为自己的docker镜像信息即可
进入容器
docker exec -it xxxxx bash
docker查看DCU信息:
rocm-smi

至此就可以在Docker下可以正常使用DCU进行测试了。
总结
笔者在后续的代码移植过程中,涉及到pytorch部分的代码基本上没什么变动,可以实现无痛复制张贴,使得项目代码可以较快速的移植,由于没有进行加速推理优化,直接使用pytorch模型推理速度肯定是比不上使用nvidia的tensorrt模型推理速度的,只能说是能用。后续有时间可以再研究一波,海光自研的高性能深度学习推理引擎MIGraphX。
参考文献:
https://blog.youkuaiyun.com/u013185349/article/details/145605085
https://download.sourcefind.cn:65024/4/main
https://sourcefind.cn/#/service-list
2025年10月24日09:43:13


6621





