Using GPUs to Accelerate CAD Algorithms
Academic Article
Overview
Research
Identity
Additional Document Info
Other
View All
Overview
abstract
A graphics processing unit, or GPU, is a coprocessor used by a CPU to offload compute-intensive operations required to render the display on a monitor. For high-performance General-purpose computation on graphics processing units (GPGPU) discrete GPUs have been overwhelmingly favored due to their significantly more powerful hardware in comparison to integrated GPUs. When programmed through Compute Unified Device Architecture (CUDA), the GPU is viewed as a compute device capable of executing a large number of threads in parallel. A problem can be accelerated on the GPU using one of two broad approaches: porting and rearchitecting. For GPU acceleration of problems that are inherently serial, a bottom-up rearchitecting of the code is required. The extent to which a GPU can speed up a program is dependent upon the amount of code that can be executed on the GPU relative to the CPU. Data transfer time must also be added as non-parallel overhead to the program's runtime, if it cannot be overlapped with computation.