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.
- Introduction to Parallel Computing
- P : A Programming Language
- Swift Programming Language
- Which Programming Language to Choose?
- Natural Language Programming
- Which Programming Language Should I Choose as a Beginner?
- Sorting | Natural Language Programming
- The Malevolent Mathemagician | Natural Language Programming
- Natural Language Programming — Teaching Kids
- The complete History of Java Programming Language
- Python - Fastest Growing Programming Language
- Why is Python the Best-Suited Programming Language for Machine Learning?
- Creating WYSIWYG Document Editor | Natural Language Programming
- Introduction to SAS programming
- Introduction to Programming Languages
- Introduction of Programming Paradigms
- JCL (Job Control Language)
- fgets() and gets() in C language
- Which language should you learn first if you want to make an app?
- What Are the Tidyverse Packages in R Language?
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.