跳至內容

ROCm

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
ROCm
開發者AMD
首次發布2016年11月14日,​8年前​(2016-11-14
當前版本
  • 6.2.4(2024年11月7日;穩定版本)[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[3]超威半導體(AMD)用於圖形處理器(GPU)編程的軟件棧。ROCm涉及多個領域:圖形處理器通用計算(GPGPU)、高性能計算(HPC)和異構計算。它提供多種編程模型:HIP(基於GPU內核的編程)、OpenMP/訊息傳遞介面基於指令的編程)和OpenCL

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支援 否 Current
指令集架構 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.4 Release. 2024年11月7日 [2024年11月7日]. 
  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).