国产加速器DCU采用ROCm软件栈作为基础支撑。ROCm(Radeon Open Computing Platform)是首个开源的GPU通用计算平台,是一种轻量级、模块化的GPU软件开发环境,可以提供多种开发工具和运行时环境。ROCm拥有丰富的系统关键功能组件支持,可适用于大规模应用程序计算,编译器及程序运行时组件开发。
ROCm中每个组件根据其功能自底向上构建出了完整的平台功能,使得开发者可以方便快捷在CPU、DCU、GPU等设备上开发支持异构计算的应用程序。各组件对下层功能进行封装,并对上层提供必须的功能.
上图展示ROCm组件结构,自底向上分别为加速器驱动ROCk、运行时系统ROCt和ROCr、HIP并行编程模型和基础数学库,同时还有管理工具、优化和调试工具。除HIP并行编程模型外,ROCm还提供对OpenCL和C++ AMP并行编程模型的支持。ROCm各组件整体支撑起各领域应用程序。
与CUDA相比,ROCm拥有完善的软件生态,下图展示CUDA生态组件结构与ROCm生态组件的对比:
由于CUDA主要组件均闭源,上图中以CUDA部分以相关文献中公布的组件为基础。构成CUDA的主要系统组件为CUDA Driver、CUDA Runtime和CUDA Library。从ROCm和CUDA组件层次对比可以看出,CUDA Driver对应了ROCm中ROCk和