算力引擎的内核:GPU 架构深度解析与 H100 技术密码​ 原创

发布于 2025-7-30 07:37
浏览
0收藏

本文聚焦 GPU 这一 AI 时代的核心算力引擎,从 CPU 与 GPU 的本质差异切入,解析二者在架构设计(运算单元占比、并行能力)和协同工作流程(数据传输、指令注入、并行计算、结果回传)的底层逻辑。

以 NVIDIA H100(Hopper 架构)为核心案例,深入拆解其基本架构:80GB HBM3 显存的高带宽设计、PCI-E 5.0 接口的传输能力,以及内部层级化结构 —— 从顶层 GPC(图形处理集群)、中层 TPC(纹理处理集群)到核心 SM(流式多处理器)的功能分工。同时,详解 SM 的四象限组成(Tensor Core、CUDA Core 等计算单元及缓存系统)、五级缓存机制(寄存器、L0/L1/L2 缓存、HBM3)的动态调度策略,以及 TMA(张量内存加速器)对数据搬运效率的革命性提升,为理解 GPU 高性能计算原理提供全景视角。

GPU:AI时代的算力引擎

在AI技术蓬勃发展的今天,大模型训练和推理应用正在各个行业快速普及。越来越多的企业开始自行训练AI模型,或是基于大厂提供的基础模型进行二次开发。在这个过程中,数据隐私保护的要求促使企业倾向于在本地部署AI模型,而不是完全依赖云端服务。这种趋势使得硬件部署成为了AI应用落地的重要课题,而GPU作为AI计算的核心硬件,自然成为了关注的焦点。

CPU VS GPU

在计算机系统中,CPU(中央处理单元)和GPU(图形处理单元)是两个核心组件,它们各自承担着不同的任务,设计理念和架构也有所不同。CPU是计算机的大脑,负责处理操作系统和应用程序运行所需的各类计算任务。它具有强大的通用性,能够处理各种复杂的数据类型和逻辑判断。CPU的内部结构非常复杂,因为它需要应对大量的分支跳转和中断处理,以确保程序能够高效、稳定地运行。由于CPU需要处理的任务种类繁多,它的设计更注重逻辑控制和串行计算能力,通过流水线技术等手段缩短程序的执行时间。

如下图所示,从架构上看,CPU和GPU都包含运算单元(ALU)、控制单元(Control)和缓存单元(Cache),但三者所占的比例截然不同。CPU的缓存单元占据了很大一部分空间,大约占50%,控制单元占25%,运算单元仅占25%。这种设计使得CPU能够通过缓存减少数据访问的延迟,提高处理效率。而GPU的缓存单元仅占5%,控制单元占5%,运算单元则占据了90%。GPU的设计更注重运算能力的提升,通过大量运算单元和线程来实现高吞吐量。

算力引擎的内核:GPU 架构深度解析与 H100 技术密码​-AI.x社区

在并行处理能力方面,CPU拥有少量的强大计算单元,适合处理顺序执行的任务。它的时钟频率很高,能够在很少的时钟周期内完成算术运算。CPU还具备复杂的控制逻辑单元,可以提供分支预测能力,使其在处理逻辑控制和串行计算时表现出色。相比之下,GPU采用了数量众多的计算单元和线程,能够实现非常大的计算吞吐量。GPU的超配线程设计可以很好地平衡内存延迟问题,从而同时处理多个任务,专注于大规模高度并行的计算任务。

算力引擎的内核:GPU 架构深度解析与 H100 技术密码​-AI.x社区

一言以蔽之,CPU更适合处理顺序执行的任务,如操作系统、数据分析等;而GPU则适合处理需要大规模并行计算的任务,如图形处理、深度学习等。

CPU 与 GPU 协同工作

在了解了CPU(中央处理器)和GPU(图形处理器)的不同功能和特点后,我们可以进一步探讨它们是如何协同工作的。CPU和GPU虽然在设计和功能上有所不同,但通过高效协作,能够充分发挥各自的性能优势,提升整体系统的计算效率。接下来,我将通过下面这张图来展示CPU与GPU协作的全过程。

算力引擎的内核:GPU 架构深度解析与 H100 技术密码​-AI.x社区

根据图上的标号,进行详细解释:

数据传输阶段

  • CPU发起DMA(Direct Memory Access,直接内存访问),将系统主内存中的数据复制到GPU内存中。

指令注入阶段

  • CPU向GPU注入指令,告诉GPU需要执行的任务。 ​
  • 例如,在深度学习任务中,这些指令可能包括模型推理或训练的命令。

并行计算阶段

  • GPU中的多个计算线程会并行执行CPU注入的指令。 ​
  • 由于GPU拥有大量计算核心,特别适合处理高度并行化的任务,如矩阵运算。

结果回传阶段

  • GPU完成计算后,会通过DMA将结果数据从GPU内存复制回系统主内存中。 ​
  • 这些结果可能包括模型的推理输出或训练过程中的中间结果。通过这种协作机制,CPU负责任务的调度和管理,而GPU则专注于执行高并行化的计算任务,从而实现了计算资源的高效利用。

GPU 基本架构

在介绍了CPU和GPU的协作方式后,我们接下来将聚焦于GPU的内部机构,特别是以NVIDIA H100(基于Hopper架构)为例,深入了解其高性能计算的核心秘密。作为英伟达于2022年发布的旗舰级GPU加速器,H100专为高性能计算(HPC)、人工智能(AI)和大规模数据中心设计,是前代A100(Ampere架构)的升级版。其内部设计采用了多项突破性技术,其中最引人注目的是其高带宽内存(HBM)和PCI-E 5.0接口的结合。

如下图所示,H100配备了80GB的HBM3显存,这是其性能的核心保障之一。与之配套的显存技术——高带宽内存(HBM),是一种基于3D堆叠技术的高性能内存标准。通过将多个DRAM芯片垂直堆叠在GPU芯片旁边(图的左侧)。多个 HBM 堆叠的部分就是显卡的显存。而在它右边通过双箭头连接的绿色区域就是显卡的运算核心,包含:运算、缓存、控制等功能,在后面的内容中会展开描述。

算力引擎的内核:GPU 架构深度解析与 H100 技术密码​-AI.x社区

让我们将上面的图片放大, 关注 HBM 显存本身,如下图所示。多个显存芯片(HBM)通过硅通孔(TSV, Through-Silicon Via)实现层间通信,像一栋高楼,每层楼是一个DRAM芯片,通过“电梯”(TSV)快速连通所有楼层,从而实现了更高的传输效率。HBM显著提升了内存带宽,同时减少了功耗和占用面积。

算力引擎的内核:GPU 架构深度解析与 H100 技术密码​-AI.x社区

需要注意的是,H100芯片支持6个HBM堆栈(HBM Stack),每个堆栈可提供800GB/s的传输带宽,总内存带宽高达4.8TB/s。

在连接方面,H100通过16个PCI-E 5.0通道与CPU相连,每个通道的单向带宽约为4GB/s(双向约8GB/s),总理论传输带宽可达63GB/s。这一设计确保了CPU能够高效地将程序指令发送到GPU,并为GPU提供访问计算机主存储器的快速通道。

GPU 内部结构

在对 GPU 的基本架构有所了解之后,然后深入到 GPU 的运算核心中一探究竟。如果笼统而言,GPU 的运算核心包含:运算、缓存和控制。不过设计到的组件和单元较多,需要通过下图来了解。

算力引擎的内核:GPU 架构深度解析与 H100 技术密码​-AI.x社区

我们可以清晰地看到 NVIDIA GH100 芯片的层级架构,从顶层的 GPC 到下层的 TPC、SM,再到具体的运算核心(CUDA Core、Tensor Core、RT Core)和缓存(L2 Cache)的分布与功能。

从图片整体而言,描述了 GPU 的运算单元与其他组件的协同情况。图的上方通过 PCI-E5.0 的接口与 CPU 沟通,左右两侧与 HBM 显存进行数据交换,下方利用英伟达的 NVLinke 接口技术与其他 GPU 显卡进行沟通。

接下来,让我们把目光放到这张图的中间部分:

GPC(Graphics Processing Cluster,图形处理集群)

它用绿色的区域表示,在 H100 GPU 中有 8 个 GPC。它负责管理和协调多个下级计算单元(如 TPC、SM)。每个 GPC 包含 9 个 TPC。每 4 个 GPC 共享 30MB L2 缓存,整颗芯片总计 60MB L2 Cache。

它用来分配计算任务,将图形渲染或计算任务分发到下属 TPC/SM。同时避免不同任务间的资源争用(如光线追踪与 AI 计算)。

TPC(Texture Processing Cluster,纹理处理集群)

它是 GPC 的子模块,传统上专注于纹理处理(图形渲染),但在现代 GPU 中已扩展为通用计算单元。每个 GPC 包含 9 个 TPC,整颗芯片共 72 个 TPC。每个 TPC 包含 2 个 SM,整颗芯片总计 144 个 SM。它用来做纹理映射,例如:加速游戏/图形中的纹理采样(虽命名保留“纹理”,实际功能已泛化)。负责与 SM 协作处理通用计算(如 CUDA 核心的并行任务)。

SM(Streaming Multiprocessor,流式多处理器)

它是 NVIDIA GPU 的最小计算单元,位于 GPC 内部,H100 的 TPC 中包含了 2 个 SM 单元,SM 直接执行 CUDA 核心、Tensor Core 等运算任务。换句话说它就是运算的主力军。每个 SM 包含:128 个 CUDA Core(FP32/INT32 运算)。4 个 Tensor Core(FP8/FP16/TF32 加速 AI)。1 个 RT Core(光线追踪加速)。整颗芯片总计 144 个 SM→总计 18,432 个 CUDA Core(144 × 128)。

L2 Cache(二级缓存)

它位于整个运算核心的中间,是全局共享的高速缓存,用于减少访问显存(HBM)的延迟。我们可以看到 H100 拥有 60MB L2 Cache(8 GPC ÷ 4 × 30MB)。采用 非均匀分配(NUMA):每 4 个 GPC 共享 30MB,优化数据局部性。这起到了数据复用的效果,频繁访问的数据(如 AI 模型参数)缓存在 L2,降低 HBM 访问功耗。还会肩负协调多个 GPC 间数据同步的责任。

SM 流式多处理器

通过前面对 GPU 内部结构的介绍,我们发现在GPU的层级架构中,SM(Streaming Multiprocessor) 是执行实际计算任务的核心单元。每个SM如同一个高度并行的微型计算集群,负责管理数百个并发线程的计算资源调度。当GPU接收来自CPU的指令后,任务会被拆解成线程块(Thread Block)分配到各个SM上执行。这种设计使数万个线程能高效协同,尤其适合处理图形渲染与AI计算中的海量并行任务。

SM 内部组成结构

接下来,通过下图对 SM 的内部结构进行了解。

每个SM被划分为4个对称的象限(Quadrant),形成高度复用的计算单元集群:

  • 计算资源分层部署:每个象限配备 1个第四代Tensor Core(专精矩阵运算,如FP16矩阵乘法提速10倍)和 32个FP32 CUDA Core(处理标量计算与逻辑控制)。二者互补协作——Tensor Core像“矩阵流水线”高效处理大块数据,CUDA Core则如“精密工具组”执行激活函数、数据转换等细粒度操作。​
  • 执行单元全域覆盖:INT32单元(地址计算)与FP64单元(科学计算)分布其间,确保整数/双精度需求无缝衔接。特殊函数单元(SFU)独立处理超越函数(如SIN/COS),释放主计算管线压力。​
  • 存储系统紧耦合:每象限独占 1KB寄存器文件(线程私有,1-2周期延迟),构成最速数据通道;共享的 L0指令缓存实时输送指令流,避免计算单元“饥饿”。全局 L1缓存(256KB/SM)作为数据中转站,减少高延迟内存访问。​
  • 动态调度中枢:Warp调度器(每SM配4个)持续监控32线程束状态,将矩阵运算分派至Tensor Core,标量指令路由到CUDA Core,实现零空闲的流水线作业。

算力引擎的内核:GPU 架构深度解析与 H100 技术密码​-AI.x社区

从上图得知,每个SM采用四象限(Quadrant)架构,这里我们将象限中的组件列了一个清单方便查看:

组件类型

数量/象限

功能说明

关键技术特性

Tensor Core

1个

加速矩阵运算(GEMM)

第四代架构,支持FP8/FP16/TF32

FP32 CUDA Core

32个

单精度浮点运算(激活函数等)

传统标量计算核心

INT32单元

16 个

整数运算与地址计算

独立于FP32单元

FP64单元

16 个

双精度科学计算

面向HPC场景

寄存器文件

1KB

线程私有存储(速度最快)

延迟1-2周期

L0指令缓存

1 个

减少指令获取延迟

服务象限内所有核心

LD/ST

8 个

加载参数训练集


SFU

1 个

保存特殊函数


Warp Scheduler

1 个

运算线程调度器


Dispatch Unit

1 个

发送指令


SM内部工作机制

在了解了 SM 的组成结构之后, 再来看看它是如何工作。 SM通过三级流水线机制实现组件高效协作,以执行一条典型指令为例:

阶段1:指令调度

  • Warp Scheduler监控32线程组成的Warp状态,选择就绪的Warp。​
  • Dispatch Unit解析指令类型,分配至对应硬件单元:

A.FP32/INT32运算→CUDA Core

B.矩阵乘法 (GEMM)→Tensor Core

C.超越函数 (e.g. SIN)→SFU(特殊函数单元)

D.数据搬运→LD/ST(加载/存储单元)

阶段2:数据供给

  • 寄存器文件提供线程级瞬时数据(如矩阵计算中的中间值)​
  • L1 Cache缓存共享数据(若寄存器溢出则暂存至此处,延迟20-30周期)​
  • TMA(Tensor Memory Accelerator)优化矩阵分块访问(自动处理子矩阵内存布局)

阶段3:并行执行

算力引擎的内核:GPU 架构深度解析与 H100 技术密码​-AI.x社区

假设上图完成 Transform 模型架构的运算,大致工作流程如下:

  • Tensor Core率先处理核心矩阵运算:接收16×16矩阵块(如QK<sup>T</sup>),执行FP16/FP8混合精度GEMM,提供10倍于标量单元的吞吐量。​
  • FP32 CUDA Core承接后续计算:处理非矩阵操作,包括Softmax归一化、激活函数(GELU/ReLU)等标量密集型任务。​
  • SFU加速特殊函数:专精超越函数计算(如Softmax中的指数运算),降低主计算管线延迟。​
  • 分级存储体系保障数据供给:结果优先写回寄存器(1-2周期延迟)或L1缓存(20-30周期),最终由L2缓存(60MB)协调写入HBM显存(3.35TB/s带宽)。

GPU 的缓存机制

通过对 SM 的内部组成和工作原理的介绍,让我们对 GPU 的运算有了更加深刻的了解,不过在探究 GPU 内部的过程中发现遇到了很多的“缓存”。这里我们以英伟达 H100 显卡为例,对其缓存按照五级分层给大家做详细介绍。

这五级分层分别是:顶层的寄存器文件(1周期延迟/1KB线程)与L0指令缓存如同贴身工作台,专精服务线程的即时计算与指令吞吐;中层的L1缓存(256KB/SM)与L2缓存(60MB/GPU)扮演共享枢纽,以容量换带宽,高效缓存高频数据块(如Attention矩阵切片);底层的HBM3显存(80GB/3.35TB/s)则如中央仓库,承载全量模型参数。这套机制通过动态路由策略——将98%的“热数据”锁定在高速缓存,仅5%的“冷数据”下沉至显存——使H100的Tensor Core利用率突破98%,同时将AI训练的吞吐量推升6倍。

GPU 缓存分层

如下图所示,我们将 GPU (以英伟达 H100 为例)缓存分成五个层次。

算力引擎的内核:GPU 架构深度解析与 H100 技术密码​-AI.x社区

针对这五个层级,按照功能和服务的对象将其分为顶层、中层和底层,如下:

顶层:专注运算命令的极速通道(服务线程即时需求)

组件

速度优势

容量限制

高频场景示例

寄存器文件

1周期延迟(硬件极限)

1KB/线程

矩阵乘法中间累加值

L0指令缓存

2-5周期取指(0空转)

4KB/象限

Tensor Core的HMMA指令预取


中层:专注数据缓存的均衡通道(服务SM协作需求)


组件

速度-容量平衡点

核心功能

实战价值

L1数据缓存

256KB/SM(20-30周期)

缓存Attention头的K/V块

使QK^T计算减少76% HBM访问

L2 数据缓存

60MB/GPU(100-200周期)

聚合多SM的梯度数据

AllReduce通信延迟降低40%

底层:专注参数模型的海量通道(服务全局存储需求)

组件

容量王者

速度代价

不可替代性

HBM3显存

80GB(存储全量参数)

300+周期

承载百亿参数大模型

GPU 缓存策略

1. 热度感知缓存

基于访问频率动态调整数据层级, L2缓存通过内置的访问计数器自动识别热点数据,例如Transformer的Embedding表。当某个数据块被连续访问超过三次时,其缓存优先级会被提升,可能被保留在L2缓存的Bank0高速区。此外,在多个SM共享相同权重的情况下,例如在AllReduce期间,L2缓存会采用单副本缓存策略,以优化资源使用。

2. 寄存器压力释放

通过编译器驱动数据生命周期管理。通过路由逻辑实现高效的资源分配和性能优化。在实施机制方面,寄存器分配算法优先保留循环计数器、矩阵累加器等关键变量,确保核心计算任务的高效执行。当寄存器不足,例如线程使用超过1KB时,系统会自动将中间变量暂存至L1缓存,以避免性能瓶颈。

此外,针对长生命周期变量,如优化器状态等,系统采用动态降级策略,直接路由至L2或HBM,进一步优化内存使用效率。在性能防护方面,编译器引入了寄存器溢出警告机制,当寄存器溢出时会触发性能悬崖警告(通过NVCC编译选项--ptxas-warnings实现),提醒开发者关注潜在性能问题。同时,Hopper架构新增寄存器文件压缩技术,使寄存器的有效容量提升40%,从而在有限的硬件资源下实现更高的计算效率。

3. 显存预取流水线

路由逻辑主要关注计算与数据搬运的时空重叠,通过三级预取流水线和TMA加速器来优化数据传输与计算的并行性。在实施机制方面,三级预取流水线分为三个层级:Tier1阶段,Tensor Core启动时,DMA预取相邻数据至L2缓存;Tier2阶段,L2到L1的数据搬运与标量函数单元(SFU)的计算任务并行执行;Tier3阶段,寄存器加载与矩阵乘法操作实现重叠执行。

此外,TMA(张量内存加速器)通过张量坐标的直接定位,能够快速访问HBM中的数据块,从而减少地址计算的开销。在带宽优化方面,系统将细碎的数据传输请求合并为128字节的大块传输,这使得HBM3的效率提升了4倍;同时,当Tensor Core正在处理一个16×16的矩阵时,DMA已经预取了下一个64×64的数据块,进一步提升了数据传输的效率和计算的连续性。

缓存路由策略全景图

这里我们将路由策略做一个总结,通过下面矩阵表格的方式展示。

数据特性

路由目标

策略实现

硬件支持

指令流

→ L0缓存

分支预测预取下4条指令

PC-Relative Addressing

线程私有中间结果

→ 寄存器

编译器寄存器分配算法

寄存器文件压缩

高频共享数据

→ L1缓存

LRU替换策略+硬件预取

256KB SRAM阵列

跨SM共享权重

→ L2缓存

访问计数晋升机制

60MB全域缓存

历史参数/冷数据

→ HBM

DMA异步搬运+缓存逐出

HBM3 3.35TB/s带宽

TMA 加速原理

前面我们花费了很多的篇幅在讲解 GPU 的构成和工作方式,并且在 GPU 的运算单元上停留了很长时间。我们知道,在大模型训练和高性能计算任务中,GPU 的计算效率并不仅仅取决于 Tensor Core 的运算能力,还极大依赖于数据搬运是否高效。而传统架构中,计算线程必须亲自负责内存地址生成与数据传输任务,这使得原本用于数学运算的资源被“数据搬运”占用,效率无法最大化。

为了解决这个问题,NVIDIA 在 Hopper 架构的 H100 中引入了 TMA(Tensor Memory Accelerator)单元,彻底改变了数据在 GPU 内部的传输机制。

为了把 TMA 这种重要的概念搞清楚,通过下图给大家做详细讲解,先看图的左边。

在 A100 中,数据从显存搬运到 SM(流式多处理器)内部缓存的全过程,依赖指令线程来完成。

当计算需要数据时,线程首先要手动生成内存地址,再通过 LDGSTS 指令从显存读取数据。这意味着线程不仅要负责发起读写操作,还要等待数据搬运完成。在这个过程中,线程无法继续进行其他计算任务,Tensor Core 的计算资源也被闲置下来。

换句话说,在 A100 架构中,“线程+数据线程”是合并在一起的,既要思考如何计算,也要亲自去“搬砖”。尤其在大模型训练这种需要频繁搬运大块数据的任务中,这种紧耦合的模式会严重限制整体吞吐率。

算力引擎的内核:GPU 架构深度解析与 H100 技术密码​-AI.x社区

既然 A100 的设计限制了整体吞吐量,那么我们看看图的右边 H100 在加入了 TMA 有何改观。H100 的最大变化在于新增了一个名为 TMA 的硬件单元,专门负责地址生成和数据搬运。现在,线程只需告诉 TMA 自己需要哪一块数据、数据的尺寸和布局等信息,TMA 就能自动生成地址,直接将数据从 GPU 显存搬运到共享内存或一级缓存中。

图中可以看到,H100 的指令线程与数据线程已经分离,原本由线程执行的数据搬运操作完全交由 TMA 处理。线程和 Tensor Core 因此可以继续执行数学运算,不再被等待或阻塞。

这种架构上的优化,使得 SM 内部的资源调度更加高效,计算与数据访问可以并行进行,尤其对 AI 和 HPC 等任务密集型场景,带来显著的性能提升。

TMA 的出现最大程度上利用了缓存的时间局部性和空间局部性原则,将频繁使用的数据及时搬入共享内存,让计算单元可以高速、低延迟地访问数据。

在 GPU 这样数以千计线程并行执行的环境中,避免线程在 I/O 上的等待成为提升效率的关键。而 TMA 的加入,则是在这一关键点上,迈出的决定性一步。

补充说明:什么是时间局部性和空间局部性?

GPU(以及 CPU)之所以设置缓存,是为了避免频繁访问速度较慢的显存或主存,而缓存的命中效率依赖于“数据局部性”原则。

时间局部性指的是:刚刚访问过的数据,很快可能会再次被访问。比如你正在做一段矩阵计算,某个数据块多次参与乘法,就体现了时间局部性。

空间局部性则是指:如果某个地址的数据被访问,那么它附近的数据也很可能在接下来被访问。比如读取一个数组时,往往会按序读取多个相邻元素,这就属于空间局部性。

TMA 支持批量搬运连续的数据块,正好契合这两个局部性原则。它能预判和预取有可能用到的数据,减少线程频繁请求显存的次数,让共享内存和一级缓存的命中率大大提高,进而提升整体计算效率。

总结

本文系统剖析了 GPU 的架构设计与工作机制,核心揭示了其作为并行计算引擎的独特优势。通过对比 CPU 与 GPU 的架构差异(运算单元占比、并行能力侧重),阐明二者协同工作的高效模式。以 H100 为实例,层层拆解其层级化结构:GPC 的任务分配、TPC 的功能扩展、SM 的并行计算核心,尤其是 SM 内部 Tensor Core 与 CUDA Core 的分工协作,构成了高效处理 AI 与图形任务的基础。

五级缓存机制通过动态调度热数据,平衡了速度与容量;TMA 技术则通过分离指令与数据线程,突破了数据搬运的效率瓶颈。这些设计共同支撑了 H100 的高性能表现,使其成为 AI 训练、高性能计算的核心硬件,也为理解现代 GPU 的技术演进与应用价值提供了清晰框架。

作者介绍

崔皓,51CTO社区编辑,资深架构师,拥有18年的软件开发和架构经验,10年分布式架构经验。


©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2025-7-30 07:38:53修改
收藏
回复
举报
回复
相关推荐