GPU

从 GPU 硬件结构到监控指标

·13 分钟阅读·5034 字

整理 从 GPU 硬件结构到监控指标 的核心概念、关键流程与实践要点

📋 目录

从 GPU 硬件结构到监控指标

对于 AI Infra / GPU 运维学习方式应该是:

先理解 GPU 内部有哪些硬件模块,以及每个模块负责什么计算;然后理解这些模块对应产生什么性能瓶颈;最后确定 Prometheus/DCGM 应该采集哪些指标。


1. GPU整体硬件架构

以 NVIDIA A100/H100 这类数据中心 GPU 为例,一个 GPU 本质上不是一个“大CPU”,而是一块高度并行计算设备。

整体结构:

                    GPU

+------------------------------------------------+
|                  GPU Die                       |
|                                                |
|  +----------------+     +----------------+     |
|  |  SM Cluster    | ... |  SM Cluster    |     |
|  |                |     |                |     |
|  +----------------+     +----------------+     |
|                                                |
|              GPU Memory Controller              |
|                       |                         |
|                       |                         |
|              HBM Memory                         |
|                                                |
|  Tensor Core                                      |
|  CUDA Core                                        |
|  L1 Cache                                         |
|  Shared Memory                                    |
|                                                |
|  NVLink Interface                                 |
|                                                |
|  PCIe Interface                                  |
|                                                |
|  Power Management Unit                           |
|                                                |
|  Thermal Sensor                                  |
|                                                |
+------------------------------------------------+

主要组成:

  1. SM(Streaming Multiprocessor)

  2. CUDA Core

  3. Tensor Core

  4. GPU Cache

  5. 显存(HBM/GDDR)

  6. Memory Controller

  7. PCIe/NVLink通信模块

  8. Power/Thermal管理模块

监控指标基本都是围绕这些硬件产生的。


2. SM:GPU真正执行计算的核心

3. 什么是SM?

SM:

Streaming Multiprocessor,流式多处理器

它类似CPU中的核心,但是粒度不同。

CPU:

CPU

Core0
Core1
Core2
Core3

GPU:

GPU

SM0
SM1
SM2
...
SM107

例如:

NVIDIA A100:

108个SM

H100:

132个SM

每个SM内部:

SM

+-----------------------+
| CUDA Core             |
|                       |
| Tensor Core           |
|                       |
| Register File         |
|                       |
| Shared Memory         |
|                       |
| L1 Cache              |
+-----------------------+

4. CUDA Core:通用计算单元

CUDA Core主要负责:

  • FP32浮点计算

  • INT整数计算

例如:

矩阵:

C=A×BC=A\times B

传统计算:

大量:

加法
乘法

CUDA Core负责执行。


5. 对应监控指标

CUDA Core没有直接指标。

但是它体现为:

5.1. GPU利用率

DCGM_FI_DEV_GPU_UTIL

例如:

GPU Util = 95%

说明:

大量SM正在执行任务。


6. 异常分析

6.1. 情况:

GPU Util 20%
显存 90%

说明:

CUDA Core没有充分工作。

原因:

  • 数据没有准备好

  • batch太小

  • IO瓶颈


7. Tensor Core:AI计算核心

这是现代GPU和普通GPU最大的区别。

Tensor Core专门优化:

矩阵乘法。

深度学习核心计算:

Transformer:

Attention(Q,K,V)Attention(Q,K,V)

大量:

矩阵乘矩阵。

Tensor Core可以一次完成:

D = A × B + C

这种操作。


例如:

A100:

  • 6912 CUDA Core

  • 432 Tensor Core

H100:

  • 16896 CUDA Core

  • 528 Tensor Core


8. Tensor Core对应监控?

没有直接:

Tensor Core Utilization

但是可以通过:

8.1. FP16/FP8利用率

例如:

DCGM:

DCGM_FI_PROF_PIPE_TENSOR_ACTIVE

表示:

Tensor Pipeline 活跃程度。


例如:

训练大模型:

GPU Util 100%

Tensor Active 95%

说明:

GPU正在做AI计算。


如果:

GPU Util 100%

Tensor Active 5%

说明:

可能只是:

  • 数据搬运

  • CUDA kernel

  • 非Tensor计算


9. GPU Memory:显存系统

这是AI GPU最重要的部分。

GPU不像CPU直接访问内存。

它有自己的高速显存。

结构:

GPU

SM
 |
L1 Cache
 |
L2 Cache
 |
Memory Controller
 |
HBM

10. HBM显存

数据中心GPU:

A100:

40GB/80GB HBM2e

H100:

80GB HBM3

显存特点:

  • 极高带宽

  • 高成本

  • 容量有限


11. 为什么AI需要显存?

训练:

模型参数:

weight

梯度:

gradient

优化器:

Adam states

全部需要存储。

例如:

70B模型:

参数:

70B×2bytes70B \times 2bytes

约:

140GB

所以需要:

多GPU并行。


12. 显存对应监控

12.1. 显存使用量

DCGM_FI_DEV_FB_USED

例如:

70000MiB / 80000MiB

12.2. 显存带宽

这是另一个重要指标:

DCGM_FI_PROF_DRAM_ACTIVE

表示:

HBM是否成为瓶颈。


13. 故障分析

13.1. OOM

指标:

Memory:
99%

GPU:
20%

说明:

显存满了,但是计算没跑。

原因:

  • batch太大

  • 模型太大


14. Memory Controller:显存控制器

很多人忽略这个。

GPU计算速度:

不仅取决于计算单元。

还取决于:

数据能不能快速送进去。

流程:

HBM

↓

Memory Controller

↓

SM

↓

CUDA/Tensor Core

如果:

Tensor Core很快。

但是:

Memory Controller慢。

GPU会:

等待数据。


对应指标:

Memory bandwidth utilization

例如:

DCGM_FI_PROF_DRAM_ACTIVE

15. Cache体系

GPU也有缓存:

16. L1 Cache

每个SM私有。

用途:

快速访问局部数据。


17. L2 Cache

所有SM共享。

结构:

SM

 |
L1

 |
L2

 |
HBM

监控:

缓存命中率一般通过:

Profiling指标。

例如:

L2 hit rate

18. PCIe:CPU和GPU之间的数据通道

GPU不是孤立的。

CPU:

内存
 |
PCIe
 |
GPU

例如:

数据加载:

Storage
 |
CPU RAM
 |
PCIe
 |
GPU Memory

PCIe指标:

PCIe RX
PCIe TX

表示:

数据进入/离开GPU。


19. 故障案例

GPU:

GPU Util 30%

但是:

PCIe RX 100%

说明:

GPU一直等数据。

原因:

CPU数据准备慢。


20. NVLink:GPU之间通信

多GPU训练:

例如:

8张H100。

结构:

GPU0 ---- NVLink ---- GPU1

 |                    |

GPU2 ---- NVLink ---- GPU3

用途:

GPU之间交换:

  • 参数

  • 梯度


没有NVLink:

走:

GPU
 |
PCIe
 |
CPU
 |
PCIe
 |
GPU

慢。


监控:

NVLink TX/RX bytes

21. Power Management:功耗系统

GPU不是永远满频运行。

有:

动态频率调整。

结构:

Temperature

↓

Power Controller

↓

GPU Clock

监控:

22. 功耗

DCGM_FI_DEV_POWER_USAGE

23. 时钟

DCGM_FI_DEV_SM_CLOCK

案例:

正常:

GPU Util 100%
Power 350W
Clock 1800MHz

异常:

GPU Util 100%
Power 200W
Clock 900MHz
Temperature 90℃

说明:

热降频。


24. ECC和硬件健康

GPU显存非常复杂。

可能发生:

bit翻转。

例如:

原:

101010

变:

101000

ECC可以纠正。


指标:

Single Bit Error:

SBE

Double Bit Error:

DBE

严重情况:

Xid Error。

例如:

Xid 79
GPU fallen off the bus

表示:

GPU和PCIe通信断开。


25. 把硬件和监控指标对应起来

硬件模块作用关键指标
SM执行计算GPU Util
CUDA Core通用计算GPU Util
Tensor CoreAI矩阵计算Tensor Active
HBM显存存模型和数据Memory Used
Memory Controller显存访问Memory Bandwidth
Cache高速数据访问Cache Hit
PCIeCPU-GPU通信PCIe RX/TX
NVLinkGPU-GPU通信NVLink RX/TX
Power Unit供电Power Usage
Thermal Unit散热Temperature
Clock Controller频率调节Clock
ECC模块错误检测ECC Error

26. 对于AIOps真正关注的GPU指标组合

单个指标没有意义。

生产一般做关联分析。

27. 场景1:GPU计算不足

GPU Util ↓
Memory ↓
PCIe ↓

判断:

任务没有运行。


28. 场景2:数据瓶颈

GPU Util ↓
Memory ↑
PCIe RX ↑
CPU ↑

判断:

数据加载不足。


29. 场景3:GPU过热

Temperature ↑
Clock ↓
Power ↓
GPU Util ↑

判断:

Thermal Throttling。


30. 场景4:显存不足

Memory Usage >95%

OOM error

判断:

模型/Batch过大。


31. 和你当前学习路线的连接

你现在学:

Prometheus
      |
      |
ServiceMonitor
      |
      |
Exporter

GPU环境对应:

GPU Hardware

↓

NVML/DCGM

↓

DCGM Exporter

↓

Prometheus

↓

Grafana

↓

AIOps Agent

所以未来你做 GPU AIOps,本质就是:

利用硬件结构知识,把 GPU 的异常指标映射到硬件瓶颈,再通过模型自动诊断。

比如:

Agent看到:

GPU Util 20%
Tensor Active 5%
Memory 90%
PCIe RX 高

不是简单说“GPU低利用率”,而是判断:

GPU计算单元空闲,主要瓶颈在CPU到GPU的数据传输链路。

这才是 AI Infra 运维需要掌握的深度。

你指出的问题是对的,GPU监控学习不能从指标列表开始,而应该从 硬件结构 → 数据流 → 性能瓶颈 → 监控指标 开始。你现在学习 AIOps,这种理解方式更接近实际生产环境。


关联文档

Yanche Blog

记录云原生、Linux、数据库等技术领域的学习心得,以及日常生活的思考与感悟。

© 2026 Yanche Blog. All rights reserved.

Powered by Astro