ROCm开发环境搭建


新买了台主机,显卡MI50,用于研究ROCm架构。记录开发环境搭建过程,方便下一次搭建方便。

办公环境搭建

联网工具

我需要在我的笔记本访问主机的代码和文档,并且经常拿到公司,并且需要手机访问主机的文档。因为主机和笔记本都在不同的局域网内,需要穿过NAT,采用Tailscale。

网站:https://login.tailscale.com/

Ubuntu下安装

curl -fsSL https://tailscale.com/install.sh | sh

Windows下安装

在官网下载对应软件

然后会生成公网的IP地址。

在终端里输入ssh username@公网IP,就可以在公司登录这台电脑了。

VSCODE环境

通过Remote – SSH在笔记本打开家里的代码

文档

ROCm环境搭建

我的显卡是MI50,所以选择ROCm6.3.3版本搭建环境。官网:ROCm/ROCm at rocm-6.3.3

更新系统&安装环境
bash install-prerequisites.sh
配置swap(我的电脑内存16g,所以至少设置为64g)
sudo fallocate -l 64G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
获取 ROCm 源码(6.3.3 分支)
安装repo工具
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod +x ~/bin/repo
初始化repo
export ROCM_VERSION=6.3.3
~/bin/repo init -u https://github.com/ROCm/ROCm.git -b roc-6.3.x -m tools/rocm-build/rocm-${ROCM_VERSION}.xml
同步源码
~/bin/repo sync -j4
环境变量设置
1. 激活 virtualenv
source ~/WORKSPACE/virtualenv/bin/activate
2. 加载 ROCm 构建环境变量
~/env_rocm_build.sh
# env_rocm_build.sh
export SHELL=/bin/bash
export AMDGPU_TARGETS=gfx906
export GPU_ARCHS=gfx906
export ROCM_VERSION=6.3.3
export ROCM_PATH=/opt/rocm-6.3.3

# Python 3.8 (virtualenv 里用的 interpreter)
export PYTHON=/opt/Python-3.8.13/bin/python3.8
export PYTHON_EXECUTABLE=/opt/Python-3.8.13/bin/python3.8
export Python3_ROOT_DIR=/opt/Python-3.8.13
export Python3_INCLUDE_DIR=/opt/Python-3.8.13
export Python3_LIBRARY=/opt/Python-3.8.13/lib/libpython3.8.so

# 库路径
export LD_LIBRARY_PATH=/opt/Python-3.8.13/lib:$LD_LIBRARY_PATH

# 代理(如果需要)
export http_proxy=http://127.0.0.1:7890

#python虚拟环境
source /home/wangyancheng/WORKSPACE/virtualenv/bin/activate
#设置环境变量
source ../env_rocm_build.sh
编译 ROCm 开发包(rocm-dev)
cd ~/WORKSPACE/ROCm
make -f tools/rocm-build/ROCm.mk -j1 rocm-dev
因为我的内存太小,就用1个线程了。
编译过程会生成 .deb 包在:
~/WORKSPACE/ROCm/out/ubuntu-22.04/22.04/deb/
日志在:
~/WORKSPACE/ROCm/out/ubuntu-22.04/22.04/logs/
只构建ROCk,ROCt,ROCr最小环境
make -f ROCm/tools/rocm-build/ROCm.mk -j$(nproc) rocm-core
安装
cd ~/WORKSPACE/ROCm/out/ubuntu-22.04/22.04/deb
sudo dpkg -i *.deb
按需编译其他模块或全部模块
全部模块
make -f tools/rocm-build/ROCm.mk -j4 all
单独模块(例如 rocBLAS)
make -f tools/rocm-build/ROCm.mk T_rocblas
rocm-dev构建的组件
🛠️ 基础工具 & 核心组件

rocm-core:ROCm 版本和依赖管理的基础包

rocm-cmake:ROCm 项目统一的 CMake 脚本工具

comgr:Compiler support library,HIP/ROCm 编译必须的中间层

devicelibs:GPU 上的基本设备函数库(类似 libm,但跑在 GPU 上)

half:半精度浮点支持

openmp_extras:额外的 OpenMP 工具

🔧 编译 & 开发工具

hipcc:HIP 编译器驱动

hipify_clang:CUDA → HIP 的自动代码转换工具

rocminfo:查询 GPU 设备信息

rocm-gdb:调试器

rocprofiler / roctracer / rocprofiler-sdk / rocprofiler-systems / rocprofiler-compute / rocprofiler-register:性能分析 & trace 工具链

rocmvalidationsuite:ROCm 平台验证工具

rocm_bandwidth_test / transferbench:测试显存、总线带宽

📦 核心运行时

rocr:HSA runtime(GPU runtime 核心)

rocr_debug_agent:调试代理

dbgapi:调试 API

amd_smi_lib / rocm_smi_lib / rdc:系统管理 & 电源监控

📚 数学 & 科学计算库

rocblas / hipblas / hipblaslt / hipblas-common:BLAS 数值库

rocsolver / hipsolver:线性代数求解器

rocfft / hipfft:快速傅里叶变换

rocrand / hiprand:随机数库

rocsparse / hipsparse / hipsparselt:稀疏矩阵库

rocprim / hipcub / rocthrust:并行原语 & 算子库

rocwmma:Warp Matrix Multiply Accumulate

hipfort:Fortran 接口支持

hiptensor:张量运算库

miopen-hip / miopen-deps:深度学习加速库

🖼️ 计算机视觉 & 多媒体

mivisionx:视觉与多媒体加速框架

rocal:图像处理流水线(类似 DALI)

rocjpeg / rocdecode:JPEG 编解码 & 视频解码

rpp:Radeon 图像处理库

⚡ 通信 & 高性能扩展

rccl:分布式通信(NCCL 的 ROCm 实现)

lightning:编译加速库(Tensile 的一部分)

composable_kernel:张量计算内核框架

🌱 其它

amdmigraphx:MIGraphX,深度学习模型推理框架

aqlprofile:队列 & 内核性能分析工具


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注