Available today, the HIP SDK is a milestone in AMD's quest to democratize GPU computing. The creators of some of the world's most demanding GPU-accelerated applications already trust HIP, AMD's Heterogeneous-Compute Interface for Portability, when writing code that can be compiled for AMD and NVIDIA GPUs. Now the new SDK gives smaller developers the power to port existing CUDA® applications like renderers and simulation tools to run on AMD hardware.
In this blog post, we'll be answering common questions about the HIP SDK, and exploring what you can and can't do with it. But first, let's look at how it can make your life as a developer easier.
Why do you need the HIP SDK?
We know that developers of GPU-accelerated applications want to give their users the freedom to choose which hardware they use. But to do so used to mean maintaining two separate code bases: one for NVIDIA, using its proprietary CUDA® API, and one for other GPUs – not easy to do, particularly if you're a small team. That's where HIP, and now the new HIP SDK, comes in.
HIP is a free and open-source runtime API and kernel language. With it, you can convert an existing CUDA® application into a single C++ code base that can be compiled to run on AMD or NVIDIA GPUs, although you can still write platform-specific features if you need to. The HIP SDK provides tools to make that process easier.
How is HIP different from ROCm™?
HIP is part of AMD ROCm™, our open-source platform for GPU computing. But whereas the AMD ROCm™ platform is focused on HPC and AI, particularly server-based solutions, HIP is designed for desktop applications. You can use it on Windows as well as Linux, and it doesn't come with machine learning frameworks like PyTorch or TensorFlow: just the core functionality you need for GPU-intensive software like renderers and simulation tools.
What can you do with the HIP SDK?
Anything that you can do with the HIP API, but without having to contact AMD first. The HIP API is a powerful toolset, but to make full use of it, you really need active support from our engineers. The new SDK makes things much simpler. We're still there to help out, but the SDK contains the tools you need to convert a CUDA application on your own.
What kinds of software is the HIP SDK intended for?
Anything that uses numeric compute, but particularly graphics and simulation tools. In the DCC (Digital Content Creation) market, HIP is used in Blender – the 3D software used in the visual effects of series like Amazon Prime's The Man in the High Castle – in its Cycles render engine. Maxon is using HIP to port its Redshift renderer, used on movies like The Matrix: Resurrections, to run on AMD GPUs. And in the AEC (Architecture, Engineering and Construction) market, developers are looking to do the same thing with computational fluid dynamics tools.
But you don't have to be developing a large standalone application. Plugin developer Boris FX is using HIP to enable Sapphire, its Emmy Award-winning suite of VFX plugins, to run on AMD GPUs. Porting smaller tools like this is exactly the sort of project that the new SDK can help with.
How hard is it to port a CUDA application using the HIP SDK?
Not as hard as you might think. Both CUDA and HIP are dialects of C++, so if you know CUDA, the syntax should be familiar to you, and the SDK includes tools to speed up the process: its HIPIFY toolset automatically translates CUDA code into portable HIP C++. Using AMD's Orochi library, you can even compile a single binary that runs on both AMD and NVIDIA hardware.
What doesn’t the HIP SDK do?
Optimize your code for you: if you want maximum performance from your software, you still need to fine-tune it yourself. It also doesn’t include tools for machine learning or AI such as PyTorch or TensorFlow.
Which AMD GPUs does the HIP SDK support?
Everything from high-end workstation and gaming GPUs to laptop cards and even APUs. Below, you can see a list of the GPUs that AMD tests for use with the HIP SDK, but you may be able to support other cards in your own software: for example, Blender's HIP rendering backend supports AMD GPUs going back to the Vega generation.
Developing the HIP SDK is a priority for us. We will be adding features over time and are targeting updates of the SDK in sync with the AMD Software: PRO Edition, ensuring continued support for developers.
So, to summarize:
Things the HIP SDK can do
Convert an existing CUDA® application to run on AMD GPUs
Do so without the need to contact AMD for support
Port GPU-accelerated graphics and simulation tools to AMD hardware
Things the HIP SDK doesn’t do
Optimize the performance of your software
Provide support for developing machine learning or AI applications
Want to find out more? Here are some resources to help you get started: