ROCm
此条目可参照英语维基百科相应条目来扩充。 (2024年3月13日) |
ROCm[3]是超威半导体(AMD)用于图形处理器(GPU)编程的软件栈。ROCm涉及多个领域:图形处理器通用计算(GPGPU)、高性能计算(HPC)和异构计算。它提供多种编程模型:HIP(基于GPU内核的编程)、OpenMP/消息传递接口(基于指令的编程)和OpenCL。
开发者 | AMD |
---|---|
首次发布 | 2016年11月14日 |
当前版本 |
|
原始码库 | github |
编程语言 | C、C++、Python、Fortran、Julia |
中间件 | HIP |
操作系统 | Linux、Windows[2] |
平台 | 支持的GPU |
文件大小 | <2 GiB |
类型 | GPGPU库和API |
许可协议 | MIT许可证 |
网站 | www |
ROCm是免费、自由和开源的软件(GPU固件除外[4]),以各种许可证发布。ROCm最初是Radeon Open Compute platform的缩写,但由于Open Compute已成为注册商标,ROCm已不再是缩写,而只是AMD为GPU计算设计的开源堆栈。
背景
ATI/AMD的第一个图形处理器通用计算(GPGPU)软件堆栈是Close to Metal (CTM),后来成为Stream。
ROCm于2016年左右[5]与玻尔兹曼计划(Boltzmann Initiative)一起推出[6]。 ROCm 堆栈建立在先前的 AMD GPU 堆栈的基础上,一些工具可追溯到GPUOpen,其他工具可追溯到异质系统架构 (HSA)。
程式设计能力
此章节需要扩充。 (2022年1月1日) |
ROCm 作为一个堆栈,范围从核心驱动程式到最终用户应用程式。 AMD 透过其学习门户网站提供有关 AMD GCN 硬件[[7]和 ROCm 程式设计[8]的介绍影片。[9]
迄今为止,有关堆栈和 ROCm/HIP 程式设计的最佳技术介绍之一仍然可以在 Reddit 上找到。[10]
硬件支持
ROCm 主要针对独立专业 GPU[11], 但非官方支持包括 Vega 系列和RDNA 2消费级GPU。
AMD加速处理器(APU) 已“激活”,但未获得官方支持。 涉及到让 ROCm 发挥作用。[12]
专业级GPU
AMD Instinct加速器是ROCm的一等公民,与专业消费者 (页面存档备份,存于互联网档案馆)Radeon Pro GPU系列一样:它们大多得到全面支持。
截至2022年1月,唯一具有相对同等支持的消费级 GPU 是 Radeon VII(GCN 5 - Vega)。
消费级GPU
GPU系列名称 | 南方 群岛 |
海岛 | 火山岛 | 北极 群岛/北极星 |
Vega | Navi 1X | Navi 2X | |
---|---|---|---|---|---|---|---|---|
已发布 | 2012年1月 | 2013年9月 | 2015年6月 | 2016年6月 | 2017年6月 | 2019年7月 | 2020年11月 | |
营销名称 | Radeon HD 7000 | Radeon Rx 200 | Radeon Rx 300 | Radeon RX 400/500 | Radeon RX Vega/Radeon VII(7 nm) | Radeon RX 5000 | Radeon RX 6000 | |
AMD支持 | ||||||||
指令集架构 | GCN instruction set | RDNA instruction set | ||||||
微架构 | GCN 1st gen | GCN 2nd gen | GCN 3rd gen | GCN 4th gen | GCN 5th gen | RDNA | RDNA 2 | |
Type | 统一着色器模型 | |||||||
ROCm[13] | [14] | [15] | ||||||
OpenCL | 1.2 (on Linux: 1.1 (no Image support) with Mesa 3D) | 2.0 (Adrenalin driver on Win7+) (on Linux: 1.1 (no Image support) with Mesa 3D, 2.0 with AMD drivers or AMD ROCm) |
2.0 | 2.1[16] | ||||
Vulkan | 1.0 (Win 7+ or Mesa 17+) |
1.2 (Adrenalin 20.1, Linux Mesa 3D 20.0) | ||||||
Shader model | 5.1 | 5.1 6.3 |
6.4 | 6.5 | ||||
OpenGL | 4.6 (on Linux: 4.6 (Mesa 3D 20.0)) | |||||||
Direct3D | 11 (11_1) 12 (11_1) |
11 (12_0) 12 (12_0) |
11 (12_1) 12 (12_1) |
11 (12_1) 12 (12_2) | ||||
/drm/amdgpu [a]
|
Experimental[17] |
软件生态系统
学习资源
此章节需要扩充。 (2022年1月1日) |
AMD ROCm 产品经理 Terry Deem 介绍了该堆栈。[18]
第三方集成
该堆栈的主要消费者是机器学习和高性能运算/GPGPU 应用程式。
机器学习
- PyTorch
- TensorFlow
- ONNX
- MXNet
- CuPy[20]
- MIOpen (页面存档备份,存于互联网档案馆)
- Caffe
- Iree (页面存档备份,存于互联网档案馆) (使用 LLVM 多层中间表示 (MLIR))
- llama.cpp (页面存档备份,存于互联网档案馆)
超级计算
ROCm 在TOP500项目中获得了显著的吸引力[21]。 ROCm 与 Exascale 超级计算机El Capitan[22][23] 和前沿 (超级计算机)(Frontier) 一起使用。
一些相关软件可以在AMD Infinity中心(AMD Infinity hub)找到。
与竞争对手的比较
ROCm 与其他GPU运算堆栈竞争:英伟达CUDA 和 Intel OneAPI。
英伟达CUDA
英伟达的CUDA是闭源的,而 AMD ROCm 是开源的。 有一些开源软件建构在闭源CUDA之上,例如RAPIDS (页面存档备份,存于互联网档案馆)。
CUDA 能够在消费级 GPU 上运行,而 ROCm 支持主要为 AMD Instinct 和 AMD Radeon Pro 等专业硬件提供。
Nvidia 提供 Clang 前端及其Parallel Thread Execution (PTX) LLVM GPU 后端作为 Nvidia CUDA 编译器 (Nvidia CUDA Compiler, NVCC)。
英特尔OneAPI
与ROCm一样,oneAPI也是开源的,所有对应的函数库都发布在其GitHub页面上 (页面存档备份,存于互联网档案馆)。
参见
参考资料
- ^ ROCm 6.3.1 Release. 2024年12月20日 [2024年12月22日].
- ^ New HIP SDK helps democratize GPU Computing. [2024-03-13]. (原始内容存档于2023-08-03).
- ^ Question: What does ROCm stand for? · Issue #1628 · RadeonOpenCompute/ROCm. Github.com. [January 18, 2022]. (原始内容存档于2023-11-06).
- ^ Debian -- Details of package firmware-amd-graphics in buster. Packages.debian.org. [January 18, 2022]. (原始内容存档于2023-03-31).
- ^ AMD @ SC16: Radeon Open Compute Platform (ROCm) 1.3 Released, Boltzmann Comes to Fruition. anandtech.com. [January 19, 2022]. (原始内容存档于2024-05-01).
- ^ AMD @ SC15: Boltzmann Initiative Announced - C++ and CUDA Compilers for AMD GPUs. anandtech.com. [January 19, 2022]. (原始内容存档于2024-02-28).
- ^ Introduction to AMD GPU Hardware. [2024-04-19]. (原始内容存档于2024-02-06) –通过www.youtube.com.
- ^ Fundamentals of HIP Programming. (原始内容存档于2023-02-07).
- ^ ROCm™ Learning Center. AMD. [2024-04-19]. (原始内容存档于2023-02-07).
- ^ AMD ROCm / HCC programming: Introduction. December 26, 2018 [2024-04-19]. (原始内容存档于2023-06-16).
- ^ AMD Documentation - Portal. [2024-04-19]. (原始内容存档于2023-06-12).
- ^ Here's something you don't see every day: PyTorch running on top of ROCm on a 6800M (6700XT) laptop! Took a ton of minor config tweaks and a few patches but it actually functionally works. HUGE!. December 10, 2021 [2024-04-19]. (原始内容存档于2024-03-05).
- ^ ROCm Getting Started Guide v5.2.3. [2024-04-19]. (原始内容存档于2022-09-28).
- ^ HOW-TO: Stable Diffusion on an AMD GPU. September 23, 2022 [2024-04-19]. (原始内容存档于2022-09-23).
- ^ Any update on 5700 Xt support?. GitHub. [2024-04-19]. (原始内容存档于2023-07-14).
- ^ AMD Radeon RX 6800 XT Specs. TechPowerUp. [January 1, 2021].
- ^ Larabel, Michael. The Best Features of the Linux 4.9 Kernel. Phoronix. December 7, 2016 [December 7, 2016]. (原始内容存档于2022-06-29).
- ^ ROCm presentation. HPCwire.com. July 6, 2020 [January 18, 2022]. (原始内容存档于2023-03-31).
- ^ AMD Introduces Its Deep-Learning Accelerator Instinct MI200 Series GPUs. Infoq.com. [January 18, 2022]. (原始内容存档于2024-02-29).
- ^ Using CuPy on AMD GPU (experimental). [2024-04-19]. (原始内容存档于2024-03-27).
- ^ AMD Chips Away at Intel in World's Top 500 Supercomputers as GPU War Looms. November 16, 2020 [2024-04-19]. (原始内容存档于2023-03-31).
- ^ El Capitan Supercomputer Detailed: AMD CPUs & GPUs to Drive 2 Exaflops of Compute. [2024-04-19]. (原始内容存档于2020-03-04).
- ^ Livermore's el Capitan Supercomputer to Debut HPE 'Rabbit' Near Node Local Storage. February 18, 2021 [2024-04-19]. (原始内容存档于2024-04-27).