LXR | KVM | PM | Time | Interrupt | Systems Performance | Bootup Optimization

ROCm软件栈以及TheRock输出对应关系

参考ROCm官方文档(AMD ROCm documentation — ROCm Documentation)以及相关资料梳理ROCm软件栈,并结合TheRock编译输出,给出对应关系。进而了解整个软件栈各模块的作用。

1 ROCm软件栈

1.2 应用层 (Applications)

  • AI/ML应用:PyTorch、TensorFlow、JAX等深度学习框架。

  • HPC应用:GROMACS、OpenFOAM、LAMMPS等科学计算软件。

  • 媒体处理:Blender、FFmpeg、DaVinci Resolve等创作工具。

  • 科学计算:MATLAB、Julia、RAPIDS等数据分析平台。

1.2 框架层 (Frameworks)

1.3 库层 (Libraries)

机器学习库

 

数学计算库

  • half:C++ header-only 库,提供 IEEE 754 标准 16-bit 半精度浮点类型及算术运算、类型转换和常用数学函数;文档:half;仓库:half

  • hipBLAS:BLAS 封装库,支持 rocBLAS 和 cuBLAS 后端,实现矩阵运算接口;文档:hipBLAS;仓库:hipBLAS

  • hipBLASLt:通用矩阵-矩阵运算库,提供更灵活 API 并扩展传统 BLAS 功能;文档:hipBLASLt;仓库:hipBLASLt

  • hipFFT:快速傅里叶变换(FFT)封装库,支持 rocFFT 或 cuFFT 后端;文档:hipFFT;仓库:hipFFT

  • hipfort:Fortran 接口库,用于访问 GPU 内核;文档:hipfort;仓库:hipfort

  • hipRAND:将使用 cuRAND 的 CUDA 应用迁移到 HIP 层;文档:hipRAND;仓库:hipRAND

  • hipSOLVER:LAPACK 封装库,支持 rocSOLVER 和 cuSOLVER 后端;文档:hipSOLVER;仓库:hipSOLVER

  • hipSPARSE:稀疏矩阵封装库,支持 rocSPARSE 和 cuSPARSE 后端;文档:hipSPARSE;仓库:hipSPARSE

  • hipSPARSELt:稀疏矩阵封装库,支持多种后端;文档:hipSPARSELt;仓库:hipSPARSELt

  • rocALUTION:稀疏线性代数库,探索 ROCm 运行时的细粒度并行性;文档:rocALUTION;仓库:rocALUTION

  • rocBLAS:HIP 实现的 BLAS 库,运行在 ROCm 运行时;文档:rocBLAS;仓库:rocBLAS

  • rocFFT:使用 HIP 实现的快速傅里叶变换库;文档:rocFFT;仓库:rocFFT

  • rocRAND:提供伪随机和准随机数生成函数;文档:rocRAND;仓库:rocRAND

  • rocSOLVER:在 ROCm 上实现 LAPACK 算法,优化 AMD GPU 性能;文档:rocSOLVER;仓库:rocSOLVER

  • rocSPARSE:稀疏矩阵计算接口库,基于 HIP 实现 BLAS 风格运算;文档:rocSPARSE;仓库:rocSPARSE

  • rocWMMA:C++ 库,加速混合精度矩阵乘累加(MMA)运算;文档:rocWMMA;仓库:rocWMMA

  • Tensile:基于基准测试的后端库生成器,用于 GEMM、GEMM-like 问题和 N 维张量运算;文档:Tensile;仓库:Tensile

通信库

原语库

1.4 编译器层 (Compilers)

1.5 编程模型层 (Programming Models)

  • HIP(Heterogeneous-compute Interface for Portability):异构计算可移植接口,提供CUDA类似编程体验。rocm-systems/projects/hip at develop · ROCm/rocm-systems

  • OpenCL(Open Computing Language):开放计算语言标准,支持跨平台异构计算。

  • OpenMP(Open Multi-Processing):指令级并行编程模型,简化GPU代码移植。

1.6 运行时层 (Runtimes)

1.7 工具层 (Tools)

性能分析工具

开发调试工具

系统管理

1.8 驱动层 (Drivers)

  • AMDGPU:Linux内核显示驱动,管理GPU硬件资源。

  • HSAKMT(Heterogeneous System Architecture Kernel Mode Driver):HSA内核模式驱动,处理用户态-内核态通信。

  • ROCt(ROCm Thunk):用户态驱动接口,提供系统调用封装。

1.9 硬件层 (Hardware)

  • CDNA(Compute DNA)架构:计算优化架构(Instinct MI系列),专注HPC和AI。

  • RDNA(Radeon DNA)架构:图形计算架构(Radeon RX系列),平衡图形和计算。

  • Infinity Fabric:高速互连技术,实现多GPU直接通信。

2 ROCm软件栈架构图

whiteboard_exported_image (3)

3 TheRock输出与ROCm软件栈

TheRock编译后生成的输出文件在:

build/dist/rocm/
├── bin
├── include
├── lib
├── libexec
├── llvm -> lib/llvm
└── share

 bin中主要包含编译、Tools、Test等可执行文件;lib中包含Math Libraries、Communication Libraries、ROCm Runtime等。比如:

Libraries
  ├─ ML & CV: libMIOpen.so
  ├─ Communication: librccl.so
  ├─ Math:
  │    ├─ libhipblas.so, librocblas.so
  │    ├─ libhipblaslt.so
  │    ├─ libhipfft.so, librocfft.so
  │    ├─ libhiprand.so, librocrand.so
  │    ├─ libhipsolver.so, librocsolver.so
  │    └─ libhipsparse.so, librocsparse.so
  └─ Primitives: (未出现)

Compilers
  ├─ libamd_comgr.so
  └─ llvm/Runtimes
  ├─ HIP: libamdhip64.so, libhiprtc.so, libhiprtc-builtins.so
  └─ HSA: libhsa-runtime64.so

Tools
  ├─ System: librocm_smi64.so
  ├─ Performance: librocprofiler-sdk.so, librocprofiler-sdk-roctx.so, librocprofiler-register.so
  └─ Development: rocprofiler-sdk/

Drivers
  ├─ liboam.so
  ├─ librocm-core.so
  ├─ rocmmod
  └─ rocm_sysdeps/

4 ROCm架构图参考

以下是一些不同视角的架构图。

ROCm(6.3.2) Software Stack

image

 Architecture and Components | ROCm/ROCm | DeepWiki

image

Accelerate Your Applications with ROCm | Inside HPC & AI News

image

 Exploring AMD’s Ambitious ROCm Initiative » ADMIN Magazine

image

Welcome to AMD ROCm™ Platform — ROCm 4.5.0 documentation

image

 A Nice Overview Of The ROCm Linux Compute Stack - Phoronix

image

image

image

posted on 2025-07-29 23:59  ArnoldLu  阅读(10)  评论(0)    收藏  举报

导航