In this chapter, we learned about the basic differences between programming and computing. We learned about some of the fundamental concepts regarding how CUDA, ROCm, and Numba leverage GPUs. We also learned the many libraries facilitated by CUDA, ROCm, and Numba. The features of PyCUDA, PyOpenCL, and Numba were mentioned and highlighted.
Now that we're at the end of this chapter, you should be able to install CUDA, ROCm, and Anaconda on an Ubuntu-based system. You should also be able to set up the hipify tool and start porting existing CUDA code to its HIP version, especially if you are a research-code enthusiast. You are now familiar with the configurational differences between OpenCL with CUDA and OpenCL with ROCm. You have also learned the various reasons behind why Python is a great choice for GPU programming.
Before we start our hands-on experience with programming...