【论文翻译】S4: a High-sparsity, High-performance AI Accelerator

S4: a High-sparsity, High-performance AI Accelerator

S4: 高稀疏、高性能的AI 加速器

论文链接

摘要

利用神经网络中的稀疏性已经成为减少内存占用、I/O成本和推理计算量的最具潜力的方法之一。

随着更大的模型的使用以及预训练的“巨大“模型,更高的稀疏度被采用 。

另一方面,与被广泛支持的量化相比,大多数计算平台不支持通过高度稀疏来加速。

在这个工作中,我们介绍了首个支持高度稀疏加速的商用硬件平台,支持32倍稀疏——S4。

结合最先进的稀疏剪枝技术,我们在S4上证明了相比超越主流的推理平台如Nvidia T4可实现几倍加速。

我们还在实践中证明了稀疏更大尺寸的模型相比一个稠密的小模型可以在S4上获得更高的精度和更高的吞吐量。

1 前言

深度神经网络模型显著提高了各种自然语言的性能处理(NLP)和计算机视觉(CV)的研究进展。有效的而且普遍存在的是,这些模型通常都非常大。一个新兴的分支领域研究深度神经网络模型中的冗余,利用了深度神经网络的稀疏性建模和寻找稀疏等价子网络。此外,随着预训练的大模型,如BERT,ViT和GPT-3,更大的模型尺寸被考虑,从而产生了稀疏程度较高的稀疏子网络。

然而,与量化相比(量化已被广泛采用作为一种标准选项加速)大多数计算平台通过高度稀疏性不支持加速。只有新发布的Nvidia A100开始支持稀疏张量操作作为加速选项(最多2x)。因此,现有的大多数稀疏性研究很难带来实际的加速高性能计算平台。

为了填补这一空白,我们推出了第一个支持高度的商用硬件平台——S4,稀疏性加速可达32倍。S4是一个硬件的数据中心推理平台,参数和Nvidia T4相似,但有额外的高度稀疏支持。结合最新的稀疏修剪技术,我们在S4上演示了几倍的实际推理加速基于Nvidia T4主流推理平台。我们还在实践中证明了一个更大的稀疏模型尺寸的模型在S4上的精度和吞吐量都比较小的稠密模型高。
【论文翻译】S4: a High-sparsity, High-performance AI Accelerator_第1张图片

Antoum处理器的架构概述:

(i) 稀疏处理单元(SPU)可以支持高达32倍的张量稀疏性线性加速。

(ii) 定制激活引擎直接支持复杂激活函数如GELU,以及基础数学算子如指数,对数,倒数算符。

(iii) 稀疏处理单元本身支持卷积以及矩阵乘法运算与融合运算如偏置加法,elementwise,运算,量化,和某些激活函数。

(iv) Antoum移动计算单元直接邻近大容量和大带宽的存储器。

2 S4平台

S4的架构概括如下:

•高速率稀疏张量核。S4卡是第一个支持AI推理加速卡。高速率(高达32倍稀疏度)稀疏张量操作。

•高性能多媒体处理能力。S4卡集成了专用视频编解码器引擎和JPEG解码器引擎。四个视频解码器引擎和

一个视频编码引擎可以处理多通道视频流(高达4K)和轻松将可扩展的深度学习集成到视频处理中。

•可伸缩性。S4卡通过自定义稀疏组成稀疏处理子系统处理单元和其他辅助加速单元,包括专用视频编解码器和JPEG解码器引擎,嵌入查找单元,内存重塑引擎,和向量处理器。四个稀疏处理子系统通过高带宽、片上环互连网络形成一个完整的芯片。

•S4硬件通过SparseRT开发工具包支持

现有的AI编程框架,如Tensorflow, PyTorch, ONNX和MXNet。

S4是为提高数据中心AI推理的效率而构建的,它提供了(稀疏的)等效功能 INT8的计算能力为944个TOPS, BF16的计算能力为472个TFLOPS, LPDDR4为20GB 在低70瓦的功率信封中,高达72 GB的内存带宽。合并后的Moffett原始稀疏算法和Antoum芯片结构的效果大大提高计算速度S4,从而降低总拥有成本(TCO)。

在Antoum体系结构如图1所示。硬件和软件都经过严格的设计,以创造高度高效的AI片上系统(SoC)处理器平台。稀疏处理器的组合单元(SPU)(用于本机稀疏卷积和矩阵乘法)和异质唯一功能加速器,为各种AI推理工作负载提供最大效率和最大所有用户的价值。例如,集成矢量处理器单元(VPU)可以提供灵活的可编程性,以跟上AI模型的快速发展。支持片上视频编解码器64路1080p视频解码,30帧/秒。JPEG解码器支持高达2320 FPS 1080p图像解码,为视频和图像推理工作量提供了完整的端到端解决方案。

3 Sparse Acceleration on S4

Moffett S4最重要的特征是它的张量核对稀疏张量表示原生支持,它只保留张量的非零部分,因此神经网络的稀疏程度直接影响到部署在S4内存占用的大小、I/O开销和计算时间。

图2显示了在运行两个基准测试时在S4上实现的实际加速在CV和NLP中广泛使用的模型分别是ResNet50和BERT。注意,加速几乎ResNet50的线性w.r.t稀疏性,BERT的次线性,因为它有大量的工作负载non-matrix-multiplication操作。

在实际应用中,稀疏模型修剪比结构化修剪取得了更好的精度-速度平衡模型修剪。最常见的减少模型大小的方法是减少层数(例如:

深度)或神经网络的通道数量(即宽度)。例如,图3显示了准确性Resnet50, Resnet152, BERT-base和BERT-large的速度,比较精度和

T4上密集模型和S4上稀疏模型的速度。从图3中可以看出较大的稀疏模型比较小的密集模型获得更高的精度和更高的吞吐量

模型,这意味着:无论目标是改进精度还是提高速度,都应该始终考虑一个稀疏模型。

4 稀疏方法

在本节中,我们将介绍与S4中与稀疏加速互补的常见稀疏剪枝技术。

有两种场景,分别关注稀疏修剪的不同挑战

(i)修剪从零开始训练的模型

(ii)修剪微调的pretrained模型。前者的风险是欠拟合,后者的风险是过拟合

从头开始训练:从头开始训练意味着它是一个训练数据定义的优化问题的直接解。修剪这样的模型基本上解决了几乎同样的优化问题,但增加了稀疏性约束,其中原来的密集模型只起到良好初始化的作用。因此,关键的挑战是如何设计一个较好的优化算法,对训练数据的拟合和稀疏约束下的密集模型一样好。目前已经提出了各种优化方法,其中稀疏修剪可以减少一个数量级的参数数量,而不显著损失精度,从而一个比密度小的模型更好的精度-效率的权衡。

预训练: finetune范式预训练模型,如BERT和ViT,已经成为在各种NLP和CV任务中提高效率的标准和有效的方法。这些

模型以自我监督的方式预先训练,然后为下游任务进行微调。在这种范式下的两种修剪方法是:

(i) 在训练前的修剪

(ii)下游任务微调期间的修剪。

然而,这两种方法都面临着来自不同的问题: 训练前的修剪会因为模型的需要而受到欠拟合的困扰。在预训练阶段,不仅要学习与任务相关的知识,还要学习与任务无关的知识;

另一方面对下游数据的修剪会受到过拟合的影响,因为下游训练数据可能不会包含在预训练阶段学到的知识。

最先进的方法通常设计修剪目标,不仅保留下游数据中的知识,而且还保留从训练前数据转移的知识。一个简单的方法是via中间层的知识蒸馏[17],既要保留数据的预测,又要保留预训练模型生成的中间特征图,需要进行修剪。我们采用了方法给出表1中两个GLUE数据集的修剪结果比较结构蒸馏方法:Bert-of-Theseus, MiniLM和TinyBERT,其中稀疏修剪不仅能减少模型的尺寸,而且能提高预测精度

你可能感兴趣的:(【论文翻译】S4: a High-sparsity, High-performance AI Accelerator)