APIs for utilising the potential of GPU for Computation
Modern software needs to do a lot of computation intensive tasks like ML, Computer Vision, FEA (Finite Element Analysis), 3D rendering. With the advancements in GPU technology the software must be able to utilise the potential of GPUs. To utilise this power, the developer needs to use an API that enables them to interface with the GPU and do computation
Here is a list of well known GPU APIs for Computation. Some items on this list are more than just APIs.
1. OpenCL
This GPU API is mature and is widely used. easy to learn and works with wide range of Devices. Plenty of documentation is available to work with this API works on Mac OS, Windows, Linux. Uses GLSL which is a shading language based on C standard.
2. CUDA
A very popular GPU API. Compatible with NVIDIA GPUs and has very advance features. A lot of 3D graphics software uses CUDA. Easy to learn with plenty of documentation and tutorials. Used by a lot of open source and paid software. It is also very easy to begin with and easy to learn
3. Vulkan
It supports both Graphics and Computation. Supports wide range of devices / platforms like Android, Desktop, Some gaming consoles and Apple Devices (with MoltenVK). Has a little steep learning curve for beginners but should be easy for developers who have experience with other APIs.
4. DirectX
Developed by Microsoft. Mainly for Platforms like Xbox and Windows. It uses HLSL (High Level Shader Language). It can run Compute shaders for doing computation on the GPU. It has been around for a long time and is easy to learn and has excellent support and plenty of documentation.
Recommended by LinkedIn
5. Metal API
Developed by Apple for Apple silicon devices and Operating systems like MacOS, iOS, iPadOS. It has shading language MSL (Metal Shading Language) which is based on C standard. Can work with Swift, Objective-C and C++. It has a very good documentation and good support.
6. Intel OneAPI
Built for AI acceleration. Developed by Intel works with FPGAs, GPUs, CPUs and other accelerators.
7. AMD ROCm
Developed by AMD. Has different tools for GPU programming and HPC. has good support and documentation.
There are many other technologies under development and as there are new type of Chips under development.
Highly insightful