Accelerators and GPUs Flashcards
(29 cards)
Why do CPUs need to balance multiple factors in their design?
List some factors
CPUs must deliver acceptable performance for a wide range of applications
- functionality
- performance
- energy efficiency
- cost
What is the purpose of an accelerator in computing?
An accelerator works alongside a CPU to provide increased performance for specific workloads, with different design tradeoffs.
Give an example of an early accelerator used in CPUs.
- Early
x86
processors did not have floating point hardware -
x87
floating point co-processors were used to accelerate floating point operations - floating point units are now part of the main processor.
What are GPUs?
Graphical Processing Units (GPUs) are specialised hardware for operations related to image generation - requiring many matrix-vector operations.
How are GPUs highly parallel?
- Contain a large number of floating point units
- Support a large number of processing threads
How does GPU memory differ from CPU memory?
GPU memory provides higher bandwidth than CPU memory.
What was a key hardware evolution in GPUs?
- GPUs evolved from fixed-function rendering pipelines to programmable unified shaders and double-precision arithmetic
- This allows current GPUs to be used for general purpose computation
Why are GPUs useful as accelerators in HPC?
They offer good floating point performance and high memory bandwidth, making them suitable for computationally expensive tasks.
Why must some operations still be handled by a CPU in a GPU-accelerated system?
The CPU is responsible for tasks such as running the operating system and handling input/output operations.
How are GPUs typically connected to CPUs?
PCI Express (PCI-e) interface.
- What is a drawback of PCI-e connectivity for GPUs?
- How can it be mitigated?
- Is there anything better than PCI-e?
- It has relatively high latency, which can impact performance.
- By minimising the transfer of data between the host CPU and the GPU.
- NVIDIA’s “NV link” offers better data rate
- What is the Green500 list?
- Why is it important?
- A companion to the Top500 list that ranks HPC systems by energy efficiency (GFlops/Watt).
- Power consumption and cooling requirements significantly impact overall system performance and cost.
What is the exascale era in computing?
The era of building exascale supercomputers, which perform at least one exaflop (10^18 floating point operations per second).
Name the first exascale supercomputer.
Frontier
Why is hardware diversity increasing in HPC?
Companies beyond Intel and NVIDIA, such as AMD and ARM, are entering the market with competitive CPUs and GPUs.
Why is portability an important consideration in modern HPC?
The increasing variety of CPU and GPU architectures means software must be able to run across different hardware platforms.
What is the NVIDIA Pascal architecture? Describe It.
- A GPU architecture designed for HPC applications.
- Up to 60 “Streaming Multiprocessors” per GPU
What is a Graphics Processing Cluster (GPC)?
A block of 10 Streaming Multiprocessors, functioning like an independent GPU within a Pascal GPU.
What is the function of the “GigaThreadEngine” in Pascal GPUs?
It schedules threads and handles context switching.
Why must data movement be considered in GPU programming?
The CPU and GPU have separate memory, and transferring data between them can be slow.
Why should small tasks remain on the CPU instead of being offloaded to the GPU?
The overhead of transferring data to the GPU can outweigh the benefits of parallel execution for small tasks.
How do GPUs hide memory latency?
By overcommitting cores, allowing execution to continue while waiting for memory operations.
Why is branching inefficient in GPU programming?
GPUs are optimised for data-parallel workloads, and branch divergence can cause performance degradation.
What is Single Instruction Multiple Data (SIMD)?
A parallel processing model where each thread performs the same operation on different data items.