英伟达hopper架构的核心是什么?( 二 )


英伟达hopper架构的核心是什么?
文章图片

文章图片

流式多处理器SM
与FP16或BF16相比 , FP8将数据存储要求减半 , 吞吐量翻倍 。我们在Transformer引擎的分析中还会看到使用FP8可自适应地提升Transformer的计算速度 。
每个SM包括128个FP32CUDA核心、4个第4代张量核心(TensorCore) 。
进入SM单元的指令首先存入L1指令缓存(L1InstructionCache) , 然后再分发到L0指令缓存(L1InstructionCache) 。与L0缓存配套的线程束排序器(WrapScheduler)和调度单元(DispatchUnit)来为CUDA核心和张量核心分配计算任务 。(注:GPU中最小的硬件计算执行单位是线程束 , 简称Warp 。)
英伟达hopper架构的核心是什么?
文章图片

文章图片

FP8具有FP16或BF1622倍吞吐量
每个SM通过使用4个特殊函数单元(SpecialFunctionUnit , SFU)单元进行超越函数和插值函数计算 。
03.
Hopper的张量核心与Transformer引擎
在GPU中 , 张量核心是用于矩阵乘法和矩阵累加(MatrixMultiply-Accumulate , MMA)数学运算的专用高性能计算核心 , 可为AI和HPC应用程序提供突破性的性能加速 。
张量核心是GPU中做AI加速的关键模块 , 也是Ampere及之后GPU架构与早期GPU的显著区别所在 。
Hopper的张量核心支持FP8、FP16、BF16、TF32、FP64和INT8MMA数据类型 。这一代张量核心的关键点是引入了Transformer引擎 。
英伟达hopper架构的核心是什么?
文章图片

文章图片

H100FP16TensorCore的吞吐量是A100FP16TensorCore的3倍
Transformer算子是主流的BERT到GPT-3等NLP模型的基础 , 且越来越多地应用于计算机视觉、蛋白质结构预测等不同领域 。
与上一代A100相比 , 新的Transformer引擎与HopperFP8张量核心相结合 , 在大型NLP模型上提供高达9倍的AI训练速度和30倍的AI推理速度 。
英伟达hopper架构的核心是什么?
文章图片

文章图片

新的Transformer引擎动态调整数据格式以充分运用算力
为了提升Transformer的计算效率 , 在这一新的Transformer引擎中使用了混合精度 , 在计算过程中智能地管理计算精度 , 在Transformer计算的每一层 , 根据下一层神经网络层及所需的精度 , 在FP8和其他浮点格式中进行动态格式转换 , 充分运用张量核心的算力 。
04.
张量存储加速器与异步执行
Hopper架构中新增加了张量存储加速器(TensorMemoryAccelerator , TMA) , 以提高张量核心与全局存储和共享存储的数据交换效率 。
在这一新的TMA操作中 , 使用张量维度和块坐标指定数据传输 , 而不是简单的按数据地址直接寻址 。TMA通过支持不同的张量布局(1D-5D张量)、不同的存储访问模式、显著降低了寻址开销并提高了效率 。
也就是说 , 原来是一个一个的捡豆子(数据) , 现在的方法就是一碗一碗的舀豆子 。这样的设计 , 是不是越来越接近DSA的寻址方式?
英伟达hopper架构的核心是什么?
文章图片

文章图片

TMA的块坐标寻址方式
当然 , TMA操作是异步的 , 多个线程可以共享数据通道 , 排序完成数据传输 。
TMA的一个关键优势是它可以在进行数据复制的时候 , 释放线程的算力来执行其他工作 。
例如 , 在A100上 , 由线程本身负责生成所有地址执行所有数据复制操作 。但在Hopper中 , TMA来负责生成地址序列(这个思路类似DMA控制器) , 接管数据复制任务 , 让线程去做其他事 。