ROCm 是超威半導體（AMD）用於圖形處理器（GPU）程式設計的軟體棧。ROCm 涉及多個領域：圖形處理器通用計算（GPGPU）、高效能計算（HPC）和異構計算。它提供多種程式設計模型：HIP（基於 GPU 核心的程式設計）、OpenMP 訊息傳遞介面（基於指令的程式設計）和 OpenCL。 ROCm 是免費、自由和開源的軟體（GPU 韌體除外），以各種許可證釋出。ROCm 最初是 Radeon Open Compute platform 的縮寫，但由於 Open Compute 已成為註冊商標，ROCm 已不再是縮寫，而只是 AMD 為 GPU 計算設計的開源堆疊。 背景 ATIAMD 的第一個圖形處理器通用計算（GPGPU）軟體堆疊是 CTM，後來成為 Stream。 ROCm 於 2016 年左右與玻爾茲曼計劃 Boltzmann Initiative 一起推出。 ROCm 堆疊建立在先前的 AMD GPU 堆疊的基礎上，一些工具可追溯到，其他工具可追溯到 HSA。 程式設計能力 ROCm 作為一個堆疊，範圍從核心驅動程式到終端使用者應用程式。 AMD 透過其學習入口網站提供有關 AMD GCN 硬體 和 ROCm 程式設計的介紹影片。 迄今為止，有關堆疊和 ROCmHIP 程式設計的最佳技術介紹之一仍然可以在 Reddit 上找到。 硬體支援 ROCm 主要針對獨立專業 GPU， 但非官方支援包括 Vega 系列和 RDNA 2 消費級 GPU。 AMD 加速處理器 APU 已 啟用，但未獲得官方支援。 涉及到讓 ROCm 發揮作用。 專業級 GPU AMD Instinct 加速器是 ROCm 的一等公民，與專業消費者 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 400500 Radeon RX VegaRadeon VII 7 nm Radeon RX 5000 Radeon RX 6000 AMD 支援 colspan3 colspan4 指令集架構 GCN instruction set GCN instruction set GCN instruction set GCN instruction set GCN instruction set RDNA 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 colspan3 colspan1 colspan1 colspan1 colspan2 OpenCL 12 on Linux 11 no Image support with Mesa 3D 20 Adrenalin driver on Win7on Linux 11 no Image support with Mesa 3D 20 with AMD drivers or AMD ROCm 20 Adrenalin driver on Win7on Linux 11 no Image support with Mesa 3D 20 with AMD drivers or AMD ROCm 20 Adrenalin driver on Win7on Linux 11 no Image support with Mesa 3D 20 with AMD drivers or AMD ROCm 20 Adrenalin driver on Win7on Linux 11 no Image support with Mesa 3D 20 with AMD drivers or AMD ROCm 20 21 Vulkan 10 Win 7 or Mesa 17 12 Adrenalin 201 Linux Mesa 3D 200 12 Adrenalin 201 Linux Mesa 3D 200 12 Adrenalin 201 Linux Mesa 3D 200 12 Adrenalin 201 Linux Mesa 3D 200 12 Adrenalin 201 Linux Mesa 3D 200 12 Adrenalin 201 Linux Mesa 3D 200 Shader model 51 5163 5163 5163 64 64 65 OpenGL 46 on Linux 46 Mesa 3D 200 46 on Linux 46 Mesa 3D 200 46 on Linux 46 Mesa 3D 200 46 on Linux 46 Mesa 3D 200 46 on Linux 46 Mesa 3D 200 46 on Linux 46 Mesa 3D 200 46 on Linux 46 Mesa 3D 200 Direct3D 11 11_1 12 11_1 11 12_0 12 12_0 11 12_0 12 12_0 11 12_0 12 12_0 11 12_1 12 12_1 11 12_1 12 12_1 11 12_1 12 12_2 drmamdgpu colspan2 colspan5 軟體生態系統 學習資源 AMD ROCm 產品經理 Terry Deem 介紹了該堆疊。 第三方整合 該堆疊的主要消費者是機器學習和高效能運算 GPGPU 應用程式。 機器學習 各種深度學習框架都有 ROCm 後端： PyTorch TensorFlow ONNX MXNet CuPy MIOpen Caffe Iree （使用 LLVM 多層中間表示 MLIR） llamacpp 超級計算 ROCm 在 TOP500 計畫中獲得了顯著的吸引力。 ROCm 與 Exascale 超級電腦 和前沿 超級電腦Frontier 一起使用。 一些相關軟體可以在 AMD Infinity 中心 AMD Infinity hub 找到。 與競爭對手的比較 ROCm 與其他 GPU 運算堆疊競爭：英偉達 CUDA 和 Intel 。 英偉達 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 頁面上 。 參見 參考資料 Category 應用程式介面 Category 併發計算 CategoryGPGPU CategoryGPGPU 函式庫 Category 顯示卡 Category 圖形硬體 Category 異質計算 Category 機器學習 Category 平行計算 Category 超級電腦