ROCm是超微半导体(AMD)用于圖形處理器(GPU)编程的软件栈。ROCm涉及多个领域:图形处理器通用计算(GPGPU)、高性能计算(HPC)和异构计算。它提供多种编程模型:HIP(基于GPU内核的编程)、OpenMP/訊息傳遞介面(基于指令的编程)和OpenCL。
ROCm是免费、自由和开源的软件(GPU固件除外),以各种许可证发布。ROCm最初是Radeon Open Compute platform的缩写,但由于Open Compute已成为注册商标,ROCm已不再是缩写,而只是AMD为GPU计算设计的开源堆栈。
背景
ATI/AMD的第一個图形处理器通用计算(GPGPU)軟體堆疊是 (CTM),後來成為Stream。
ROCm於2016年左右與玻爾茲曼計劃(Boltzmann Initiative)一起推出。 ROCm 堆疊建立在先前的 AMD GPU 堆疊的基礎上,一些工具可追溯到GPUOpen,其他工具可追溯到 (HSA)。
程式設計能力
ROCm 作為一個堆疊,範圍從核心驅動程式到最終用戶應用程式。 AMD 透過其學習入口網站提供有關 AMD GCN 硬體和 ROCm 程式設計的介紹影片。
迄今為止,有關堆疊和 ROCm/HIP 程式設計的最佳技術介紹之一仍然可以在 Reddit 上找到。
硬體支援
ROCm 主要針對獨立專業 GPU, 但非官方支援包括 Vega 系列和RDNA 2消費級GPU。
AMD加速处理器(APU) 已“啟用”,但未獲得官方支援。 涉及到讓 ROCm 發揮作用。
專業級GPU
AMD Instinct加速器是ROCm的一等公民,與[https://en.wiktionary.org/wiki/prosumer#Etymology_2 專業消費者] GPU系列一樣:它們大多得到全面支援。
截至2022年1月,唯一具有相對同等支援的消費級 GPU 是 Radeon VII(GCN 5 - Vega)。
消費級GPU
軟體生態系統
學習資源
AMD ROCm 產品經理 Terry Deem 介紹了該堆疊。
第三方集成
該堆疊的主要消費者是機器學習和高效能運算/GPGPU 應用程式。
機器學習
各種深度學習框架都有 ROCm 後端:
- PyTorch
- TensorFlow
- ONNX
- MXNet
- CuPy
- [https://github.com/rocmsoftwareplatform/miopen MIOpen]
- Caffe
- [https://github.com/google/iree Iree] (使用 LLVM 多層中間表示 (MLIR))
- [https://github.com/ggerganov/llama.cpp/pull/1459 llama.cpp]
超級計算
ROCm 在TOP500計畫中獲得了顯著的吸引力。 ROCm 與 Exascale 超級電腦El Capitan 和前沿 (超級電腦)(Frontier) 一起使用。
一些相關軟體可以在[https://www.amd.com/fr/technologies/infinity-hub AMD Infinity中心(AMD Infinity hub)]找到。
與競爭對手的比較
ROCm 與其他GPU運算堆疊競爭:英偉達CUDA 和 Intel 。
英偉達CUDA
英偉達的CUDA是閉源的,而 AMD ROCm 是開源的。 有一些開源軟體建構在閉源CUDA之上,例如[https://github.com/rapidsai 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也是開源的,所有對應的函式庫都發佈在其[https://github.com/oneapi-src GitHub頁面上] 。
参见
*GPUOpen
参考资料
评论 (0)