Sign up for our newsletter and get the latest HPC news and analysis.
Send me information from insideHPC:


Accelerate Your Applications with ROCm

Previously, we described the AMD ROCm open-source platform that developers can freely use to create innovative software applications that take advantage of the underlying accelerated hardware. The ROCm platform is designed so that a wide range of developers can develop accelerated applications. An entire eco-system has been created, allowing developers to focus on developing their leading-edge applications.

Developers require more than just an API to create new applications quickly and confidently. As part of an eco-system, ROCm contains a debugger, tools for performance analysis, system validation, and system management. These tools allow developers to understand how their application performs and make modifications to get the most out of the acceleration hardware.

Frameworks are essential for Machine Learning (ML) applications, and the most popular ones include TensorFlow and PyTorch. TensorFlow is widely used and is an open-source platform that allows researchers and developers to build ML applications quickly and easily. ROCm has upstream integrated support of TensorFlow, and there is a Docker container available for it. PyTorch is another ML framework supported, and it is popular with developers who are already familiar with Python.  As an open-source project, PyTorch is continually updated, and new releases are made available nightly.

Figure 1 shows the broad eco-system for developers that are interested in an open-source programming environment that can take advantage of the latest acceleration hardware for HPC or Machine Learning applications.

Figure 1 – ROCm Eco-system

There are several programming models that developers choose to implement their HPC application. AMD ROCm supports programming models such as HIP, OpenCL, and OpenMP.

  • OpenMP – OpenMP is an API that allows developers to create applications that take advantage of all the cores within a system. The OpenMP API is available for multiple programming languages and executes on many operating systems.
  • HIP – An open and portable platform to heterogeneous computing is a powerful and flexible API that allows a developer to create applications that will run on AMD and competing accelerators.
  • OpenCL – Open Computing Language is an open-sourced platform for creating applications that will run on a range of accelerators.
  • Python – Python is an interpreted, object-oriented, high-level programming language with dynamic semantics that is very popular with data scientists.

HIP

Perhaps one of the most innovative components of the ROCm eco-system in the creation of the Heterogeneous Compute Interface for Portability. Since the underlying hardware accelerators from competing companies may leapfrog each other with performance capabilities or new features, developing an application that executes on different architectures is critical for the adoption of these applications. HIP helps developers avoid vendor lock-in and increases portability across a wide range of servers and operating systems. HIP has the following benefits:

  • No performance penalty as the layer is very thin.
  • Convert Nvidia CUDA calls to portable C++ code
  • Native support for AMD GPUs with hipcc
  • Allows coding in a single-source C++ programming language, including features such as templates, C++11 lambdas, classes, namespaces, and more.

ROCm  

To learn more about ROCm and how you can quickly develop accelerated applications, visit:  https://www.amd.com/en/graphics/servers-solutions-rocm

To learn more about HIP and how you can quickly create new applications that will run anywhere, visit:

https://rocmdocs.amd.com/en/latest/Programming_Guides/HIP-FAQ.html

© 2020 Advanced Micro Devices, Inc.  All rights reserved. AMD, the AMD Arrow logo, AMD Instinct, Infinity Fabric, Radeon Instinct, and combinations thereof are trademarks of Advanced Micro Devices, Inc.  Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries. OpenCL™ is a registered trademark of the Khronos Group Inc. Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies.

Leave a Comment

*

Resource Links: