软件栈ROCm丰富度
CUDA |
ROCm |
功能描述 |
NVCC |
ROCmCC/HCC |
编译器 |
CUDA-GDB |
ROCgdb |
调试工具 |
- |
HIPify |
将CUDA原生代码转换为HIP原生C++代码 |
Ncidia Nsight |
ROCm性能分析工具 |
性能分析工具 |
Ncidia-sml |
ROCm-msi |
系统管理界面和命令行界面的工具 |
CUDA |
ROCm |
功能描述 |
数学库 |
||
CuBLAS |
RocBLAS |
从主机端(CPU)存储器获取数据,到相应的设备端(GPU)存储器 |
CuFFT |
RocFFT |
快速傅里叶变换 |
CUDA数学库、cuRAND |
- |
标准数学库、随机数生成(random number generation) |
Cusolver |
Rosolver |
密集和系数直接求解器 |
Cusparse |
Rocsparse/rocALUTION |
系数矩阵BLAS |
cuTENSOR |
RocWMMA |
张量线性代数库 |
AmgX |
- |
用于模拟和隐式非结构化方法线性解算器 |
并行算法库 |
CUDA |
ROCm |
功能描述 |
|
Thrust |
并行STL/socThrust |
C++并行算法和数据结构库 |
|
图像和视频库 |
|||
NvJPEG、NVIDIA原性能、NVIDIA视频编码SDK |
- |
用于JPEG解码的高性能GPU加速库、提供GPU加速的图像、视频和信号处理功能、硬件加速视频编码的一整套API、示例和文档 |
|
通信库 |
|||
NVSHMEM
|
-
|
OpenSHMEM标准的GPU内存,具有扩展性,以提高GPU性能 |
|
NCCL |
RCCL |
多GPU、多字节点通信 |
|
深度学习/人工智能库 |
|||
CuDNN:深度神经网络基元库。 TensorRT:用于生产部署的高性能深度学习推理优化器和运行时。 NVIDIA Riva:用于开发交互式情景AI会话应用的平台。 NVIDIA DeepStream SDK:用于基于A的视频理解和多传感器处理的实时流分析工具包。 NVIDIA DLI:用于解码和增强图像和视频,以加速深度学习应用的便携式开源库。 |
MiOpen:AMD的深度学习基元库,提供不同运算符的高度化和手动调整实现,如卷积、批量化、池化、softmax、教活和递日神经网络(RNN)层,用于训练和推理。 MIGraphX:AMD的图形推理引擎,可加速机器学习模型推理,AMD MIGraphX可以通过直接安装二进制文件或从源代码架构来使用。 MIVisionX:MIVisionX工具包是一套全面的计算机视觉和机器智能库、实用程序和应用程序,捆绑在一个工具包中。 AMC MIVisionX提供高度优化的Khronos OpenVX和OpenVX扩展的开源实现沿着支持ONNX和Khronos NNEFM交换格的卷积神经网络模型编译器和优化器。 |
CUDA 能够在科学计算、医疗服务、大模型计算等领域实现完整生态链的解决方案,而AMD一定程度上停留在基础系统部分,对比力略显不足。
CUDA与ROCm的独家功能对比,见表2-7。
表2-7 CUDA与ROCm的功能对比
CUDA |
AMD |
HIPFY:hipfy-clang、hipfy-perl、hipfy-torch可自动将CUDA转换为可移植的HIP CPP工具。而HIP是一种CPP运行时API和内核语言,便于创建NVIDIA适用的程序,能够兼容CUDA。 |
CuLitho计算光刻机:针对光学邻近校正OPC或逆光刻机技术ILT主动操纵掩模图像,以准确地对wafer进行光刻,合作公司包括ASML、TSMC、Synopsys。 CuQuantum量子计算库:支持Google Cirq、Qsim等,QML中cuStateVec被AWS brake、IBM Qiskit Aer、Xanadu Pennylane支持。另外,CuTensorNet是当前tier1的张量网络的寻路性能。 Tensor-LLM推理库。 众多第三方合作库:OpenCV视觉、ffmpeg视频编解码、Magma异构IO等。 |