Accelerating Compute-Intensive Applications with GPUs and FPGAs
DSA ADS Course - 2022
Discuss GPUs and FPGAs. List trade-offs as well as pros and cons of both - and discuss different applications to select best special purpose processor. Discuss future special purpose processors and likely technology innovations for special purpose processors in short, medium and long terms.
Discuss potential system architecture paradigm shifts.
Accelerators are special purpose processors designed to speed up compute-intensive sections of applications. Two extreme endpoints in the spectrum of possible accelerators are FPGAs and GPUs, which can often achieve better performance than CPUs on certain workloads.
FPGAs are highly customizable, while GPUs provide massive parallel execution resources and high memory bandwidth. Applications typically exhibit vastly different performance characteristics depending on the accelerator. This is an inherent problem attributable to architectural design, middleware support and programming style of the target platform.
For the best application-to-accelerator mapping, factors such as programmability, performance, programming cost and sources of overhead in the design flows must be all taken into consideration. In general, FPGAs provide the best expectation of performance, flexibility and low overhead, while GPUs tend to be easier to program and require less hardware resources.
We present a performance study of three diverse applications—Gaussian Elimination, Data Encryption Standard (DES), and Needleman-Wunsch—on an FPGA, a GPU and a multicore CPU system. We perform a comparative study of application behavior on accelerators considering performance and code complexity. Based on our results, we present an application characteristic to accelerator platform mapping, which can aid developers in selecting an appropriate target architecture for their chosen application.