一、显卡

显卡(Graphics Card)
│
├── GPU(Graphics Processing Unit) ← 核心芯片 (如GH100)
│   ├── GPCs (Graphics Processing Clusters) ← 图形处理集群 (7x)
│   │   └── SMs (Streaming Multiprocessors) ← 流式多处理器 (每个GPC包含多个SMs)
│   │       ├── CUDA Cores ← 最小的计算单元
│   │       ├── Tensor Cores ← 用于加速深度学习运算
│   │       └── 其他组件:光栅引擎、纹理单元等
│   ├── L2 Cache ← 二级缓存 
│   └── 内存控制器 ← 控制HBM3内存访问
│
├── 显存(VRAM) ← GPU专用内存 (如80 GB HBM3)
│
├── 供电模块
│   ├── VRMs (Voltage Regulator Modules) ← 电压调节模块
│   └── 外部电源接口
│
├── 散热系统
│   ├── 风扇
│   ├── 散热片
│   └── 可选液冷解决方案
│
├── 视频输出接口
│   └── PCIe/NVLink 接口 (如PCIe 5.0 / NVLink 4.0)
│
└── PCB电路板(Printed Circuit Board)← 所有组件的载体

显卡是一个完整的硬件设备;GPU 是显卡上的核心芯片;CUDA 核心是 GPU 内部的计算单元;显存是 GPU 配套的专用内存。

二、GPU组成

单颗NVIDIA H100 GPU 内部架构图(Hopper 架构)

+-------------------------------------------------------------------------------+
|                                   NVIDIA H100 GPU                             |
|                             (GH100 Chip, ~80B transistors)                    |
+-------------------------------------------------------------------------------+
|                                                                               |
|  +----------------+    +----------------+       +----------------+            |
|  |  GPC 0         |    |  GPC 1         |  ...  |  GPC 6         |  ← 7 GPCs  |
|  | (Graphics      |    | (Graphics      |       | (Graphics      |  (Graphics |
|  |  Processing    |    |  Processing    |       |  Processing    | Processing |
|  |  Clusters)     |    |  Clusters)     |       |  Clusters)     |  Clusters) |
|  +-------+--------+    +-------+--------+       +-------+--------+            |
|          |                     |                        |                     |
|  +-------v--------+    +-------v--------+       +-------v--------+            |
|  |   TPC 0–2      |    |   TPC 0–2      |  ...  |   TPC 0–2      |← 3 TPCs/GPC|
|  | (Texture Proc. |    | (Texture Proc. |       | (Texture Proc. |            |
|  |  Clusters)     |    |  Clusters)     |       |  Clusters)     |            |
|  +-------+--------+    +-------+--------+       +-------+--------+            |
|          |                     |                        |                     |
|  +-------v--------+    +-------v--------+       +-------v--------+            |
|  |   SM 0–2       |    |   SM 0–2       |  ...  |   SM 0–2       |← 3 SMs/TPC |
|  | (Streaming     |    | (Streaming     |       | (Streaming     |            |
|  | Multiprocessor)|    | Multiprocessor)|       | Multiprocessor)|            |
|  +-------+--------+    +-------+--------+       +-------+--------+            |
|          |                     |                        |                     |
|          +---------------------+------------------------+                     |
|                                |                                              |
|                       +--------v-----------------+                            |
|                       |  Shared L2 Cache (50 MB) |                            |
|                       +--------+-----------------+                            |
|                                |                                              |
|                  +-------------v----------------------+                       |
|                  | HBM3 Memory Controllers (6×512-bit)|                       |
|                  +-------------+----------------------+                       |
|                                |                                              |
|                 +--------------v------------------------+                     |
|                 | 80 GB HBM3 DRAM (3.35 TB/s bandwidth) |                     |
|                 +---------------------------------------+                     |
|                                                                               |
|  +-------------------------------------------------------------------------+  |
|  | PCIe 5.0 / NVLink 4.0 Interface (900 GB/s bidirectional via NVLink)     |  |
|  +------------------------------------------------------------------------ +  |
|                                                                               |
|  +-------------------------------------------------------------------------+  |
|  | On-Chip Interconnect Fabric (High-speed NoC for GPC↔L2↔Memory)          |  |
|  +-------------------------------------------------------------------------+  |
+-------------------------------------------------------------------------------+

各层级组件详解

  1. GPC(Graphics Processing Cluster)
  • 数量:7 个
  • 作用:GPU 的顶层计算集群单元,每个 GPC 是一个相对独立的子系统;
  • 包含:多个 TPC + 光追单元(RT Core)+ 控制逻辑。
  1. TPC(Texture Processing Cluster)
  • 数量:每 GPC 有 3 个 → 共 21 个(但部分用于计算)
  • 传统作用:处理纹理采样(图形渲染);
  • 在 H100 中每个 TPC 实际只包含 1 个 SM,纹理单元很少使用;
  • 可视为 SM 的“容器”
  1. SM(Streaming Multiprocessor)核心计算单元!
  • 总数132 个
  • 每个 SM 包含
    • 128 个 FP32 CUDA Core
    • 64 个 INT32 ALU(与 FP32 复用调度)
    • 4 个 4th-Gen Tensor Core(支持 FP8、FP16、BF16、INT8、INT4)
    • 4 个 Warp Scheduler + 8 个 Dispatch Unit
    • 256 KB Register File
    • 128 KB Shared Memory / L1 Cache(可配置)
    • Tensor Memory Accelerator (TMA) ← Hopper 新增,用于异步批量数据搬运
    • DPX Unit(用于动态编程,如生物计算)

🚀 所有 CUDA kernel 最终都在 SM 上执行!

  1. L2 Cache
  • 容量50 MB(H100 特有,A100 为 40 MB)
  • 作用:所有 SM 共享的二级缓存,缓存全局内存访问;
  • 带宽:>10 TB/s(片上)
  1. HBM3 Memory Subsystem
  • 容量:80 GB(H100 SXM5)
  • 带宽3.35 TB/s(世界最快之一)
  • 控制器:6 个 512-bit 通道
  • 技术:3D 堆叠 DRAM + 硅中介层(Interposer)连接
  1. 高速互连
  • NVLink 4.0
    • 单卡支持 18 条链路;
    • 总带宽 900 GB/s 双向
    • 用于多 GPU 通信(如 DGX H100 8 卡全互联)。
  • PCIe 5.0 x16:~128 GB/s,用于连接 CPU。
  1. On-Chip Interconnect(NoC)
  • 片上网络(Network-on-Chip)连接所有 GPC、L2、内存控制器;
  • 保证 SM 访问 L2 和 HBM 时低延迟、高带宽。

数据流视角

  1. CPU 启动 CUDA kernel → 通过 PCIe/NVLink 发送指令到 GPU;
  2. GPU 调度器 将 thread blocks 分配到 空闲的 SM
  3. SM 内部
    • Warp 调度器分发指令;
    • CUDA Core / Tensor Core 执行计算;
    • TMA 异步从 HBM 搬运数据到 Shared Memory;
  4. 结果写回 HBM,通过 NVLink 同步到其他 GPU 或返回 CPU。

SM流式并行处理器

NVIDIA H100(Hopper 架构) 的一个 SM(Streaming Multiprocessor) 为例:

+--------------------------------------------------+
|                  SM (H100)                       |
|                                                  |
|  +------------+     +------------------------+   |
|  | 128 CUDA   |     | 4 Tensor Cores         |   |
|  | Cores      |     | (支持 FP8/FP16/INT4)    |   |
|  +------------+     +------------------------+   |
|                                                  |
|  +--------------------------------------------+  |
|  | Shared Memory / L1 Cache / Register File   |  |
|  +--------------------------------------------+  |
|                                                  |
|  +------------------+  +---------------------+   |
|  | Warp Scheduler   |  | Dispatch Units      |   |
|  +------------------+  +---------------------+   |
+--------------------------------------------------+

关键点:

  • 同一个 SM 中同时包含 CUDA Cores 和 Tensor Cores
  • 共享寄存器文件、共享内存、调度器
  • Warp 调度器 可以同时分发指令给 CUDA Core 和 Tensor Core;
  • Tensor Core 不是独立运行的:它依赖 CUDA Core 或编译器将数据加载到寄存器中。

🌟 现代 NVIDIA GPU = CUDA Core(通用) + Tensor Core(AI 专用) + RT Core(图形光线追踪) 的异构融合体

架构演进:从 Volta 到 Blackwell

架构CUDA Core 数量/SMTensor Core 数量/SM新增能力
Volta (V100)648首次引入,FP16
Turing (T4)648支持 INT8/INT4 推理
Ampere (A100)644支持 TF32、结构化稀疏
Hopper (H100)1284支持 FP8、Transformer Engine

三、显存

显存(Video RAM / VRAM)泛指GPU专用的高速内存,以下是当前主流的显存技术(按性能/带宽从高到低大致排序):

显存类型全称特点典型应用场景
HBM3 / HBM3EHigh Bandwidth Memory 3 / Enhanced- 堆叠式(3D)
- 超高带宽(>1 TB/s)
- 超低功耗
- 成本极高
- 通过硅中介层(Interposer)连接 GPU
NVIDIA H100 / AMD MI300 / Intel Ponte Vecchio
HBM2 / HBM2EHigh Bandwidth Memory 2 / Enhanced- 上一代 HBM
- 带宽约 400–800 GB/s
- 仍用于部分 AI/HPC 芯片
NVIDIA A100 / V100 / AMD Instinct MI210
GDDR6XGraphics DDR6X- 美光独家技术(PAM4 信号)
- 高带宽(~1 TB/s)
- 用于消费级高端卡
- 功耗较高
NVIDIA RTX 3090 / 4090
GDDR6Graphics DDR6- 主流游戏/工作站显存
- 带宽 500–800 GB/s
- 成本适中
- 2D 平铺封装
RTX 30/40 系列(除 4090)、AMD RX 6000/7000
GDDR5 / GDDR5XGraphics DDR5 / 5X- 上一代技术
- 带宽较低(<500 GB/s)
- 已逐步淘汰
GTX 10 系列、旧款专业卡
LPDDR5 / LPDDR5XLow Power DDR5- 低功耗设计
- 带宽较低
- 用于移动端集成 GPU
笔记本 APU(如 Apple M 系列、高通 Snapdragon)

HBM3(High Bandwidth Memory 3)是显存(VRAM)的一种实现技术,属于高带宽、高密度、低功耗的先进显存类型,专为高性能计算(HPC)、AI加速器、高端GPU等场景设计。

HBM3 与其他显存的核心区别

特性HBM3GDDR6XGDDR6
封装方式3D 堆叠 + 硅中介层(2.5D/3D 封装)2D 平铺,焊在 PCB 上2D 平铺
总线宽度1024-bit/堆栈(多堆栈并行)32-bit/芯片(多芯片并行)32-bit/芯片
带宽(单卡)3.35 TB/s(H100)~1.0 TB/s(RTX 4090)~768 GB/s(RTX 4080)
功耗效率⭐⭐⭐⭐⭐(每 GB/s 功耗最低)⭐⭐(高带宽但高功耗)⭐⭐⭐
成本极高(需先进封装)中等
是否可更换❌(焊死在基板上)❌(BGA 封装)❌(通常不可更换)

💡 关键区别
HBM3 的带宽优势来自于超宽总线 + 近存计算架构,而 GDDR6X 依靠超高频率(如 21 Gbps)来提升带宽。

四、分布式训练数据流图

+------------------+ (1) I/O Load            +------------------+
|                  |  SSD → CPU RAM          |                  |
|   Storage        |  5–50 GB/s              |   CPU Memory     |
| (NVMe / Lustre)  |<────────────────────────|   (DDR5, 1TB)    |
|                  |                         |                  |
+------------------+                         +--------+---------+
                                                      |
                                                      | (2) Host-to-Device
                                                      | PCIe 4.0/5.0
                                                      | 25–64 GB/s
                                                      v
                                          +---------------------------+
                                          |       GPU 0 (H100)        |
                                          |  +---------------------+  |
                                          |  |  VRAM (80GB HBM3)   |  |
                                          |  |  Bandwidth: 3,350   |  |
                                          |  +----------+----------+  |
                                          |             |             |
                                          |             | (3) On-chip |
                                          |             v             |
                                          |  +---------------------+  |
                                          |  | CUDA Cores / Tensor |  |
                                          |  |      Cores (SMs)    |  |
                                          |  +---------------------+  |
                                          +------------+--------------+
                                                       |
                                                       | (4) Intra-node Comm
                                                       | NVLink 4.0
                                                       | 300–900+ GB/s
                                                       v
                                          +---------------------------+
                                          |       GPU 1–7 (H100)      |
                                          |      (Same as GPU 0)      |
                                          +------------+--------------+
                                                       |
                                                       | (5) Inter-node Comm
                                                       | InfiniBand NDR 400Gb/s
                                                       | ~40–50 GB/s (effective)
                                                       v
                                          +---------------------------+
                                          |   Other Server Node(s)    |
                                          |   (Same 8×H100 config)    |
                                          |   ←→ All-Reduce Gradients |
                                          +---------------------------+

图例说明

步骤数据流向典型带宽关键硬件
(1)存储 → CPU 内存5–50 GB/sNVMe SSD / 分布式文件系统
(2)CPU 内存 → GPU 显存25–64 GB/sPCIe 4.0/5.0 x16
(3)显存 → GPU 计算单元~3,350 GB/sHBM3 + L2 Cache
(4)GPU ↔ GPU(同服务器)300–900+ GB/sNVLink 4.0
(5)节点 ↔ 节点(跨服务器)40–50 GB/sInfiniBand NDR + RDMA

💡 补充说明

  • 箭头方向:表示数据在一次训练迭代中的典型流动(前向 + 反向 + 同步);
  • All-Reduce:发生在反向传播结束后,所有节点通过 InfiniBand 同步梯度;
  • 并行策略影响路径
    • 数据并行:主要触发 (5) 跨节点通信;
    • 张量并行:主要触发 (4) 同节点 GPU 通信;
    • 流水线并行:增加 GPU 间 activation 传递,也走 (4)。

📌 实际优化视角

理想目标:让 GPU 计算单元(步骤 3)始终忙碌,而其他搬运步骤(1,2,4,5)要么 带宽足够高,要么 与计算重叠(overlap),避免 GPU 空闲等待。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐