> For the complete documentation index, see [llms.txt](https://huataihuang.gitbook.io/cloud-atlas-draft/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://huataihuang.gitbook.io/cloud-atlas-draft/machine_learning/gpu/rocm.md).

# AMD ROCm

[ROCm](https://rocm.github.io/)是AMD推出的GPU计算开源框架，其实现和nVidia的CUDA类似。2016年AMD推出了ROCm计算平台，提供了硬件加速的并行计算环境。由于在GPU和机器学习上落后于nVidia，AMD推出的ROCm采用了开源、多平台的方式进行竞争。

2018年，AMD实现了Vega 7nm技术来制造GPU，提升了第二代高性能计算性能。

ROCm是统一的GPU加速计算，集成了多种程序语言支持，例如OpenCL, Python, HIP 等。ROCm甚至提供了将CUDA代码转换成原生ROCm的工具。

ROCm平台的核心是混合计算编译器（Heterogeneous Compute Compiler, HCC)，开源HCC基于Clang C++预处理器的LLVM编译器。HCC比传统的C++优势是带来全功能的AMD GPU环境的编程能力。

ROCm的特点是平台支持不同的开发语言并且接口可以工作在不同的GPU硬件环境，直接提供了OpenCL，Python以及一系列公共的C++变体。最具革新意义的平台是可移植性混合计算接口Heterogeneous-Compute Interface for Portability(HIP)工具，提供了厂商无关的C++支持，这样就可以在AMD或CUDA/NVIDIA GPU环境进行编译。

![ROCm平台](https://3334459331-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LeFI0OlHH4bg0gqJ3hR%2F-M1T9_Bfe6KWQGInkWGi%2F-M1TARfWu2Z-em786BOn%2FROCm_Platform_big_picture.png?generation=1583201783131535\&alt=media)

ROCm不仅支持C和C++，而且还支持Python Anaconda。Anaconda是一种特殊的Python版本，定制了科学计算和大规模数据处理。ROCm还原生支持OpenCL框架。OpenCL(Open Compute Lanaguage)是一种支持CPU和GPU并行计算怨言环境的一种混合框架，由非盈利组织Khronos负责。

AMD的ROCm内建了机器学习和AI加速，这是基于GPU的计算加强，最重要的是MIOpen机器学习库。MIOpen加入了错综复杂的神经网络加速。MIOpen库服务是一个在AI框架和ROCm平台之间的中间层，同时支持OpenCL和基于HIP编程环境。

ROCm支持TensolFlow机器学习框架，也支持Caffe2，PyTorch，MXNet以及其他机器学习框架。

![ROCm平台机器学习](https://3334459331-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LeFI0OlHH4bg0gqJ3hR%2F-M1T9_Bfe6KWQGInkWGi%2F-M1TARfhN7k3MEgDVbJd%2FROCm-Machine_Learning.jpg?generation=1583201783203263\&alt=media)

## 参考

* [Exploring AMD’s Ambitious ROCm Initiative](http://www.admin-magazine.com/HPC/Articles/Discovering-ROCm)
