
AMD ROCm 完整安装与使用清单从裸机到跑满 GPU 的 5 个阶段【免费下载链接】legacy-rocm-buildAMD ROCm™ Software - GitHub Home项目地址: https://gitcode.com/GitHub_Trending/ro/legacy-rocm-buildAMD ROCm 是 AMD 的开源 GPU 加速计算软件栈一套从内核驱动、HIP 运行时、hipcc 编译器到数学库和剖析工具的完整工具链让训练、推理和 HPC 负载真正落到 AMD GPU 上。本文按「装好 → 验好 → 跑通 → 提速 → 上生产」五个阶段推进每个阶段都有可以直接复制的命令和预期输出。核心关键词ROCm 环境搭建、ROCm 安装、ROCm GPU 验证、hipcc 编译、ROCm PyTorch、ROCm 性能剖析。一台 MI300X 服务器8 张 Instinct 卡经 Infinity Fabric 两两直连是 ROCm 大规模并行的基本单元。1️⃣ 装机前自查5 项检查清单先排除不适配开工前花两分钟对一遍清单能省掉后面 80% 的返工GPU 在支持列表内Instinct MI 系列MI300X/MI350X 等、主流 Radeon 卡或 Ryzen AI APU。不确定的型号查一下 兼容性矩阵操作系统匹配Ubuntu 22.04/24.04、RHEL 8/9/10、SLES 15 SP5、Debian 12/13 等主流发行版驱动版本对齐ROCm 对 amdgpu 内核驱动有版本要求装完后用amd-smi version核对磁盘空间预留 20GB 以上内存建议 16GB用户权限你的账户需要能访问 GPU 设备后面会加组解决清单全绿再动手任何一项不满足先补齐。下面进入最短安装路径。2️⃣ 一条 runfile 装通驱动 ROCm SDK 一步到位ROCm 官方的 runfile 安装器是跨发行版最省心的路径一条命令下载并启动交互式安装器它会自动处理依赖、内核驱动和用户组的 GPU 权限。# 下载并启动 ROCm 7.14 交互式安装器 curl -fsSLO https://repo.radeon.com/rocm/installer/rocm-runfile-installer/rocm-rel-7.14/rocm-installer-7.14.0-7.run bash rocm-installer-7.14.0-7.runrunfile 安装器主菜单按提示分步选择驱动、ROCm 组件即可。安装器里有几个高频选项记住就能应付大多数场景depsinstall rocm自动装全部依赖不确定环境时推荐带上gpu-accessuser把当前用户加进 render/video 组免 sudo 访问 GPU装完内核驱动后必须重启这是最容易漏的一步如果你更习惯包管理器Ubuntu 上也可以注册 apt 源后执行sudo apt install amdrocm7.14各发行版的完整命令见 安装指南。装完重启一次下面验证。3️⃣ 冒烟验证3 条命令证明「装好了能用」验证只回答一个问题系统认不认你的卡工具链齐不齐。# ① 系统是否识别到 GPU重点看 gfx 目标码 rocminfo | grep -iE gfx|Name # ② 编译器是否就位 hipcc --version # ③ 驱动/工具链版本核对 amd-smi version预期输出长这样以 MI350X 为例Name: gfx950 Marketing Name: AMD Instinct MI350X AMDSMI Tool: ... | ROCm version: 7.14.0 | amdgpu version: ...gfx码出现在rocminfo里说明运行时已经加载hipcc能打印版本说明工具链可用。两条都通过ROCm 就接得住后面的事了。4️⃣ 为什么它这么快一条超市收银带的道理同样的算法搬上 GPU 为什么快一个量级一个比喻讲透CPU 像两家大超市收银员极少但每个都极快GPU 像一家开了上千个收银口的超级市场单个收银员慢一点但上千个人同时扫码总吞吐直接碾压。GPU 的每个「收银员」就是计算单元CU里的一条 SIMD 管线几千个波次线程同时执行同一条指令。单个 CU调度器在上4 条 SIMD 管线并行块内共享内存 LDS 和每管线的 VGPR 寄存器文件在旁。结论由此得出GPU 快的本质不是「单线程快」而是并发规模大 数据留在本地。所以一切性能问题的第一性原理都是——让数据尽量留在寄存器和 LDS 里别跑远路别让上千个收银口空着等货。理解了这一点写核函数和优化就有章法了。5️⃣ 最小可跑示例你的第一个 HIP 核函数新建vec_add.cpp只写「每个线程干什么」剩下交给平台#include hip/hip_runtime.h #include cstdio #include cstdlib __global__ void vecAdd(const float* a, const float* b, float* c, int n) { int idx hipBlockIdx_x * hipBlockDim_x hipThreadIdx_x; if (idx n) c[idx] a[idx] b[idx]; // 一个线程算一个元素 } int main() { const int n 1 20; float *a, *b, *c; hipMalloc(a, n * sizeof(float)); // 设备端内存 hipMalloc(b, n * sizeof(float)); hipMalloc(c, n * sizeof(float)); hipMemset(a, 1, n * sizeof(float)); // 这里直接用设备端 memset 省一次拷贝 hipMemset(b, 2, n * sizeof(float)); hipLaunchKernelGGL(vecAdd, dim3(4096), dim3(256), 0, 0, a, b, c, n); hipDeviceSynchronize(); // 阻塞到 GPU 忙完 float v; hipMemcpy(v, c, sizeof(float), hipMemcpyDeviceToHost); printf(c[0] %f (预期 3.0)\n, v); hipFree(a); hipFree(b); hipFree(c); return v 3.0f ? EXIT_SUCCESS : EXIT_FAILURE; }hipcc -O2 -o vec_add vec_add.cpp ./vec_add # 预期输出: c[0] 3.000000 (预期 3.0)四个 API 就够你起步hipMalloc开设备内存、hipMemcpy搬数据、hipLaunchKernelGGL启动核函数、hipDeviceSynchronize等结果。注意 HIP 的写法与 CUDA 同构这套代码将来换 NVIDIA 平台基本不用重写。能跑通它就该把活儿交给框架了。6️⃣ 接上生态PyTorch 直接认出 AMD GPU算子层打通后框架侧几乎零成本切换。ROCm 7.14 官方支持的框架版本PyTorch 2.12、TensorFlow 2.21、JAX 0.10、vLLM 0.23。装 PyTorch 的 ROCm 构建pip3 install torch torchvision --index-url https://download.pytorch.org/whl/rocm python3 -c import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))预期输出是True加上你的卡名如AMD Instinct MI300X。关键点框架里照旧写torch.cuda设备名、显存、DataLoader 都不用改代码迁移成本约等于零。PyTorch 在 ROCm 环境下的 CI/CD 流程测试-构建-训练-部署PyTorch 的测试-构建-训练-部署全链路都可以在 ROCm 环境里完成。7️⃣ 抠性能3 个立竿见影的杠杆 剖析工具组能跑不等于快。三个杠杆按投入产出比排序杠杆一把数据留在本地。全局内存的访问延迟远高于 LDS。矩阵乘法用共享内存分块tile后一次全局读取被块内 256 个线程摊薄复用——这正是第 4 节「收银口别等货」的直接应用。杠杆二拷贝和计算重叠。用 stream 异步拷贝让搬数据与算数据同时进行hipStream_t s; hipStreamCreate(s); hipMemcpyAsync(dA, hA, bytes, hipMemcpyHostToDevice, s); hipLaunchKernelGGL(myKernel, grid, block, 0, s, ...); // 同一 stream 排队重叠 hipStreamSynchronize(s);杠杆三盯住占用率。每个线程占用的寄存器VGPR直接决定一个 CU 能塞进多少波次线程VGPR 用量与每 CU 可驻留波次的关系寄存器用得越多能并发的线程组越少。别猜量。剖析工具组四件套rocprof --stats ./vec_add # 核函数级耗时统计 rocm-smi # 利用率/显存/温度实时面板 rocm-smi --showtopo # 卡间链路类型、跳数与 NUMA 亲和 rocgdb ./vec_add # GPU 端断点调试rocm-smi --showtopo八卡节点的链路权重、跳数与 NUMA 分布多卡调度的依据。瓶颈定位清楚大模型上生产就顺理成章。8️⃣ 上生产vLLM 把 7B 模型推到 AMD GPU用两条命令把 LLaMA 7B 放上 ROCm官方已验证 vLLM 0.23pip3 install vllmfrom vllm import LLM, SamplingParams llm LLM(modelmeta-llama/Llama-2-7b-chat-hf) out llm.generate([用一句话介绍 AMD ROCm], SamplingParams(temperature0.8, top_p0.95)) print(out[0].outputs[0].text)批量调度、分页 KV cache、量化在 AMD GPU 上都是生产可用的配置从训练到推理服务的全链路都能落在这套栈上——这不是演示脚本是能直接上线的东西。9️⃣ 兜底排障3 类高频故障的 30 秒排查清单上生产后出状况别慌按现象对号入座现象排查命令预期输出GPU 未识别lspci \| grep -i amdrocminfo \| grep -i gfxlspci 出现 AMD/ATI 3D controllerrocminfo 有 gfx 码为空则查驱动与用户组hipcc 找不到which hipcc hipcc --versionsource /opt/rocm/setenv.sh路径指向/opt/rocm/.../hipcc并打印版本缺失先 source 环境脚本显存不足rocm-smi --showmeminfo vram逐卡列出 VRAM Free/Total区分真占满还是碎片再备两件深挖工具rocprof -i input.txt -o trace.csv ./vec_add导出 trace 给剖析器rocgdb进核函数单步。排障清单收进工具箱接下来把学到的东西练出来。 延伸入口与 3 个动手项目仓库内可直接查阅的文档安装全流程含 runfile 每一步截图docs/install/GPU 架构参考各代架构图解docs/reference/gpu-arch/系统级调优指南按硬件分类docs/reference/system-optimization/三个练手项目每个都能产出对比数据写 1K/1M/1G 三档的矩阵乘法出一张 CPU vs GPU 耗时对照表用 HIP 实现高斯图像滤波量出相对纯 CPU 的加速比用 ROCm 版 PyTorch 训一个小网络对比 CPU 与 GPU 的单步耗时最后多卡通信是自然的下一站rccl-tests 八卡集合通信基准分布式训练前验证卡间带宽的标准动作。想拉最新文档与示例git clone https://gitcode.com/GitHub_Trending/ro/legacy-rocm-build。然后挑一件事就开始跑完 HIP 官方 samples 里的入门案例把第 5 节的向量加法升级成分块矩阵乘法或者用 rccl-tests 实测你的卡间带宽。机器已经热好GPU 在等你的下一个核函数。【免费下载链接】legacy-rocm-buildAMD ROCm™ Software - GitHub Home项目地址: https://gitcode.com/GitHub_Trending/ro/legacy-rocm-build创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考