C++ amp makes it easy to explore parallel processing on GPUs in a college course or research project
Erik Wynters · Journal of computing sciences in colleges · 2018
C++ AMP (Accelerated Massive Parallelism) is a high-level library that provides an easy way to introduce massively parallel processing, using from thousands to millions of threads, into a college course or research project. The threads are executed in parallel on a graphics card's processor (GPU). Many popular graphics cards have 500 to 4000 cores that can execute tasks in parallel. In contrast, most PCs have a central processing unit (CPU) with 2-8 cores that can run in parallel. They have different strengths and weaknesses than GPU cores or there would not be a need for both. For tasks appropriate for execution on a GPU, CPUs cannot compete. When executing a task in parallel on a CPU, the speedup factor (how many times faster it runs relative to a single-threaded program on the same CPU) cannot exceed the number of CPU cores (typically 2-8). In contrast, a C++ AMP execution of some tasks on a powerful GPU can be hundreds or thousands of times faster than a single-threaded CPU implementation.