System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于GPU的稀疏深度神经网络的推理加速方法技术_技高网

一种基于GPU的稀疏深度神经网络的推理加速方法技术

技术编号:40474631 阅读:8 留言:0更新日期:2024-02-26 19:11
本发明专利技术提供一种基于GPU的稀疏深度神经网络的推理加速方法,用于加速所述稀疏深度神经网络对待处理数据的推理过程,所述GPU包括全局内存,所述稀疏深度神经网络包括多层网络层,所述全局内存中存储来自CPU传输的所述稀疏深度神经网络的网络层权重参数,所述方法包括:S1、基于所述全局内存大小、所述待处理数据整体所需内存大小和单层网络层权重参数所需大小,按照预设的分块规则对所述待处理数据进行分块处理得到分块数据,以使每个分块数据均能被完整的存储于全局内存中;S2、将每个分块数据与所述全局内存中存储的网络层权重参数进行计算,直至每个分块数据与所述稀疏深度神经网络的每一网络层权重参数完成计算。

【技术实现步骤摘要】

本专利技术涉及深度学习领域,具体来说,涉及深度学习领域中的稀疏深度神经网络的推理加速技术,更具体地说,涉及基于gpu对稀疏深度神经网络的推理加速技术,即一种基于gpu的稀疏深度神经网络的推理加速方法。


技术介绍

1、深度神经网络(deep neural network,dnn)因其自身强大的数据挖掘及模式分析能力在自然语言处理、自动驾驶、图像增强等多个领域中被广泛应用,并取得了优秀的效果。为了提高深度神经网络模型的准确度,研究人员不断增加深度神经网络模型的参数量,随之涌现了一批参数量破亿的大型深度神经网络模型。例如,生成式预训练转换器-3(generative pre-trained transformer-3,简称gpt-3)模型,包含1750亿参数。又如,双向编码表示转换器(bidirectional encoder representation from transformers,简称bert)模型,包含3.4亿参数。虽然通过增加深度神经网络模型的参数量能够提升模型准确度,但是参数量大幅增加后的深度神经网络模型对计算和存储资源的极高需求导致设备成本和能耗开销大幅提升。

2、为了降本节能,有研究人员提出可以对大型深度神经网络模型中的权重参数进行剪枝处理以减少大型深度神经网络模型中的权重参数量和计算量,同时尽量保证大型深度神经网络模型的性能不受影响。虽然剪枝处理能够在一定程度上减少大型深度神经网络模型中权重参数量,但是剪枝处理后得到的稀疏深度神经网络模型的参数量仍十分巨大,这意味着,稀疏深度神经网络模型在执行推理任务时仍会有大量的权重参数参与计算。以一个具有l层网络层的稀疏深度神经网络模型为例简单说明模型中单层网络层权重的计算过程,若该模型的激活函数采用最常用的修正线性单元(rectified linear unit,relu)函数,则稀疏深度神经网络模型第l层网络层的计算过程可以表示为yl+1=relu(yl×wl+b),其中,yl+1表示第l层网络层输出数据,yl表示第l层网络层输入数据,输入数据与输出数据均为稠密矩阵;wl表示第l层网络层权重参数,其为稀疏矩阵;b为偏置矩阵,通常为常量矩阵。根据计算过程可知,稀疏深度神经网络模型的核心计算为稀疏-稠密矩阵乘法(sparsedense matrix multiplication,spmm)的计算过程。

3、由于剪枝处理后得到的稀疏深度神经网络模型的参数量仍十分巨大,因此在采用稀疏深度神经网络模型执行推理任务时,通常会采用图形处理单元(gpu)为稀疏深度神经网络模型加速,即通过提升稀疏-稠密矩阵乘法的计算过程以实现稀疏深度神经网络模型的推理加速。之所以采用图形处理单元提升稀疏深度神经网络模型推理过程的运行速度,是因为图形处理单元具有强大的并行处理能力和浮点运算能力。图形处理单元(gpu)中的流多处理器(streaming multiprocessor,sm)负责以线程束为单位调度执行计算任务,其中包含的计算资源为标量计算核心和张量核心(tensor core),标量计算核心可以并行执行不同精度的标量计算,张量核心支持直接计算特定尺寸的矩阵乘法。

4、为了提升稀疏深度神经网络模型推理过程的运行速度,现有技术通常从以下几个方面设置基于gpu架构的稀疏深度神经网络的推理加速方案:(1)存储格式优化,即设计新型的稀疏矩阵存储格式,通过以行或列为单位对非零元素进行压缩,并通过数据切分保证图形处理单元(gpu)各线程块之间的负载均衡;(2)并行模式选择,针对稀疏-稠密矩阵乘法(spmm)中的三重循环设计并行模式优化空间,并通过性能模型和实际运行数据测试结合的方式选择最优的并行方案;(3)利用新型计算资源,在对稀疏矩阵进行初等行列变换使其局部稠密化的基础上,利用张量核心计算稠密部分的矩阵乘法;(4)输入数据及网络层权重参数划分,将输入数据分块分批次传输给图形处理单元(gpu),以及将稀疏深度神经网络的网络层权重参数通过异步传输的方式传输给图形处理单元(gpu)。

5、虽然现有技术提出的方案能够提升稀疏深度神经网络模型推理过程的运行速度,但是现有技术所提出的方案通常都是面向高端数据中心类型的图形处理单元(gpu),无法与资源受限的低端图形处理单元(gpu)适配,因此当稀疏深度神经网络在资源受限的低端图形处理单元(gpu)上运行时会出现存储溢出、运行速度低、运行吞吐量低等情况。


技术实现思路

1、因此,本专利技术的目的在于克服上述现有技术的缺陷,提供一种基于gpu的稀疏深度神经网络的推理加速方法和一种基于gpu的稀疏深度神经网络的推理加速装置。

2、本专利技术的目的是通过以下技术方案实现的。

3、根据本专利技术的第一方面,提供一种基于gpu的稀疏深度神经网络的推理加速方法,用于加速所述稀疏深度神经网络对待处理数据的推理过程,所述gpu包括全局内存,所述稀疏深度神经网络包括多层网络层,所述全局内存中存储来自cpu传输的所述稀疏深度神经网络的网络层权重参数,所述方法包括:s1、基于所述全局内存大小、所述待处理数据整体所需内存大小和单层网络层权重参数所需大小,按照预设的分块规则对所述待处理数据进行分块处理得到分块数据,以使每个分块数据均能被完整的存储于全局内存中;s2、将每个分块数据与所述全局内存中存储的网络层权重参数进行计算,直至每个分块数据与所述稀疏深度神经网络的每一网络层权重参数完成计算。

4、在本专利技术的一些实施例中,所述全局内存中设置有第一缓冲区和第二缓冲区,分别存储其对应预设层数的网络层权重参数,其中,第一缓冲区和第二缓冲区均被配置为按照如下方式存储网络层权重参数:当前缓冲区内存储的所有网络层权重参数均与当前参与计算的分块数据完成计算后,另一缓冲区内存储的所有网络层权重参数继续与当前参与计算的分块数据与当前缓冲区内存储的所有网络层权重参数计算后的中间结果进行计算,当前缓冲区重新存储由cpu传输的其他未参与计算的网络层权重参数。

5、在本专利技术的一些实施例中,所述预设层数为1。

6、在本专利技术的一些实施例中,每个缓冲区对应预设层数通过如下方式确定:

7、

8、nl≥1

9、fb=f

10、其中,nl表示每一缓冲区中存储的网络层层数,tl表示cpu传输单层网络层的权重参数至gpu的时间,t0表示行向量数为f0的数据与单层网络层权重参数的计算时间,fb表示分块数据的行向量数。

11、在本专利技术的一些实施例中,当所述第一缓冲区与第二缓冲区对应预设层数之和小于所述稀疏深度神经网络的网络层数时,每一缓冲区按照如下方式计算该缓冲区重新存储的网络层层数:

12、

13、

14、其中,l-1表示当前缓冲区内存储的最后一层网络层的编号,l表示另一个缓冲区内存储的第一层网络层的编号,fl-1表示输入当前缓冲区内第l-1层网络层数据的非零行向量,fl表示输入另一缓冲区内第l层网络层数据的非零行向量,tl-1表示非零本文档来自技高网...

【技术保护点】

1.一种基于GPU的稀疏深度神经网络的推理加速方法,用于加速所述稀疏深度神经网络对待处理数据的推理过程,所述GPU包括全局内存,所述稀疏深度神经网络包括多层网络层,其特征在于,所述全局内存中存储来自CPU传输的所述稀疏深度神经网络的网络层权重参数,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述全局内存中设置有第一缓冲区和第二缓冲区,分别存储其对应预设层数的网络层权重参数,其中,第一缓冲区和第二缓冲区均被配置为按照如下方式存储网络层权重参数:

3.根据权利要求2所述的方法,其特征在于,所述预设层数为1。

4.根据权利要求2所述的方法,其特征在于,每个缓冲区对应预设层数通过如下方式确定:

5.根据权利要求4所述的方法,其特征在于,当所述第一缓冲区与第二缓冲区对应预设层数之和小于所述稀疏深度神经网络的网络层数时,每一缓冲区按照如下方式计算该缓冲区重新存储的网络层层数:

6.根据权利要求2所述的方法,其特征在于,在所述步骤S1中,当待处理数据整体所需内存大小、两个单层网络层权重参数以块压缩矩阵列格式存储的内存大小之和大于或等于GPU全局内存大小时,按照预设的分块规则对待处理数据进行分块处理。

7.根据权利要求6所述的方法,其特征在于,所述预设的分块规则为:

8.根据权利要求2所述的方法,其特征在于,所述GPU包括标量计算核心和张量核心,所述标量计算核心和张量核心被配置为:

9.一种基于GPU的稀疏深度神经网络的推理加速装置,所述稀疏深度神经网络包括多层网络层,其特征在于,所述装置包括输入设备、通信总线、存储器、CPU、GPU和输出设备,其中:

10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序可被处理器执行以实现权利要求1至8任一所述方法的步骤。

11.一种电子设备,其特征在于,包括:

...

【技术特征摘要】

1.一种基于gpu的稀疏深度神经网络的推理加速方法,用于加速所述稀疏深度神经网络对待处理数据的推理过程,所述gpu包括全局内存,所述稀疏深度神经网络包括多层网络层,其特征在于,所述全局内存中存储来自cpu传输的所述稀疏深度神经网络的网络层权重参数,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述全局内存中设置有第一缓冲区和第二缓冲区,分别存储其对应预设层数的网络层权重参数,其中,第一缓冲区和第二缓冲区均被配置为按照如下方式存储网络层权重参数:

3.根据权利要求2所述的方法,其特征在于,所述预设层数为1。

4.根据权利要求2所述的方法,其特征在于,每个缓冲区对应预设层数通过如下方式确定:

5.根据权利要求4所述的方法,其特征在于,当所述第一缓冲区与第二缓冲区对应预设层数之和小于所述稀疏深度神经网络的网络层数时,每一缓冲区按照如下方式计算该缓冲区重新存储的网络层层数...

【专利技术属性】
技术研发人员:敦明张旭曹华伟张园叶笑春
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1