The fundamental concept behind Python programming on GPU devices is based on what we have learned so far about CUDA, ROCm, and Anaconda. It is all about using their integrations with Python developed as PyCUDA, PyOpenCL, CuPy, and Numba, respectively.
With PyCUDA, you can use Python with NVIDIA GPUs, while with PyOpenCL, you can use NVIDIA, AMD GPUs and other massively parallel compute devices. CuPy allows you to implement NumPy like features on an NVIDIA GPU. After installing Accelerate with Conda, you can import the numba package very easily within your code to leverage your GPU device. We will explore this in detail in Chapter 8, Working with Anaconda, CuPy, and Numba for GPUs.