ReadPaper
用户9415
论文粗读
分享
GPU Arch:自顶向下分析
输入“/”快速插入内容
GPU Arch:自顶向下分析
本文很多内容都取自ZOMI酱,大家对机器学习系统框架,GPU底层架构想要有一个更加深入的了解可以关注ZOMI。
https://space.bilibili.com/517221395
50%
https://github.com/chenzomi12/DeepLearningSystem
50%
更多
PEFT
&
MLSys
相关精彩内容
Modest Understandings on LLM
https://www.bilibili.com/video/BV1Az4y1B7Da/
Intro
随着人工智能特别是以GPT为代表的生成式AI的迅猛发展,GPU已经成为了一种不可或缺的工具,甚至企业都以拥有多少高端GPU作为抓住风口能力的衡量标准。相比之下,CPU虽然在传统计算领域占据主导地位,但在处理AI任务时却不及GPU出色。本文将探讨为什么AI计算通常选择GPU而不是CPU,并分析GPU在AI计算中的优势,同时,从底层原理探讨从Volta到最新的Hopper四代NVIDIA GPU架构的演进,展示其不断提升的性能和功能。
Why not CPU?
GPU主要由计算单元ALU组成。CPU不仅被Cache占据了大量空间,而且还有有复杂的控制逻辑和诸多优化电路,相比之下,计算能力只是CPU很小的一部分。
通过视频,我们可以感受一下GPU的重要特性
Parallelism
50%
50%
Insight into GPU
接下来,我们以Hopper架构为例自顶向下介绍一下GPU,让我们对GPU有一个更加清晰的认知。
1.
GPC(Graphics Processing Clusters):
GPC负责处理图形渲染和计算任务。每个GPC包含多个TPC,以及与其相关的专用硬件单元和缓存。
2.
TPC(Texture Processing Clusters):
TPC负责执行纹理采样和滤波操作,以从纹理数据中获取采样值,并应用于图形渲染中的相应像素。在CUDA计算中,每个TPC有两个SM处理计算任务。
50%
Hopper-H100
50%
3.
HBM(High-Bandwidth Memory)
:HBM是高带宽内存,也就是我们常说的显存。它通过将内存芯片直接堆叠在逻辑芯片上,提供了极高的带宽和更低的能耗,从而实现了高密度和高带宽的数据传输。
4.
L2 Cache
:L2 Cache是GPU中更大容量的高速缓存层,它位于多个流多处理器(SM)之间共享。L2 Cache还可以用于协调SM之间的数据共享和通信。
1.
SM(Streaming Multiprocessor)
:SM是是GPU的主要计算单元,负责执行并行计算任务。每个SM都包含多个流多处理器(CUDA核心),可以同时执行多个线程块中的指令。SM通过分配线程、调度指令和管理内存等操作,实现高效的并行计算。
2.
WARP(Wavefront Parallelism)
:WARP指的是一组同时执行的Thread。一个Warp 包含32个并行Thread,这32个Thread 执行于
SIMT
模式。也就是说所有Thread 以锁步的方式执行同一条指令,但每个Thread会使用各自的Data 执行指令分支。
3.
Dispatch Unit:
从指令队列中获取和解码指令,协调指令的执行和调度,将其分派给适当的执行单元,以实现高效的并行计算。
4.
L1 Cache/SMEM
:L1 Cache包含指令缓存(Instruction Cache)和数据缓存(Data Cache),在SM内部存储最常用的指令和数据,每个SM独享一个L1 Cache,提供低延迟和高带宽的访问。
5.
Register File
: 用于存储临时数据、计算中间结果和变量。离计算单元最近,访问速度非常快。
6.
SFU(Special Function Unit)
:SFU在GPU中用于加速特定类型的计算操作。如三角函数等。
50%
Hopper
50%
TensorCore,Tensor Memory Accelerator
是主要用于加速AI计算负载中的矩阵乘法和累加(Matrix Multiply-Accumulate, MMA),我们稍后对其进行更加具体的讲解。
💡
SIMD
和
SIMT
有什么区别?
TL;DR: SIMT相对于SIMD在复杂计算的情况下,对开发人员和编译器的要求更低,更好优化。在数据的比特位小的时候,在SIMT中增加SIMD来增加GPU的计算能力,这就是为什么有些GPU的16位/8位计算的算力会是32位计算的多倍的情况。
从现代GPU编程角度看SIMD与SIMT