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).