Using existing libraries and frameworks
The code we have used in previous chapters helped us understand how to use the GPU, and you may wonder whether libraries already exist that offer the most optimized version of, let’s say, matrix multiplication. And this is exactly the case: there are. Thankfully, we don’t need to reinvent the wheel, because CUDA already provides a suite of mature, optimized libraries and frameworks designed to offer efficient implementations for common computing tasks, drastically reducing the development effort for our applications. The complete list of available libraries can be found at https://developer.nvidia.com/gpu-accelerated-libraries.
Those libraries target specific categories of problems, and although they are numerous, we will focus on two libraries that are similar to what we have worked on in previous chapters. This will enable us to compare our previous development efforts with the use of the libraries. The first library is cuBLAS...