Accelerators and GPUs Flashcards

(29 cards)

1
Q

Why do CPUs need to balance multiple factors in their design?

List some factors

A

CPUs must deliver acceptable performance for a wide range of applications
- functionality
- performance
- energy efficiency
- cost

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the purpose of an accelerator in computing?

A

An accelerator works alongside a CPU to provide increased performance for specific workloads, with different design tradeoffs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Give an example of an early accelerator used in CPUs.

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are GPUs?

A

Graphical Processing Units (GPUs) are specialised hardware for operations related to image generation - requiring many matrix-vector operations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How are GPUs highly parallel?

A
  • Contain a large number of floating point units
  • Support a large number of processing threads
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How does GPU memory differ from CPU memory?

A

GPU memory provides higher bandwidth than CPU memory.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What was a key hardware evolution in GPUs?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Why are GPUs useful as accelerators in HPC?

A

They offer good floating point performance and high memory bandwidth, making them suitable for computationally expensive tasks.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Why must some operations still be handled by a CPU in a GPU-accelerated system?

A

The CPU is responsible for tasks such as running the operating system and handling input/output operations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

How are GPUs typically connected to CPUs?

A

PCI Express (PCI-e) interface.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  1. What is a drawback of PCI-e connectivity for GPUs?
  2. How can it be mitigated?
  3. Is there anything better than PCI-e?
A
  1. It has relatively high latency, which can impact performance.
  2. By minimising the transfer of data between the host CPU and the GPU.
  3. NVIDIA’s “NV link” offers better data rate
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  1. What is the Green500 list?
  2. Why is it important?
A
  1. A companion to the Top500 list that ranks HPC systems by energy efficiency (GFlops/Watt).
  2. Power consumption and cooling requirements significantly impact overall system performance and cost.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is the exascale era in computing?

A

The era of building exascale supercomputers, which perform at least one exaflop (10^18 floating point operations per second).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Name the first exascale supercomputer.

A

Frontier

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Why is hardware diversity increasing in HPC?

A

Companies beyond Intel and NVIDIA, such as AMD and ARM, are entering the market with competitive CPUs and GPUs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Why is portability an important consideration in modern HPC?

A

The increasing variety of CPU and GPU architectures means software must be able to run across different hardware platforms.

17
Q

What is the NVIDIA Pascal architecture? Describe It.

A
  • A GPU architecture designed for HPC applications.
  • Up to 60 “Streaming Multiprocessors” per GPU
18
Q

What is a Graphics Processing Cluster (GPC)?

A

A block of 10 Streaming Multiprocessors, functioning like an independent GPU within a Pascal GPU.

19
Q

What is the function of the “GigaThreadEngine” in Pascal GPUs?

A

It schedules threads and handles context switching.

20
Q

Why must data movement be considered in GPU programming?

A

The CPU and GPU have separate memory, and transferring data between them can be slow.

21
Q

Why should small tasks remain on the CPU instead of being offloaded to the GPU?

A

The overhead of transferring data to the GPU can outweigh the benefits of parallel execution for small tasks.

22
Q

How do GPUs hide memory latency?

A

By overcommitting cores, allowing execution to continue while waiting for memory operations.

23
Q

Why is branching inefficient in GPU programming?

A

GPUs are optimised for data-parallel workloads, and branch divergence can cause performance degradation.

24
Q

What is Single Instruction Multiple Data (SIMD)?

A

A parallel processing model where each thread performs the same operation on different data items.

25
Why do GPUs not have the same branch prediction as CPUs?
Their architecture prioritises parallel execution over complex control flow handling.
26
What is the `target` construct in OpenMP?
A directive that allows offloading computations to accelerators like GPUs.
27
What does the `teams distribute` directive in OpenMP do?
It distributes loop iterations across threads in a team on an accelerator.
28
What does the `map` clause do in OpenMP target regions?
It specifies which data should be transferred between CPU and GPU memory.
29
Why is OpenMP useful for GPU programming?
It allows existing C, C++, and Fortran code to be parallelised with minimal changes.