Glossary · 5 · Hardware SDKs and devices
Graphics processing unit (GPU)
Also known as: GPU, Graphics processor
German: Grafikprozessor (GPU)
In computing, a graphics processing unit (GPU) is a processor designed for highly parallel computation, originally for rendering graphics and now also for general-purpose computing, that runs thousands of threads in parallel and trades single-thread speed for much higher total throughput than a central processing unit (CPU).
- Hardware SDK
- AI
In one sentence
A GPU is a highly parallel processor, first built for graphics, now also used for general-purpose and AI computing, with high total throughput.
Example
A training job for an image classifier runs its matrix multiplications on a GPU, while the CPU loads data and coordinates the job.
How it applies
- Hardware SDKs: GPU kits (vendor platforms such as CUDA or vendor-neutral standards such as OpenCL and SYCL) provide compilers, libraries and drivers for running code on the GPU. Code for the GPU is written as kernels that many threads execute in parallel.
- Design: NVIDIA's programming guide describes the difference: a CPU is designed to execute a serial sequence of operations as fast as possible and runs a few tens of threads in parallel; a GPU is designed to execute thousands of threads in parallel, devoting more transistors to data processing and fewer to caching and flow control.
- AI workloads: Training and running neural networks and large language models (LLM) consist largely of parallel matrix arithmetic, which is why GPUs are the common hardware for training and inference.
- Developer and platform SDKs: Cloud SDKs provision GPU instances; graphics and XR platform kits target the GPU through graphics APIs; host applications expose GPU acceleration to plug-ins. Driver, toolkit and hardware generation have to match.
- Documentation: State the required GPU class, memory, driver and toolkit versions and the behavior without a suitable GPU (fallback to CPU, reduced features or no support).
GPU vs. CPU
A CPU has few, fast cores optimized for sequential code and complex control flow. A GPU has many simpler cores optimized for the same operation on large amounts of data. Most systems use both: the CPU runs the application and hands parallel work to the GPU.
External references
- NVIDIA: CUDA Programming Guide, Introduction
- Khronos Group: OpenCL, SYCL