没有合适的资源?快使用搜索试试~ 我知道了~
【论述总结】稀疏DNN推理和剪枝技术对于减少神经网络存储和计算成本具有重要作用
BenchCouncil交易基准,标准和评估2(2022)100090研究文章稀疏DNN推理刘云杰,孙经纬,刘嘉强,孙广忠中国科学技术大学,合肥,中国A R T I C L E I N F O保留字:深度神经网络剪枝矩阵乘法A B S T R A C T深度神经网络正在遭受过度参数化的高存储和高消耗问题。剪枝可以通过消除冗余参数来有效降低深度神经网络的存储和计算成本。在现有的剪枝方法中,过滤器剪枝实现了更有效的推理,而按元素剪枝保持了更好的准确性。 为了在两个端点之间进行权衡,已经提出了各种修剪模式。这项研究分析了不同模式修剪的稀疏DNN的性能特征,包括元素方式,矢量方式,块方式和组方式。基于分析,我们提出了一种高效的分组稀疏DNN推理实现,它可以更好地利用GPU。在VGG、ResNet、BERT和ViT上的实验结果表明,与其他稀疏模式和现有的分组模式实现相比,优化后的分组模式在GPU上实现了更低的推理延迟。1. 介绍深度神经网络(DNN)在人工智能领域取得了显著的成就,引起了众多研究者的兴趣。近年来,深度神经网络已广泛应用于众多应用中,包括计算机视觉[1]、自然语言处理[2]、推荐系统[3]等。为了达到高精度,DNN通常具有过参数化的特性。换句话说,它们包含冗余参数,这些参数占用大量存储空间,并且难以部署到资源受限的设备。由于大量的计算操作,DNN的推理延迟也受到影响。为了解决这个问题,研究人员提出了各种方法来压缩DNN模型。剪枝是一种有代表性的、有效的模型压缩方法。它根据特定的标准识别和删除DNN中的冗余参数。理想情况下,进行修剪方法后,模型参数和计算操作的数量都减少了,推理时间成本也应该减少。在实践中,修剪并不能确保有效的推理。 根据剪枝参数的粒度,现有的剪枝方法介于非结构化剪枝和结构化剪枝之间。当使用非结构化的逐元素模式进行修剪时,可以修剪更多的参数。然而,由于未对齐和未合并的数据访问,修剪模型在商品GPU架构上是不友好的[4在这种情况下,虽然模型参数的数量和计算操作的数量是有限的,但是,∗ 通讯作者。减少,推理时间甚至可能高于密集模型,因为稀疏计算的硬件支持不完善[7]。采用结构化过滤器剪枝算法进行剪枝时,由于其计算规则性,可以更好地利用GPU的并行计算能力。然而,这种方法,修剪的参数的数量是有限的,而模型的精度可能会显着下降。为了在两个端点之间进行权衡,已经提出了各种修剪模式,例如矢量修剪[8,9]和块修剪[10,11]。向量式修剪将每一行的参数分成大小相等的向量,并修剪每个向量中相等比例的参数。分块剪枝将权值矩阵划分为特定形状的矩阵块,并根据每个块的重要性标准去除与过滤剪枝相比,这些结构化剪枝模式保留了更多规则、平衡和部分稠密的非零元素。然而,从这些修剪模式得到的稀疏模型仍然需要特定的运行时支持。在这项研究中,我们分析了不同稀疏DNN的性能特征,包括元素方式,矢量方式,块方式和组方式。我们发现,这些修剪模式与现成的稀疏计算库(例如, cuSPARSE)很难充分利用GPU的能力。然后,我们提出了一个有效的实现结构化稀疏DNN推理的基础上组明智的模式。更具体地说,对于卷积神经网络(CNN),逐组模式移除具有相同索引的参数,电子邮件地址:lyj06@mail.ustc.edu.cn(Y.Liu),sunjw@ustc.edu.cn(J. Sun),jqliu42@mail.ustc.edu.cn(J. Liu),gzsun@ustc.edu.cn(G. Sun)。https://doi.org/10.1016/j.tbench.2023.100090接收日期:2022年12月7日;接收日期:2023年3月5日;接受日期:2023年3月5日在线预订2023年2772-4859/©2023作者。 Elsevier B.V.代表KeAi Communications Co. Ltd.提供的出版服务。BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表标准和评价期刊主页:www.keaipublishing.com/en/journals/benchcouncil-transactions-on-benchmarks-standards-and-evaluations/BenchCouncil交易基准,Y. 刘,J.Sun,J.Liu等人BenchCouncil交易基准,标准和评估2(2022)1000902Fig. 1. 卷积神经网络所有频道对于递归神经网络(RNN)和基于Transformer的模型,分组模式删除每个权重矩阵的行。基于这种修剪模式,我们将修剪的CNN,RNN和Transformer的主要计算内核转换为通用矩阵乘法(GEMM)运算。当前的深度学习编程框架(例如,PyTorch、Tensorflow)和硬件平台支持成熟的GEMM操作。因此,我们的实现可以更好地利用GPU。此外,分组剪枝模式只约束非零元素的布局。 很容易将该模式与现有的复杂修剪时间表和重要性标准相结合,如动态稀疏训练[12],彩票假设[4,13],幅度[14,15],泰勒[16],Hessian [17]等。本文的主要贡献总结如下:• 对现有的主流细粒度结构化剪枝模式进行了实证研究.我们比较了它们在不同条件下的推理性能,并指出它们在GPU上的效率低下,与现成的稀疏计算库。• 我们提出了一个有效的实现组明智的修剪模式。该实现将逐组稀疏矩阵-矩阵乘法转换为GEMM操作,并根据GPU硬件特性优化了内存访问。它充分利用了现有的运行时库和GPU硬件支持。2. 背景和相关工作2.1. DNN模型剪枝神经网络一般具有过参数化特性,含有冗余参数。通过在训练期间或训练之后分析和移除这些冗余参数,神经网络可以被优化以在其被部署到目标设备时获得更低的执行时间并消耗更少的存储器资源。这个过程就是神经网络的修剪。LeCun等人在[18]中开创了最佳脑损伤(OBD)方法,该方法将个体权重视为一个单位。Hassibi等人[19,20]提出了一种基于最优脑损伤方法的最优脑外科医生(OBS)方法,该方法基于对角假设、极值假设和二次假设,增加了基于手术恢复权重的更新步骤。后来,Han等人[21]提出,只学习网络中的重要连接可以减少模型参数和计算量,而不会影响网络的最终精度,并提出了经典的剪枝-再训练框架。 Li等人[15]提出基于卷积核修剪的压缩技术。 Hu等人。[22]提出使用基础模型输出和修剪的分类损失函数来监督每个信道的信道选择。层,特别是引入额外的损失来编码基础模型和修剪模型特征映射中的特征之间的差异。通过同时考虑重构误差、附加损失和分类损失,大大提高了模型的精度。2.2. 用于修剪DNN模型的硬件感知加速致密模型。卷积神经网络主要包含两种层类型:卷积层和线性层。 计算线性层的矩阵乘法可以简单地看作是矩阵乘法。卷积层如图所示。1,其可以通过使用im2col算法将卷积算法转换为矩阵乘法来计算。对于BERT模型和ViT模型,其主要的计算部分,编码器结构,也可以看作是一些列矩阵乘法,如图所示。二、因此,降低密集神经网络模型的延迟的关键点是降低矩阵乘法的延迟。广义矩阵乘法(GEMM)用于深度学习以执行上述矩阵运算。由于GEMM已经发展了很长一段时间,大多数现有的编程框架和商业硬件可以有效地支持密集模型加速。通过结构化剪枝(如通道剪枝或滤波器剪枝)进行剪枝的模型也是稠密模型,因此可以使用GEMM进行计算。由于结构化剪枝模式的强约束性,其精确度通常比细粒度剪枝差相关的研究集中在保持更高的准确性。FlexPruner [23],具有灵活速率的过滤器修剪方法。它是基于一个贪婪的策略来选择要修剪的过滤器。Li等人。[24]扩展了修剪的优化空间,因此他们的方法能够更有效地压缩模型。MaskACC修剪方法[25]动态地重新组织卷积中使用的张量和掩码信息,以避免不必要的计算,从而提高修剪过程的计算效率。稀疏模型。GPU最初是为密集线性代数计算而设计的,对于稀疏计算并不理想。因此,修剪模式的设计对修剪模型的推理延迟至关重要。Zhu等人。[26]使用矢量修剪模式来确保修剪网络的平衡工作负载通过添加具有扩展指令集和硬件支持的Lin等人。[27]根据类似的矢量模式对权重进行平铺并将其划分,以去除冗余的整个矢量,与权重修剪和过滤器修剪相比,这在延迟和性能之间具有更好的权衡Anwar等人。[28]首先探索了内核级修剪,并提出了一种内核内步幅修剪方法,该方法以固定步幅修剪子向量。 Guo等人[29]提出了一种平铺模式,它首先划分矩阵Y. 刘,J.Sun,J.Liu等人BenchCouncil交易基准,标准和评估2(2022)1000903∑∑∑尺寸为“×"×”。具体的“、"和���“"与卷积层中的填充和步幅设置有关。上述变换可以由以下公式表示:���������(,,)=���������∑���(,)���������������(一)��� =1���=1...ℎ���1.���U������������������(2 2其中,k是一个四维核张量,大小为××。���������������的输出映射对应于输出映射,输出映射对应于输入映射,而输出映射和输出映射对应于卷积核大小。为了计算(1),核张量被重新塑造为高度���′=××和宽度的二维权值矩阵。���������������输入数据U被重新整形为具有高度′′×宽度′ ′的二维输入扩展矩阵,其中高度′′×宽度′′=λ λ × λ ×λ。每一行都由一个平方扩展组成,该平方扩展是用相应的卷积核计算的现在我们只需要以下计算[32]:图二. BERT模型中的编码器结构。许多这些操作使用GEMM完成。在硬件计算过程中,根据并行性属性将块划分为几个较大的Tile块,并修剪块内的行列。Lebedev等人在[30]中提出了卷积层中的分组修剪模式。然而,该模式与脑损伤准则相结合,提出了一套完整的剪枝方法。相反,我们提出了一个有效的实现组明智的模式,重点是推理时间。此外,这项工作在线性层中进行了分组扩展,以实现整个神经网络在推理时间方面除了对剪枝模式的创新和研究外,研究者还关注剪枝模型的有效实现和执行。例如,SparTA [31]是一个端到端的模型稀疏框架,它使用具有稀疏属性的张量(TeSA)来构建稀疏模型。它为非结构化剪枝和分块粒度剪枝提供加速,兼容各种稀疏模型和优化技术,便于稀疏算法探索更好的稀疏模型。与现有的工作相比,本文提出的工作更好地利用了供应商提供的现成的密集计算库,例如,cuBLAS。它具有实现简单、可移植性强等优点。它避免使用低级API和超参数(例如,图块宽度、块大小),因此它可以在所有NVIDIA GPU上运行,无需特定调整即可实现加速。3. 性能表征3.1. 初步深度神经网络中最密集的计算主要发生在两层:卷积层和线性层。卷积层的计算将具有大小为“×"的多通道的输入映射U转换为具有大小为”ד的多通道的输出映射。������������������′(���′,���′)=(′,)(,′)(2)���������=1矩阵的大小在高度和宽度上都是“×���"������������,它包含卷积层的所有输出数据。正确的输出是通过重新整形获得的。一个线性层可以将一个具有1000维的张量变换为一个具有1000维的张量。������������������可以使用以下等式来表示变换:���������(中文)=���(中文)(简体)(中文)(3)������������1个���其中,是一个张量,高度为,宽度为。���������由于卷积层和线性层的计算都可以转换为矩阵乘法,因此修剪层的操作只是减少卷积层的二维权重扩展矩阵或线性层的矩阵中的参数。���3.2. 修剪模式剪枝方法主要由三部分组成:剪枝模式、剪枝时间表和剪枝准则。修剪模式定义了保留的非零元素的布局。修剪计划确定了修剪的发生时间,如修剪后,[33],[34],[36],[37 ],[38],[39]。 修剪标准衡量一组参数的重要性,确定这些参数是否被修剪[4,12人工智能研究界通常更关心的是调度和准则,这对模型压缩率和推理精度有着至关重要的影响。在这项研究中,我们专注于修剪模式,这对GPU上修剪DNN的执行延迟和硬件利用率至关重要。图图3示出了按元素、按向量、按块和组明智的模式,分别。元素模式[4在核张量被重塑为二维权扩展矩阵后,根据特定的修剪准则去除不重要的个体参数。它可以删除很大一部分参数,从而显著减小模型大小。 然而,通过这种修剪模式获得的参数的布局是不规则的,并且基本上无助于提高稀疏DNN推理的执行性能与元素方式相比,矢量方式的模式[8,9向量模式将权重扩展矩阵划分为大小相等的向量例如,如果权重扩展Y. 刘,J.Sun,J.Liu等人BenchCouncil交易基准,标准和评估2(2022)1000904(���[图三. 不同修剪模式的比较。 M和N代表数字 im2col算法之后的权重矩阵的扩展矩阵的行和列的值。在该示例中,M是8并且N是8。矩阵为12 × 16,向量大小人为指定为4,则权重扩展矩阵将被划分为12× 4个向量。 在每个向量内,相同比例的冗余权重被确定为被修剪,即,每个向量包含相同数量的零元素。冗余权重在向量内的位置不受限制。这种修剪模式保留了更均匀的权重分布,因为每个向量中修剪的权重数量相同。分块模式[10,11]将权重扩展矩阵划分为大小为×的矩阵块。例如,如果权重扩展矩阵为12 × 16,并且人为地将块大小指定为2 ×2,则权重扩展矩阵将被划分为6 × 8块。每个块的重要性得分是根据整个块上的特定修剪标准来分组模式将同一位置处的不同通道的权重划分为一组。当核张量扩展为权重扩展矩阵时,每个组正好形成一行。此时,通过根据修剪准则计算每行的重要性得分来移除不重要的根据不同的剪枝模式和剪枝准则从稠密模型中去除相应的权值组合后,剩余的权值构成剪枝后的稀疏神经网络模型。3.3. 修剪模式我们对元素[5],向量[9],块[11]和组[30]修剪模式进行了经验比较,具有不同的稀疏比率和任务。元素模式使用[5]中的实现方法。修剪准则定义权重张量的第二个索引,定义为:随着指数值的增加,分数变得越来越小。在对每一层进行排序之后,计算所有张量的得分并执行全局修剪。根据算法可以看出,该方法在模型训练后进行剪枝操作。矢量模式使用[9]中的实现方法。该方法修剪每个权重向量中具有较小绝对值的权重这种修剪方法的修剪时间表是在训练期间。分块模式使用[11]中提出的方法该方法为每个块分配具有初始值的可训练参数 的值,并且范围在0和1之间。使用该模型来训练块,并且当该参数小于或等于0时,修剪对应的块。这种剪枝方法的剪枝时间表也是在训练期间。分组模式使用[30]中提出的模式。没有工作代码实现,因此使用DST [12]方法中的修剪准则与模式相结合。该方法在每层绑定一个可训练的阈值,并修剪平均值小于阈值的组这种修剪方法的修剪时间表也在训练期间。注意,由于修剪方法的固有设置,稀疏比率不能被控制为保持完全相同。评估的模型为VGG-16 [38]、ResNet-18 [39]和Vision Transformer(ViT)[40]模型。 VGG-16由13个卷积层组成,3线性层。ResNet-18由一个卷积层、八个残差块和一个线性层组成。每个残差块包含两个卷积层。 ViT由补丁嵌入层和12个Transformer编码器组成。 补丁嵌入层包含 卷积层,并且每个编码器包含两个线性层。 我们主要在CIFAR-10数据集和Tiny-Imagenet数据集上进行实验,并在ImageNet数据集上进行一些额外的实验。CIFAR-10数据集有10个类别的图像,相应的任务是图像分类任务,以预测测试集中给定的单个图像的图像类别。相应的任务Tiny-ImageNet 和 Imagenet 数 据 集 与 CIFAR-10 相 似 。 然 而 , Tiny-imagenet数据集中的类别数量是200,而Imagenet数据集中的类别数量是1000。我们还选择BERT基模型[41]作为NLP领域的代表。它是基于Transformer [42]实现的12个编码器模块。用于评估BERT模型的数据集是QQP数据集[43],它是来自社区问答网站Quora的问题对的集合。判断一对问句在语义上是否等价是一个相似性和解释性的任务。我们使用的硬件平台是Nvidia GeForce RTX 2080 Ti GPU。所有修剪模型都使用cuSPARSE库计算表1显示了在CIFAR-10数据集上具有不同保留参数比率的VGG-16和ResNet-18模型的推理时间和准确度变化(与非修剪模型相比)结果。表2显示了Tiny-ImageNet数据集的结果。表4显示了基于BERT的模型在QQP数据集上的推理时间和精度变化。根据结果,在卷积和基于transformer的网络上,矢量和块的性能优于元素。然而,所有修剪模型的性能比相应的密集模型差得多。稀疏计算只有在稀疏度非常高的情况下才能优于密集计算,但这会导致计算精度显著下降,对实际应用是不切实际的。因此,我们需要一种修剪模式,它可以利用现成的密集计算库,并且不需要不切实际的高稀疏性。4. 有效的分组剪枝稀疏计算引入了不规则的数据访问,因此在GPU上是耗时的。通过第三节的介绍和分析,我们可以发现分组剪枝模式更有潜力更好地利用GPU架构。本研究���������������(���;)∶=∑( [���])2(四)提出了一种有效的实现组明智的修剪模式,使密集计算修剪模型。Y. 刘,J.Sun,J.Liu等人BenchCouncil交易基准,标准和评估2(2022)1000905表1CIFAR-10数据集上修剪模型和密集模型的推理时间模型参数(%)修枝方式延迟(ms)acc的变化(%)74.97元素方面6.82+0.0475.00矢量6.97+0.0978.74块5.97+0.1273.84分组8.63−0.2549.97元素方面5.41-0.23VGG-1650.00矢量4.77-0.3255.19块式5.21−0.1549.90分组7.03+0.0524.97元素方面3.27+0.0325.00矢量2.55-0.1925.26块式3.19-0.3825.57分组2.30-0.86100密0.110.075.99元素方面11.62+0.5975.00矢量5.84+0.0473.67块11.93+0.2277.27分组7.51-0.3549.98元素方面10.17+0.4950.00矢量3.99-0.46ResNet-1847.41块式8.67-0.3746.76分组5.86-0.3824.97元素方面8.36-0.0625.00矢量2.91-0.5323.60区块5.53-0.5639.35分组2.64-1.38100密0.700.04.1. 分组模式如第3.2节中所介绍的,在逐组模式中,不同输出通道的相同位置权重将被裁剪。在分组修剪之后,卷积层权重被执行。使用第3.2节中描述的方法进行分级。 如图 四、见图4。组明智的模式。x2和x3表示im2col算法后权值矩阵的扩展矩阵的行数和列数。** 表示im2col算法后输入数据矩阵的扩展矩阵的行数算法m1逐组二维卷积层推理输入:输入数据,层参数Output:本层的输出������������������1:函数im2col= im2col()2:=������������������������������第三章:int n= im2col()四: 如果使用掩模,5:如果掩码[]为0,则为[]���������������������������������6:=������������������7:其他������和 ××和���,分别。���������������8:���������������������������������如果sum([])为0,则 = [���������������������图中被遮盖的部分表示冗余权重。它可以可以观察到,要修剪的扩展权重是矩阵中的完整行。 通过切片和连接,可以将修剪矩阵转换为稠密矩阵。如果将行向量从权重矩阵,则输入扩展矩阵中相应的列向量也需要被移除。类似地,输入矩阵可以被转换成用于计算的稠密矩阵以上是卷积神经网络的卷积层中的分组模式的定义。 它也可以应用于NLP模型。NLP模型中最繁重的计算,如RNN和基于Transformer的模型,是两个权重矩阵的直接相乘。我们可以简单地遵循CNN的分组修剪模式的相同思想。同时删除或保留权重矩阵的每一行。然后将保留行连接成一个密集矩阵。通过这种方式,将分组方式扩展到线性层。4.2. 分组模式推理面具当使用分组稀疏模型进行推断时,模型需要知道哪些权重已被修剪,然后跳过相应的计算。注意,修剪后的权重由修剪标准确定。我们实现的分组模式推理不受任何特定的修剪标准的约束,因此当我们得到9:如果索引不在索引中,则索引=index_select(索引选择[索引])10:如果结束十一: //删除不参与计算的数据12:如果索引不在索引中,则索引=index_select(索引选择[∶索引])13:=×������������������14:return返回算法2分组线性层的推断输入:输入数据、图层参数Output:本层的输出������������������1:������������������= 分成几组第二章: 如果使用掩模,3:如果掩码[]为0,则为[������������������������������������4:=������������������5:其他6:如果sum([])为0,则 = [������������������������������������������������7:如果索引不在索引列表中,则索引= index_select(索引选择[索引])���������������8:如果结束9://删除不参与计算的数据10:如果索引不在索引中,则索引=index_select([∶索引])11:=×������������������Y. 刘,J.Sun,J.Liu等人BenchCouncil交易基准,标准和评估2(2022)100090612:return返回Y. 刘,J.Sun,J.Liu等人BenchCouncil交易基准,标准和评估2(2022)1000907表2Tiny-ImageNet数据集上修剪模型和密集模型的推理时间模型参数(%)修剪模式延迟(ms)acc的变化72.93元素方面22.15 −11.52表4QQP数据集上剪枝BERT基模型的推断时间修剪模式参数(%)延迟(ms)访问量变化(%)73.46 19.66 −0.24逐元素43.90 20.46 −0.6831.66 25.32 −1.2120.96 - 0.19矢量50.00 16.53 −0.825.00 20.08 −2.4275.18 14.09 −0.65区块51.70 11.09 −1.6426.74 9.53 −2.5681.71 15.81 −0.28逐群组58.26 11.70 −1.8529.02 6.82 −6.32密集100 2.48 0.0图五. 访问数据的两种方法。表3ViT模型和密集模型在CIFAR-10和Tiny-Imagenet数据集上的推断时间。数据集参数(%)修剪模式延迟(ms)acc的变化元素方面85.83 −0.56现有的剪枝方法通常采用两种方式来保持修剪后的权重的位置:使用掩码[5],或者直接将修剪后的权重设置为零[9]。如果使用掩码,则使用二进制掩码矩阵来指示对应位置处的权重是否被修剪。我们的实现包括两种方式。算法1和矢量85.36−1.08区块28.42+0.96分组81.00−1.22算法2分别显示了分组稀疏卷积层和线性层的推理实现。在算法1中,我们首先将当前层的权重和输入数据元素方面57.62−2.10并使用im2col算法,������������������������CIFAR-1050矢量58.71 −0.72区块28.79 +0.20根据分组模式,将权重分配到分组模式中如果模型分组55.55−1.36元素方面28.32−0.58矢量27.96−0.48区块18.19+0.44分组28.77−1.95标记有掩码,根据掩码提取剪枝部分的索引。如果模型标记为剪枝权值为零,则根据归零组提取剪枝部分的索引,并删除待剪枝的权值。根据剪枝指标,该层微型图像网络100密集3.10 0.0元素方面85.98 −1.6775矢量85.54 −1.79区块28.18 +0.37分组元素方面57.97 −3.7750矢量58.77 −2.25区块28.99 +0.12分组55.99 −1.01元素方面28.18 −3.9525矢量28.06 −2.73区块18.05 −1.33分组29.06 −1.12对应地从矩阵中提取出,串接成稠密矩阵,然后计算GEMM,输出计算结果������������这一层。算法2直接将线性层的权值根据分组模式变为卷积,然后用与卷积相同的计算步骤提取输入数据,得到线性层的输出。������������������在这两种算法中,剪枝是指不参与操作的数据的组索引(要修剪的权重以及不参与操作的输入数据),并且Rk是指要保留的数据的组索引内存访问合并。内存访问合并是使用连续线程访问连续地址的数据所示100密集3.12 0.0一个经过训练和修剪的模型因此,当推理开始时,应该给出图5,使用3个线程访问大小为3 × 3的矩阵,以线性方式存储在存储器中。有两种方法可以访问矩阵。第一个,线程0访问第0、第1和第2个数据, 并且线程1访问第3、第4和第5数据,并且相邻的线程不访问相邻的存储器;第二种方式,线程0访问第0、第3和第6数据,并且线程1访问第1、第4和第6数据,752575.00向量式9.24-12.3475.82逐块17.75−4.1371.7448.64逐群组逐元素38.0218.54-4.19-9.35VGG-165049.2向量式逐块8.5514.34-11.57-4.7649.16逐群组27.86-4.7624.8逐元素14.27-11.7125向量式3.49-11.326.93逐块9.89−14.130.81逐群组16.13-11.68100密集0.50.074.57逐元素47.01-6.0575向量式9.59-8.9275.66逐块28.47+1.274.74逐群组30.60+0.1149.27逐元素41.18-4.77ResNet-185050.42向量式逐块6.1718.81-9.87-2.8249.23逐群组25.55-0.5624.24逐元素33.87-4.6325向量式3.86-8.3627.66逐块18.06-4.1529.55逐群组12.98-6.23100密集1.020.0Y. 刘,J.Sun,J.Liu等人BenchCouncil交易基准,标准和评估2(2022)1000908图第六章 内存访问的 实 现 以分组方式合并。和第7数据,并且相邻线程访问相邻存储器。无论哪种方式,每个线程进行3次访问,但第二种方式是合并内存访问,它需要较少的内存事务,因此比第一种更有效在分组剪枝模式中,权重矩阵的某些行被剪枝,因此矩阵中对应于输入的在该层平铺的数据则不参与计算并且需要被移除。当输入矩阵的列被跳过时,频繁地引入未合并的存储器访问,这在GPU上是低效的。然后,对初始输入矩阵的连续访问变得不合并,这可能导致严重的性能下降。非合并内存访问需要多个内存交易为了缓解这个问题,可以将矩阵转置为ResNet-18ViT表646.76 0.75 −0.3839.35 0.64 −1.3875 2.80 −1.2250 2.37 −1.3625 1.96 −1.95提高其存储器访问效率,如图2所示。第六章 在这种情况下,列跳过变成了行跳过,消除了未合并的访问,提高了访问效率。5. 评价Tiny-ImageNet数据集上分组模式的推理延迟模型参数(%)延迟(ms)accc变化(%)71.74 0.49 −4.19VGG-16 47.2730.98 0.25 −11.6875.4 1.07 +0.115.1. 设置标杆评估的模型包括VGG-16,ResNet-18,ViT和BERT-base,它们涵盖了计算机视觉和NLP领域。VGG-16和ResNet-18是经典的CNN模型。我们执行推理延迟ResNet-18ViT表749.23 0.82 −0.5629.55 0.57 −6.2375.0 2.71 −0.050.0 2.37 −1.0125.0 1.92 −1.12在CIFAR-10数据集上进行评估。对于卷积层,它在修剪后被平铺。对于线性层,我们直接根据 在通过卷积计算平铺之后的相同图案QQP数据集上分组模式的推理延迟模型参数(%)延迟(ms)accc变化(%)81.71 2.43 −0.28对于最流行的Transformer系列模型,我们使用ViT和BERT基础模型以及12层编码器。ViT模型也适用于CIFAR-10和Tiny-Imagenet数据集进行实验。 被评估的基于BERT的模型下游任务是一个句子Bert-base58.26 2.01 −1.8531.21 1.47 −8.72在广泛使用的QQP数据集上进行分类任务。在我们的实验中,稀疏CNN模型和ViT模型是从头开始训练的,并且这些模型是用100个epochs的元素、向量、块和组稀疏模型修剪的 在不同的目标稀疏水平,这取决于数据集的大小。 NLP模型使用预先训练的模型进行评估,并在每个目标稀疏度级别上进行10次微调。他们也修剪应用 分别是元素方式、矢量方式、块方式和组方式的模式。基线。通过逐元素、逐向量和逐块修剪模式获得的模型是稀疏模型,因此使用 cuSPARSE图书馆可以使用cuBLAS库通过一系列过程计算分组。所有实验均在使用FP32的NVIDIA GeForce RTX 2080 Ti GPU上进行。CNN模型中的卷积运算通过im2col方法转换为GEMM。5.2. 结果与分析我们比较了多个模型上的组、元素、向量和块模式的延迟。分组模式的结果列于表5至表7中。图图7到图10显示了本文中介绍的高效组方式与第3.2节中的元素方式、向量方式和块方式三种修剪模式之间的推理时间比较。有效组的数据来自表5至表7,其他模式的数据来自表1至表4。水平轴上的参数数量只是一个近似范围,而不是精确值。例如,25%意味着模型残差参数约为25%,它可能是真实数字的27%或23%。图中显示的数据是第3.3节中的表格和本节中的表5至表7可以可以看出,具有分组模式的推理延迟显著降低。Imagenet数据集上的补充实验如表8所示。表5群体模式推理潜伏期模型参数(%)CIFAR-10数据集。延迟(ms)acc的变化(%)73.840.31−0.25VGG-1649.925.570.200.11+0.05-0.8677.270.78-0.35Y. 刘,J.Sun,J.Liu等人BenchCouncil交易基准,标准和评估2(2022)1000909图第七章 该图显示了 在CIFAR-10和Tiny-ImageNet数据集上使用不同修剪模式的VGG-16模型的推理延迟。图八、 该图显示了 ResNet-18模型在CIFAR-10和Tiny-ImageNet数据集上使用不同修剪模式的推理延迟。图第九章 该图显示了 在CIFAR-10和Tiny-ImageNet数据集上使用不同修剪模式的ViT模型的推理延迟。实验结果表明,在相同的稀疏度下,分组模式比其他稀疏模式具有更短的延迟。分组有效地利用了密集GEMM加速,这使得即使在修剪之后也可以进行快速推理,以获得稀疏模型与密集模型相比,ResNet-18,BERT-base和ViT模型将实现有效的延迟减少。当使用小数据集时,VGG-16的性能较差,但在较大数据集上实现了有效的延迟减少。由于小数据集需要计算的数据较少,因此修剪后减少的计算时间不足以抵消修剪的额外步骤所即便如此,当剩余参数比为25%时,稀疏模型的推理延迟可以等于或小于密集模型的推理延迟。进一步的压缩可以带来更大的加速度。在大多数情况下,修剪模型在大约75%的剩余参数比率下实现与密集模型相似的延迟,并且随着参数数量的继续减少,分组模式的推理延迟将低于密集模型图图11显示了本文中的分组实现与Lebedev在[ 30 ]中的实现之间的推理时间的比较由于[30]只关注卷积层,因此我们以VGG-16模型的卷积层为例进行比较。卷积层的配置设置为512个输入通道,Y. 刘,J.Sun,J.Liu等人BenchCouncil交易基准,标准和评估2(2022)10009010表8当VGG-16模型保留50%的参数时,使用全Imagenet数据集上不同模式的实验数据。参数(%)修剪模式延迟(ms)访问率变化元素方面360.43 −5.29矢量315.82 −8.97区块44.25 −4.13分组5.99 −5.26100密15.67 0.0见图10。该图显示了基于BERT的模型在QQP数据集上使用不同修剪模式的推理延迟。图十三. 卷积运算中分组模式模型的延迟。在该图中,s1、s2、s3和s4分别表示im2col、矩阵连接、乘法和将结果整形为特征图大小步长。测得的批量为64。见 图 11 。 使 用 不 同 实 现 的 卷 积 层 的 不 同 稀 疏 性 的 延 迟 。 ‘Lebedev’s’ is theimplementation in [ 本文见图12。 线性层中分组模式的延迟。在图中,s1、s2对应于分别涉及矩阵连接和乘法步骤。测得的批量为64。512个输出通道,3 × 3卷积核大小,28 × 28输入数据大小和64批大小。可以看出,我们的实现可以进一步有效地减少按组剪枝模式的推理延迟。我们还测量了卷积层和线性层的内部步骤的延迟,如图2所示。12至14,分别。根据图 12至14,潜伏期如图12所示。14比其他人短。在测量内部步骤时,卷积层和线性层被分成多个核函数,因此引入了一些开销。当测量整个层的时间时,只需要等待层的完成。因此,两组数据之间的总时间卷积层的参数设置与图1中的实验设置相同。十一岁线性层的配置:输入通道设置为4096,输出通道为4096,输入数据大小为4096,批量大小为64。上述参数设置也来自VGG-16模型中的一个层。图图14示出,当卷积层和线性层的稀疏度分别为20%和10%左右随着稀疏度的增加,修剪带来的延迟优势变得更加显著。6. 结论在本文中,我们进行了一个经验比较现有的主流修剪模式,包括元素式,向量式,块式和组式模式。在分析了它们的低效性之后,我们提出了一种更高效的基于GPU的分组模式实现方法,该方法使用了现成的GEMM库。实验结果表明,该算法在GPU上的推理延迟远低于其他稀疏模式。与现有的分组方法相比,所提出的优化实现可以进一步提高DNN模型的推理速度。此外,当模型的保留参数小于75%时,我们的分组推理性能可以超过稠密模型。50Y. 刘,J.Sun,J.Liu等人BenchCouncil交易基准,标准和评估2(2022)10009011图14个。分组修剪和密集模型中卷积层和线性层不同稀疏度的延迟。测得的批量为64。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作引用[1]S.希贾济河库马尔角,澳-地Rowen等人,使用卷积神经网络进行图像识别,第9卷,Cadence Design Systems Inc., San Jose,CA,USA,2015.[2]A. Radford,J. Wu,R. Child,D. Luan,D.阿莫代岛Sutskever等人,语言模型是无监督的多任务学习器,OpenAI博客1(8)(2019)9。[3]G. Jain,T.南卡罗来纳州马哈拉夏尔马,西-地Agarwal,H. Kim,TD-DNN:Atime decay-based
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功