AMD ROCm 完整实践指南:从装好环境到跑通第一个 GPU 核函数
AMD ROCm 完整实践指南从装好环境到跑通第一个 GPU 核函数【免费下载链接】legacy-rocm-buildAMD ROCm™ Software - GitHub Home项目地址: https://gitcode.com/GitHub_Trending/ro/legacy-rocm-buildROCm 是 AMD 的开源 GPU 加速计算平台。如果你的训练任务长期被 CPU 卡住、云上算力成本越算越高可以把同一份工作负载搬到 AMD GPU 上跑。这篇文章带你把环境装好、跑通第一个程序再把性能调出余量。先问自己我的机器能不能用 ROCm装之前花 30 秒确认两件事比装完再返工省事得多。硬件门槛Instinct 系列MI100 / MI200 / MI300 / MI350 等数据中心卡是主力Radeon 消费卡与 Ryzen 内置核显也在支持列表内。装好后每条卡会对应一个gfx目标号比如 MI300 系列是gfx942MI350 系列是gfx950这是后面编译器识别设备的依据。系统门槛Ubuntu 22.04/24.04/26.04、Debian 13、RHEL 8/9、SLES 15 等主流 Linux 发行版完整清单见docs/about/include/os-support-table.md与docs/about/include/hardware-support-table.md。MI300X UBB 节点一台机器里 8 张卡互相直连这是 ROCm 做大规模并行的基本单元。自查命令一条就够lspci | grep -iE vga|3d controller预期输出出现AMD/ATI字样且卡名在上面两个支持列表里就可以往下走。最简安装把步骤压到最少Ubuntu 上用包管理器最省事核心就两件事装安装脚本、跑安装脚本。# 1. 安装 amdgpu-install 脚本发行版包管理器提供 sudo apt update sudo apt install amdgpu-install # 2. 一键装 ROCm 对应驱动按你机器实际架构选 sudo amdgpu-install --usecaserocm,graphics --gfxversionauto # 3. 给当前用户加 GPU 设备组权限重启后生效 sudo usermod -aG video,render $USER重启一次让用户组生效。喜欢图形界面走安装向导的可以看仓库里docs/data/how-to/下 runfile 安装器的完整菜单截图docs/install/rocm-runfile-installer.rst有逐步说明。runfile 安装器主菜单一条命令装驱动加全组件适合离线机器。装的过程一般几分钟装完别急着写代码先做三件事。装完的三件事两条命令 一个最小例子第一件确认设备被识别。rocminfo | grep -i gfx预期输出列表里出现你那张卡对应的gfx942/gfx950等目标号。空的说明驱动或用户组没到位跳到文末自查表。第二件确认编译器在位。which hipcc hipcc --version预期输出路径指向/opt/rocm/hip/bin/hipcc并打印版本号。找不到就先执行source /opt/rocm/setenv.sh。第三件跑一个最小核函数。新建vec_add.cpp整个程序就做向量加法#include hip/hip_runtime.h #include iostream #include vector __global__ void add(const float* a, const float* b, float* c, int n) { int i hipBlockIdx_x * hipBlockDim_x hipThreadIdx_x; if (i n) c[i] a[i] b[i]; } int main() { const int n 1024; std::vectorfloat hA(n, 1.f), hB(n, 2.f), hC(n, 0.f); float *dA, *dB, *dC; hipMalloc(dA, n*4); hipMalloc(dB, n*4); hipMalloc(dC, n*4); hipMemcpy(dA, hA.data(), n*4, hipMemcpyHostToDevice); hipMemcpy(dB, hB.data(), n*4, hipMemcpyHostToDevice); hipLaunchKernelGGL(add, dim3(4), dim3(256), 0, 0, dA, dB, dC, n); hipDeviceSynchronize(); hipMemcpy(hC.data(), dC, n*4, hipMemcpyDeviceToHost); bool ok std::all_of(hC.begin(), hC.end(), [](float v){ return v 3.f; }); std::cout (ok ? PASS: all elements are 3.0 : FAIL) \n; hipFree(dA); hipFree(dB); hipFree(dC); return ok ? 0 : 1; }hipcc -O2 -o vec_add vec_add.cpp ./vec_add预期输出PASS: all elements are 3.0。到这里ROCm 的安装就算真正闭环了。它凭什么快一条流水线类比讲清并行把 GPU 里的一个计算单元CU想成一家快餐店调度器是接单员4 条 SIMD 流水线是四个炒锅一锅同时颠几十份同样的菜寄存器是灶台边的备料区LDS 共享内存是全店共用的操作台。顾客线程越多、每单动作越简单店就越忙不过来地出餐——GPU 的吞吐正是这么堆出来的。单个 CU 的内部构成调度器在上SIMD 队列居中底部是寄存器文件与共享内存线程数据尽量从这些近处取。对写代码的人结论只有一条让线程的数据尽量留在寄存器和共享内存里别每条指令都跑一趟全局显存。接上框架PyTorch 和 TensorFlow 基本不改代码算子层跑通后多数人的真实需求是直接用框架。ROCm 版的 PyTorch 一条命令装上pip3 install torch torchvision --index-url https://download.pytorch.org/whl/rocm6.2 python3 -c import torch; print(torch.__version__, torch.cuda.is_available())预期输出版本号加True。注意框架里照旧用torch.cuda这套 APIROCm 在底层做了对接训练脚本一行不用改。TensorFlow 侧装tensorflow-rocmtf.config.list_physical_devices(GPU)返回非空即可。多卡之间的通信由 RCCL 集合通信库承担写法与 NCCL 同构换平台同样不用重写。把性能抠出来先量、再省、再贴内存代码能跑和跑得动是两回事。下面按先定位、再下手的顺序给三个手段。1. 先量出瓶颈在哪别凭感觉改。rocprof --stats ./vec_add # 核函数级耗时与统计 rocm-smi # 利用率、显存、温度实时看板 rocm-smi --showtopo # 卡间链路类型、跳数、NUMA 亲和rocm-smi --showtopo的输出多卡任务放哪几张卡、怎么绑 NUMA看这张图就清楚了。2. 把主设备拷贝藏起来。hipMemcpy换成hipMemcpyAsync挂到 stream 上让搬运和核函数计算重叠推进长拷贝的延迟基本被吃掉hipStream_t s; hipStreamCreate(s); hipMemcpyAsync(dA, hA, bytes, hipMemcpyHostToDevice, s); // 核函数挂同一 stream 上自然排队、互相重叠 hipStreamSynchronize(s);3. 让核函数吃共享内存。矩阵乘法是典型朴素写法每个线程各自从显存反复捞同一份数据改成分块tile后一次全局读取被块内 16 个线程摊着用再配__syncthreads()保证整块就绪。块大小、tile 尺寸直接决定占用率拿不准就用不同参数实测对比。翻车自查表现象、命令、预期输出现象命令预期输出GPU 未识别lspci \| grep -i amdrocminfo \| grep -i gfx前者出现AMD/ATI3D controller后者有对应gfx目标。都为空先查驱动与用户组找不到 hipccwhich hipcc hipcc --version路径指向/opt/rocm/hip/bin/hipcc并打印版本没有则先source /opt/rocm/setenv.sh显存不足rocm-smi --showmeminfo vram逐卡列出 Free/Total区分真占满还是碎片需要深挖时再上两把rocgdb ./vec_add # 断点单步核函数启动路径 rocprof -i input.txt -o trace.csv ./vec_add # 导出 trace 给剖析工具再往深走进阶方向与下一步官方文档在仓库里都有对应目录安装全流程见docs/install/各代 GPU 架构细节见docs/reference/gpu-arch/系统级调优见docs/reference/system-optimization/。![ROCm 大模型链路从训练到推理服务serving均可落在 AMD GPU 上](https://raw.gitcode.com/GitHub_Trending/ro/legacy-rocm-build/raw/0210dda6fc6b706e3ef87b3b42593a2adb930983/docs/images/unused/_Model In.png?utm_sourcegitcode_repo_files)训练 → 推理 → 在线服务的完整链路批量调度、分页 KV cache、量化在 AMD GPU 上都是生产可用配置。接下来挑四件就能动手写不同规模的矩阵乘法输出一张 CPU vs GPU 耗时对照表用 PyTorch ROCm 训一个小网络对比 CPU 上的单步耗时用 RCCL 跑多卡带宽测试验证卡间互联RCCL 八卡集合通信测试输出上分布式训练前先用它确认卡间带宽没被链路拖累。需要翻文档和示例源码时拉一下仓库git clone https://gitcode.com/GitHub_Trending/ro/legacy-rocm-build装好、跑通、调快这条路径走完后面的分布式和多卡只是量变。【免费下载链接】legacy-rocm-buildAMD ROCm™ Software - GitHub Home项目地址: https://gitcode.com/GitHub_Trending/ro/legacy-rocm-build创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

从模块到命令行:结合wifi-password-cli在终端快速获取WiFi密码的实战教程

从模块到命令行:结合wifi-password-cli在终端快速获取WiFi密码的实战教程

从模块到命令行:结合wifi-password-cli在终端快速获取WiFi密码的实战教程 【免费下载链接】wifi-password Get current wifi password 项目地址: https://gitcode.com/gh_mirrors/wifi/wifi-password 忘记WiFi密码时,你是否还要重启路由器或翻找便…

2026/8/25 10:50:54 阅读更多 →
视觉跟踪新手必看的10分钟入门指南:一文读懂CVPR2021冠军方法TransT

视觉跟踪新手必看的10分钟入门指南:一文读懂CVPR2021冠军方法TransT

视觉跟踪新手必看的10分钟入门指南:一文读懂CVPR2021冠军方法TransT 【免费下载链接】TransT Transformer Tracking (CVPR2021) 项目地址: https://gitcode.com/gh_mirrors/tr/TransT TransT 是发表于 CVPR 2021 的 Transformer 单目标视觉跟踪算法&#xf…

2026/8/25 10:50:54 阅读更多 →
Google AI功能深度解析:Gemini模型集成、Chrome本地AI与免费API实战指南

Google AI功能深度解析:Gemini模型集成、Chrome本地AI与免费API实战指南

1. 从“解禁”传闻到功能落地:一次对Google AI战略的深度观察 最近几天,我的技术圈和产品圈的朋友们都在讨论同一个话题:Google是不是真的“解禁”了它的最强AI功能,并且免费开放了?各种社交媒体和科技论坛上&#xf…

2026/8/25 10:50:54 阅读更多 →

最新新闻

Altium Designer滴泪与敷铜实战:PCB可靠性设计核心技巧

Altium Designer滴泪与敷铜实战:PCB可靠性设计核心技巧

1. 项目概述:AD中的滴泪与敷铜,PCB设计的“定海神针”在PCB设计的江湖里,Altium Designer(简称AD)是无数电子工程师的“倚天剑”。当我们把原理图上的逻辑关系,一笔一划地转换成PCB上错综复杂的铜线时&…

2026/8/25 11:34:26 阅读更多 →
实测 10 款 2026 降 AI 工具:知网维普格子达横向对比,降幅最猛工具盘点

实测 10 款 2026 降 AI 工具:知网维普格子达横向对比,降幅最猛工具盘点

本篇实测覆盖 10 款热门降 AI 工具,数据显示快降重科研小助手在 AI 率降幅维度表现突出,知网初检 90.5% 降至 2.2%,维普 87.69% 降至 6.67%,格子达 81.31% 降至 5.67%,且格式保留完整、语义连贯度高。酷兔 AI 处理后文…

2026/8/25 11:34:26 阅读更多 →
基于拍卖机制的LLM多智能体任务分配框架Agora设计与实现

基于拍卖机制的LLM多智能体任务分配框架Agora设计与实现

1. 项目概述:当LLM智能体遇上拍卖机制最近在折腾多智能体协作系统时,发现一个普遍存在的瓶颈:当一群大语言模型(LLM)智能体(Agent)需要共同完成一个复杂任务时,如何高效、公平地分配…

2026/8/25 11:34:26 阅读更多 →
Web智能体安全架构:双层沙盒模型与不可信内容屏蔽实战

Web智能体安全架构:双层沙盒模型与不可信内容屏蔽实战

1. 项目概述:当Web智能体遇上不可信内容最近在折腾一个Web自动化项目时,遇到了一个让我后背发凉的问题。我的智能体(Web Agent)在浏览一个用户可编辑的论坛页面时,页面里一段看似无害的用户评论,竟然触发了…

2026/8/25 11:34:25 阅读更多 →
百日计划--osg地球+每天UEc+++蓝图视频各一小节(2026年7月20日-11月22日,已完成)-

百日计划--osg地球+每天UEc+++蓝图视频各一小节(2026年7月20日-11月22日,已完成)-

现在按长期规划,似乎对于老帮菜不合适了,说不准哪天失业。干脆按百日计划的方式。完成每天计划就OK 每周五天,每天osg地球UEc蓝图视频各一小节。周六日查漏补缺,空余量要满足。 用osg手撸了一个阉割版osgearth,线程池…

2026/8/25 11:33:25 阅读更多 →
文档加密不止是“上锁“

文档加密不止是“上锁“

当60%的数据泄露源自内部,你的核心文档需要的是一整套从预防到追溯的全链路防护体系 一份招标书泄露让企业丢了千万订单,一份技术图纸外流传出导致竞品捷足先登,一次员工离职带走客户名单引发连锁损失。在数字化转型加速的今天,企…

2026/8/25 11:33:25 阅读更多 →

日新闻

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/25 0:00:34 阅读更多 →
Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

2026/8/25 0:00:34 阅读更多 →
数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

1. 项目概述:从“会做”到“会写”的竞赛核心跃迁“全国大学生数学建模竞赛”,这个名字对理工科学生来说,分量极重。每年,无数团队在三天三夜的时间里,为一个开放性问题绞尽脑汁,从建立模型、求解算法到编程…

2026/8/25 0:00:34 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 3:38:12 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 3:38:18 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 3:38:23 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/24 20:22:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/25 10:31:12 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →