Introduction of HIP parallel programming language
One must have header terms parallel computing, heterogeneous computing, high performance computing (HPC). If not you can explore HPC domain it is one of the fastest growing technology. It has touched almost all industries such as Medical, Security, Entertainment, Autonomous car, Finance, Oil industry etc. and list is growing every year. Companies like Google, Facebook, Microsoft, Adobe, Intel, Nvidia, AMD, ARM are few names who are actively bringing innovation into HPC domain.
There are many heterogeneous computing languages available today few well known languages are OpenCL, Cuda, OpenAMP, HIP. Recent additions into the list are Intel’s OneAPI and C++20 (will have parallel computing support). AMD has developed HIP parallel computing language which is a C++ extension hence C++ developer will enjoy learning this language.
To understand the innovation it is bringing in let’s understand the problem first, today Nvidia has CUDA language which is not device portable. In other words, code written in CUDA can’t be run on AMD GPU hence applications written in CUDA are forced to run only on Nvidia platforms. HIP addresses the problem and brings innovation such a way that single code can run on AMD platform or Nvidia. AMD claims code written in CUDA or HIP will not have any performance drop. Developer can develop applications in HIP and free to run on Nvidia or AMD GPU which is big relief for customers.
Advantages HIP has over other companion HPC languages:
- It is open source hence one can customize as per their need.
- It is pure CPP extension hence learning is relatively easy in compare to any new language such as OpenCL.
- Portability is biggest advantage developer can cherish, write once and compile and run on different GPUs(AMD/Nvidia).
- There is translator called hipify available in the package which can translate CUDA source code into HIP with in few moment.