Part V: GPU Programming and OpenCL

David L. Chopp · Society for Industrial and Applied Mathematics eBooks · 2019

The CUDA language covered in Part IV is a proprietary language designed exclusively for NVIDIA graphics cards. Not all computers contain NVIDIA graphics cards, so an alternative is needed. An open source cross-platform alternative to CUDA is called OpenCL [22]. Most of the high-end graphics card makers, including NVIDIA, have an OpenCL backend so that a generic OpenCL interface can be used to access lots of subsystems on a computer including not just graphics cards, but also CPUs, digital signal processors (DSPs), and so on. Each subsystem has a unique set of characteristics and capabilities and can be run in parallel. OpenCL makes all of these devices available to the programmer by letting the code dictate the parameters for optimal operation. In this text, the focus will be just on using the GPUs since that is the most useful for the type of programs required for scientific computing. For a reference to the OpenCL functions and more information, check out the website https://www.khronos.org There are also helpful reference books [23].

Read the paper · More papers on PaperTik