HIP : C++ Heterogeneous-Compute Interface for Portability

Tools

Introduction

Heterogeneous-compute Interface for Portability, or HIP, is a C++ runtime API and kernel language that allows developers to create portable applications that can run on AMD and other GPU’s. Our goal was to rise above the lowest-common-denominator paths and deliver a solution that allows you, the developer, to use essential hardware features and maximize your application’s performance on GPU hardware.

It’s HIP to Be Open

AMD, a strong proponent of open source and open standards, has created a new tool that will allow developers to write applications to a common C++ syntax and API. The resulting C++ code can be compiled with AMD’s HCC and Nvidia’s NVCC, using the best compilers and tools on the respective hardware. This new Heterogeneous-Compute Interface for Portability (HIP) gives customers more hardware and development-tool options. Important benefits include the following:

  • HIP_SuperComputing_Event_SIGNDevelopers can code in C++, as well as mix host and device C++ code in their source files. HIP source code can use a rich set of C++ features including templates, lambdas, classes, and namespaces.
  • HIP source code compiles for either AMD or other vendor platforms. On other vendor platforms, HIP delivers performance similar to what you can achieve by coding directly in the native APIs.  It implements architecture-specific optimizations through conditional compilation for either platform – the bulk of the code stays portable and developers can specialize where necessary.
  • Because both Cuda® and HIP are C++ languages, porting from Cuda to HIP is much easier than porting from Cuda to OpenCL™.
  • To further reduce the learning curve when moving from Cuda to HIP, we developed the hipify tool to automate your application’s core conversion.
  • HIP is an open source project, and we look forward to having the community help us drive its future design and make contributions to the API.  We encourage pull requests and welcome contributions to address “up-for-grabs” issues listed on the GitHub site.

What’s Next?

  • View the source code, samples, and documentation on GitHub.
  • Check out the “Hip to be Squared” tutorial that walks you through the process of hipifying a simple Cuda application.
  • Read the datasheet and white paper.

Related Blogs

Technical blogs about HIP

Resources