NVIDIA H100

Hopper architecture

NVIDIA H100

Scroll to dissect the package, compute hierarchy, one SM, and the CUDA/Triton execution model.

Transistors
80 billion
Process
TSMC 4N
SMs
132

Layer 1 / Package

GH100 die with HBM3

HBM1
HBM2
HBM3
HBM4
HBM5
SITE
GH100814 mm2
Memory
80 GB
Type
HBM3
Bandwidth
3.35 TB/s

Layer 2 / Physical compute

GPU → GPC → TPC → SM

GPC 1
9 TPC
18 SM
GPC 2
9 TPC
18 SM
GPC 3
8 TPC
16 SM
GPC 4
8 TPC
16 SM
GPC 5
8 TPC
16 SM
GPC 6
8 TPC
16 SM
GPC 7
8 TPC
16 SM
GPC 8
8 TPC
16 SM
1 GPC
8 or 9 TPC
1 TPC
2 SM
1 SM
execution
Shared L2 cache50 MB

H100 exposes 8 GPCs, 66 TPCs, and 132 SMs. CUDA schedules blocks to SMs, not directly to GPCs or TPCs.

Layer 3 / One streaming multiprocessor

H100 SM: four scheduler partitions

SM-wide L1 instruction cache
Partition 11 scheduler
Warp scheduler + dispatch
Register file: 16,384 × 32-bit
32 FP32
16 INT32
16 FP64
1 Tensor
Partition 21 scheduler
Warp scheduler + dispatch
Register file: 16,384 × 32-bit
32 FP32
16 INT32
16 FP64
1 Tensor
Partition 31 scheduler
Warp scheduler + dispatch
Register file: 16,384 × 32-bit
32 FP32
16 INT32
16 FP64
1 Tensor
Partition 41 scheduler
Warp scheduler + dispatch
Register file: 16,384 × 32-bit
32 FP32
16 INT32
16 FP64
1 Tensor
256 KB combined L1 data cache / shared memory

Per SM: 128 FP32, 64 INT32, 64 FP64 and 4 Tensor Cores.

Layer 4 / Programming model

Software → hardware mapping

PyTorch
z = x + y
launches or compiles a GPU kernel
Grid
many programs / blocks
distributed across 132 SMs
Program / block
one data tile
resides on one SM
Warp
32 CUDA threads
issued by a warp scheduler
Thread / lane
load → add → store
uses registers and execution lanes
Registers
thread
Shared/L1
SM
L2
GPU
HBM3
device