[GPU硬件架构]NVIDIA Ampere 架构:细粒度结构化稀疏性

细粒度结构化稀疏性(fine-grained structured sparsity ,稀疏性),是助力推动 NVIDIA Ampere 架构 GPU 性能提升的一项全新技术,它不但提高了效率,还使开发者能够通过减少计算操作来加速其神经网络。

图1. A100 fine-grained structured sparsity

稀疏矩阵(sparse matrix )定义

图2. 2:4 稀疏矩阵与网络权重压缩

2:4 稀疏矩阵(2:4 sparse matrix ):矩阵中每个4个元素中有2个非零值。A100 支持行方向上的 2:4 结构化稀疏

在A100中,通过细粒度结构化稀疏将训练好的网络权重修剪为2:4 稀疏矩阵,接下来是一个简单而通用的方法来对非零权重进行微调(fine-tune)。然后权重网络权重被压缩之后,数据占用空间和带宽减少为原来的一半,并且 A100 的稀疏 Tensor Core 通过跳过零(skipping the zeros)将数学计算的吞吐量加倍。

根据NVIDIA自述[1],通过对计算机视觉、目标检测、分割、自然语言建模和翻译的数十个网络的评估,这种方法几乎不会导致推理准确性的损失。

以下为NVIDIA使用PyTorch库 Automatic SParsity (ASP) [2] 实现的工作流获得的FP16精度结果示例:

图3. Sample accuracy of 2:4 structured sparse networks trained with our recipe

更多信息可以参考 the Accelerating Sparse Deep Neural Networks whitepaper [3]

稀疏(Sparse) Tensor Core

A100 Tensor Core GPU 包括新的 Sparse Tensor Core 指令,这些指令跳过对零值的计算,从而使 Tensor Core 计算吞吐量翻倍。图1展示了,Tensor Core在点积计算中是如何使用压缩元数据(即:非零值的索引)去匹配经过压缩后的网络权重。

加速效果[1]

通过引入稀疏 Tensor Core,A100使用TensorFloat-32的运行速度比V100 FP32 FMA快20倍。

A100 vs. V100 V100 A100 A100 Sparsity A100 加速效果 A100 Sparsity 加速效果
FP16 TC 125TFLOPS 312TFLOPS 624 TFLOPS 2.5x 5x
BF16 TC 125TFLOPS 312TFLOPS 624TFLOPS 2.5x 5x
TF32 TC vs. FP32 15.7 TFLOPS 156 TFLOPS 312 TFLOPS 10x 20x
INT8 TC vs. INT8 62 TOPS 624 TOPS 1248 TOPS 10x 20x

  1. NVIDIA Ampere Architecture In-Depth

  2. github >>ASP (Automatic SParsity)

  3. arXiv >> Accelerating Sparse Deep Neural Networks

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容