ROCm

平行計算平台與應用程式介面

ROCm[3]超威半导体(AMD)用于图形处理器(GPU)编程的软件栈。ROCm涉及多个领域:图形处理器通用计算(GPGPU)、高性能计算(HPC)和异构计算。它提供多种编程模型:HIP(基于GPU内核的编程)、OpenMP/消息传递接口基于指令的编程)和OpenCL

ROCm
开发者AMD
首次发布2016年11月14日,​7年前​(2016-11-14
当前版本
  • 6.2.2(2024年9月27日;稳定版本)[1]
编辑维基数据链接
原始码库github.com/ROCm/ROCm
编程语言CC++PythonFortranJulia
中间件HIP
操作系统LinuxWindows[2]
平台支持的GPU
文件大小<2 GiB
类型GPGPU库和API
许可协议MIT许可证
网站www.amd.com/en/products/software/rocm.html 编辑维基数据

ROCm是免费、自由和开源的软件(GPU固件除外[4]),以各种许可证发布。ROCm最初是Radeon Open Compute platform的缩写,但由于Open Compute已成为注册商标,ROCm已不再是缩写,而只是AMD为GPU计算设计的开源堆栈。

背景

ATI/AMD的第一个图形处理器通用计算(GPGPU)软件堆栈是Close to Metal英语Close to Metal (CTM),后来成为Stream

ROCm于2016年左右[5]与玻尔兹曼计划(Boltzmann Initiative)一起推出[6]。 ROCm 堆栈建立在先前的 AMD GPU 堆栈的基础上,一些工具可追溯到GPUOpen英语GPUOpen,其他工具可追溯到异质系统架构英语Heterogeneous System Architecture (HSA)。

程式设计能力

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英语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 统一着色器模型英语Unified Shader Model
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]  
  1. ^ DRM(直接渲染管理器)是Linux内核的一个组件。

软件生态系统

学习资源

AMD ROCm 产品经理 Terry Deem 介绍了该堆栈。[18]

第三方集成

该堆栈的主要消费者是机器学习和高性能运算/GPGPU 应用程式。

机器学习

各种深度学习框架都有 ROCm 后端:[19]

超级计算

ROCm 在TOP500计划中获得了显著的吸引力[21]。 ROCm 与 Exascale 超级计算机El Capitan英语El Capitan (supercomputer)[22][23]前沿 (超级计算机)(Frontier) 一起使用。

一些相关软件可以在AMD Infinity中心(AMD Infinity hub)找到。

与竞争对手的比较

ROCm 与其他GPU运算堆栈竞争:英伟达CUDA 和 Intel OneAPI英语oneAPI (compute acceleration)

英伟达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页面上页面存档备份,存于互联网档案馆)。

参见

参考资料

  1. ^ ROCm 6.2.2 Release. 2024年9月27日 [2024年9月28日]. 
  2. ^ New HIP SDK helps democratize GPU Computing. [2024-03-13]. (原始内容存档于2023-08-03). 
  3. ^ Question: What does ROCm stand for? · Issue #1628 · RadeonOpenCompute/ROCm. Github.com. [January 18, 2022]. (原始内容存档于2023-11-06). 
  4. ^ Debian -- Details of package firmware-amd-graphics in buster. Packages.debian.org. [January 18, 2022]. (原始内容存档于2023-03-31). 
  5. ^ AMD @ SC16: Radeon Open Compute Platform (ROCm) 1.3 Released, Boltzmann Comes to Fruition. anandtech.com. [January 19, 2022]. (原始内容存档于2024-05-01). 
  6. ^ AMD @ SC15: Boltzmann Initiative Announced - C++ and CUDA Compilers for AMD GPUs. anandtech.com. [January 19, 2022]. (原始内容存档于2024-02-28). 
  7. ^ Introduction to AMD GPU Hardware. [2024-04-19]. (原始内容存档于2024-02-06) –通过www.youtube.com. 
  8. ^ Fundamentals of HIP Programming. (原始内容存档于2023-02-07). 
  9. ^ ROCm™ Learning Center. AMD. [2024-04-19]. (原始内容存档于2023-02-07). 
  10. ^ AMD ROCm / HCC programming: Introduction. December 26, 2018 [2024-04-19]. (原始内容存档于2023-06-16). 
  11. ^ AMD Documentation - Portal. [2024-04-19]. (原始内容存档于2023-06-12). 
  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). 
  13. ^ ROCm Getting Started Guide v5.2.3. [2024-04-19]. (原始内容存档于2022-09-28). 
  14. ^ HOW-TO: Stable Diffusion on an AMD GPU. September 23, 2022 [2024-04-19]. (原始内容存档于2022-09-23). 
  15. ^ Any update on 5700 Xt support?. GitHub. [2024-04-19]. (原始内容存档于2023-07-14). 
  16. ^ AMD Radeon RX 6800 XT Specs. TechPowerUp. [January 1, 2021]. 
  17. ^ Larabel, Michael. The Best Features of the Linux 4.9 Kernel. Phoronix. December 7, 2016 [December 7, 2016]. (原始内容存档于2022-06-29). 
  18. ^ ROCm presentation. HPCwire.com. July 6, 2020 [January 18, 2022]. (原始内容存档于2023-03-31). 
  19. ^ AMD Introduces Its Deep-Learning Accelerator Instinct MI200 Series GPUs. Infoq.com. [January 18, 2022]. (原始内容存档于2024-02-29). 
  20. ^ Using CuPy on AMD GPU (experimental). [2024-04-19]. (原始内容存档于2024-03-27). 
  21. ^ AMD Chips Away at Intel in World's Top 500 Supercomputers as GPU War Looms. November 16, 2020 [2024-04-19]. (原始内容存档于2023-03-31). 
  22. ^ El Capitan Supercomputer Detailed: AMD CPUs & GPUs to Drive 2 Exaflops of Compute. [2024-04-19]. (原始内容存档于2020-03-04). 
  23. ^ Livermore's el Capitan Supercomputer to Debut HPE 'Rabbit' Near Node Local Storage. February 18, 2021 [2024-04-19]. (原始内容存档于2024-04-27).