Exploring AMD’s Ambitious ROCm Initiative

HSA-Compliant System Runtime

The foundation for the ROCm environment is the ROCm kernel driver and system runtime stack. The ROCr system runtime API, which resides above the kernel driver, is a language-independent runtime that complies with Heterogeneous System Architecture (HSA) specifications. HSA is an industry standard designed to support the integration of GPUs and CPUs with shared tasks and scheduling.

The modular form of the ROCm system runtime stack means the system runtime could one day support additional programming languages. In the true spirit of heterogeneous computing, the kernel layer below is also implemented as a separate module to facilitate easy porting to other kernel environments.

Machine Learning and AI

ROCm is built to accommodate future technologies, and the future is machine learning and artificial intelligence. Many of the high-performance computer systems that depend on AMD’s GPU-based computing environment are used with AI research and development. The ROCm developers knew they would need to build in a broad foundation of support for machine learning and AI.

Perhaps the most significant new AI feature is the MIOpen machine-learning library. MIOpen adds support for Convolution Neural Network acceleration. The MIOpen library serves as a middleware layer between AI frameworks and the ROCm platform, supporting both OpenCL and HIP-based programming environments.

The ROCm team is well aware that much of the recent work with machine learning has centered around a few powerful programming frameworks, many of which were designed to work with CUDA. One of the goals of the project is to port many of these existing AI frameworks to the ROCm platform. By supporting these popular frameworks, the developers create a setting that makes it easy to code once in a familiar language and then compile for either ROCm and AMD GPUs or the conventional CUDA environment.

ROCm supports the TensorFlow machine learning framework, and ROCm developers work closely with the TensorFlow team to ensure close compatibility. The ROCm platform also includes support for Caffe2, PyTorch, MXNet, and other machine learning frameworks  (Figure 4).

  

Figure 4:  The versatile ROCm provides support for several of the most popular machine-learning frameworks.