Writing programs directly in CUDA is not the only option available to people wishing to speed up their work by making use of GPUs. There are three broad ways of developing applications for CUDA:
• Using libraries
• Directive-based programming
• Writing CUDA kernels directly
We’ll look at each of these in turn and when you should apply them.
Libraries are useful components that can save you weeks or months of development effort. It makes perfect sense to use libraries where possible because, generally, they are developed by experts in their particular field and thus are both reliable and fast. Some of the more common, and free, libraries are as follows:
• Thrust—An implementation of the C++ ...