From 286f120d9aa3fc830f079cd312b3648d960dbe6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nagy-Egri=20M=C3=A1t=C3=A9=20Ferenc?= Date: Wed, 29 Mar 2023 15:14:23 +0200 Subject: [PATCH] MI100 architecture guide (#1994) * Initial MI100 docs * Try changing style to fix MD004 * Disable MD004 * Disable MD005 * Move to {table} from {list-table} * Don't disable few MD styles --- docs/.sphinx/_toc.yml.in | 2 + docs/data/reference/gpu_arch/image.004.png | Bin 0 -> 39618 bytes docs/data/reference/gpu_arch/image.005.png | Bin 0 -> 48450 bytes docs/data/reference/gpu_arch/image.006.png | Bin 0 -> 34126 bytes docs/reference/gpu_arch.md | 17 +++- docs/reference/gpu_arch/mi100.md | 110 +++++++++++++++++++++ 6 files changed, 127 insertions(+), 2 deletions(-) create mode 100644 docs/data/reference/gpu_arch/image.004.png create mode 100644 docs/data/reference/gpu_arch/image.005.png create mode 100644 docs/data/reference/gpu_arch/image.006.png create mode 100644 docs/reference/gpu_arch/mi100.md diff --git a/docs/.sphinx/_toc.yml.in b/docs/.sphinx/_toc.yml.in index edcb24af7..2307aee1a 100644 --- a/docs/.sphinx/_toc.yml.in +++ b/docs/.sphinx/_toc.yml.in @@ -147,6 +147,8 @@ subtrees: - entries: - file: reference/gpu_arch/mi250 title: MI250 + - file: reference/gpu_arch/mi100 + title: MI100 - caption: Understand ROCm entries: - title: Compiler Disambiguation diff --git a/docs/data/reference/gpu_arch/image.004.png b/docs/data/reference/gpu_arch/image.004.png new file mode 100644 index 0000000000000000000000000000000000000000..0b802dfc800faea2b8b8bfb64b394590aa5477e9 GIT binary patch literal 39618 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 Y675Bjue$k_p8`KOuIXv!Ygh;UAIpWlbpQYW literal 0 HcmV?d00001 diff --git a/docs/data/reference/gpu_arch/image.006.png b/docs/data/reference/gpu_arch/image.006.png new file mode 100644 index 0000000000000000000000000000000000000000..88edc6588611c993f850fcbea8d3392568a32114 GIT binary patch literal 34126 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 + +Structure of a single GCD in the AMD Instinct MI250 accelerator. +::: + +In a typical node configuration, each processor can host up to four AMD +Instinct™ accelerators that are attached using PCIe Gen 4 links at 16 GT/sec, +which corresponds to a peak bidirectional link bandwidth of 32 GB/sec. Each hive +of four accelerators can participate in a fully connected, coherent AMD +Instinct™ fabric that connects the four accelerators using 23 GT/sec AMD +Infinity fabric links that run at a higher frequency than the inter-processor +links. This inter-GPU link can be established in certified server systems if the +GPUs are mounted in neighboring PCIe slots by installing the AMD Infinity +Fabric™ bridge for the AMD Instinct™ accelerators. + +## Micro-architecture + +The micro-architecture of the AMD Instinct accelerators is based on the AMD CDNA +architecture, which targets compute applications such as high-performance +computing (HPC) and AI & machine learning (ML) that run on everything from +individual servers to the world’s largest exascale supercomputers. The overall +system architecture is designed for extreme scalability and compute performance. + +:::{figure-md} mi100-block + +Structure of the AMD Instinct accelerator (MI100 generation). + +Structure of the AMD Instinct accelerator (MI100 generation). +::: + +{numref}`mi100-block` shows the AMD Instinct accelerator with its PCIe Gen 4 x16 +link (16 GT/sec, at the bottom) that connects the GPU to (one of) the host +processor(s). It also shows the three AMD Infinity Fabric ports that provide +high-speed links (23 GT/sec, also at the bottom) to the other GPUs of the local +hive as shown in {numref}`mi100-arch`. + +On the left and right of the floor plan, the High Bandwidth Memory (HBM) +attaches via the GPU’s memory controller. The MI100 generation of the AMD +Instinct accelerator offers four stacks of HBM generation 2 (HBM2) for a total +of 32GB with a 4,096bit-wide memory interface. The peak memory bandwidth of the +attached HBM2 is 1.228 TB/sec at a memory clock frequency of 1.2 GHz. + +The execution units of the GPU are depicted in {numref}`mi100-block` as Compute +Units (CU). There are a total 120 compute units that are physically organized +into eight Shader Engines (SE) with fifteen compute units per shader engine. +Each compute unit is further sub-divided into four SIMD units that process SIMD +instructions of 16 data elements per instruction. This enables the CU to process +64 data elements (a so-called ‘wavefront’) at a peak clock frequency of 1.5 GHz. +Therefore, the theoretical maximum FP64 peak performance is 11.5 TFLOPS +(`4 [SIMD units] x 16 [elements per instruction] x 120 [CU] x 1.5 [GHz]`). + +:::{figure-md} mi100-gcd + +Block diagram of an MI100 compute unit with detailed SIMD view of the AMD CDNA architecture + +Block diagram of an MI100 compute unit with detailed SIMD view of the AMD CDNA +architecture +::: + +{numref}`mi100-gcd` shows the block diagram of a single CU of an AMD Instinct™ +MI100 accelerator and summarizes how instructions flow through the execution +engines. The CU fetches the instructions via a 32KB instruction cache and moves +them forward to execution via a dispatcher. The CU can handle up to ten +wavefronts at a time and feed their instructions into the execution unit. The +execution unit contains 256 vector general-purpose registers (VGPR) and 800 +scalar general-purpose registers (SGPR). The VGPR and SGPR are dynamically +allocated to the executing wavefronts. A wavefront can access a maximum of 102 +scalar registers. Excess scalar-register usage will cause register spilling and +thus may affect execution performance. + +A wavefront can occupy any number of VGPRs from 0 to 256, directly affecting +occupancy; that is, the number of concurrently active wavefronts in the CU. For +instance, with 119 VPGRs used, only two wavefronts can be active in the CU at +the same time. With the instruction latency of four cycles per SIMD instruction, +the occupancy should be as high as possible such that the compute unit can +improve execution efficiency by scheduling instructions from multiple +wavefronts. + +:::{table} Peak-performance capabilities of MI100 for different data types. +:name: mi100-perf +| Computation and Data Type | FLOPS/CLOCK/CU | Peak TFLOPS | +| :------------------------ | :------------: | ----------: | +| Vector FP64 | 64 | 11.5 | +| Matrix FP32 | 256 | 46.1 | +| Vector FP32 | 128 | 23.1 | +| Matrix FP16 | 1024 | 184.6 | +| Matrix BF16 | 512 | 92.3 | + +:::