计算系统神经网络优化方法及装置与流程

文档序号:35797632发布日期:2023-10-21 23:20阅读:22来源:国知局
计算系统神经网络优化方法及装置与流程

本发明实施例涉及人工智能,具体涉及一种计算系统神经网络优化方法及装置。


背景技术:

1、在计算系统中,通常会包含两个访存速度不同的存储单元,为便于区分,将访存速度较高的存储单元称为高速访存存储单元,将访存速度较低的存储单元称为低速访存存储单元。这里,高速访存存储单元和低速访存存储单元只是用于说明二者的访存速度的高低区分,并不对二者实际的访存速度的具体数值进行限制。

2、在计算系统中包含两个访存速度不同的存储单元时,通常会涉及计算单元和存储单元的协调问题。下面以高速访存存储单元为图形内存缓冲区(graphics memory buffer,gmb),低速访存存储单元为高带宽存储器(high bandwidth memory,hbm)为例进行说明。

3、gmb的访存速度约是hbm的6倍,但空间却很有限。同时,张量数据(tensor)计算单元(spc)和向量数据计算单元(cu)也是算力固定的计算资源。当计算数据量大的时候,计算单元可以充分利用,但数据会被分配到hbm中,导致数据读写成为瓶颈;当计算数据量小的时候,可以利用gmb加速访存,但是计算单元会浪费,不能充分利用,同样造成产出率低。所以选择合适的batch size(批大小,即一次运行的样本数量)很重要。然而,模型中的计算数据量不是恒定的,而是随着计算步骤而有所增减,使得很可能没有很好的batch size可以同时满足访存速度高的存储单元的空间限制又能充分利用计算单元。


技术实现思路

1、针对现有技术存在的缺陷,本发明实施例提供一种计算系统神经网络优化方法及装置。

2、本发明实施例提供一种计算系统神经网络优化方法,包括:所述计算系统包括第一存储单元和第二存储单元,所述第一存储单元的访存速度大于所述第二存储单元的访存速度,包括:以批大小为1,对神经网络进行预编译处理,得到预编译结果;根据所述预编译结果获取所述神经网络的算子的计算数据量,根据所述计算数据量占用所述第一存储单元的存储空间的比例确定所述算子对应的档位区间;其中,所述第一存储单元的存储空间预先划分为多个档位区间;基于同一子网中的算子对应的档位区间相同的原则,根据各个算子的计算顺序将各个算子划分入多个子网;其中,所述子网与所述子网中的算子对应的所述档位区间相同;根据各个所述子网对应的所述档位区间确定各个所述子网的子网批大小,根据所述各个子网的子网批大小确定优化后神经网络的整网批大小,根据所述整网批大小和所述子网批大小确定各个子网的重复运行次数;其中,对于所述计算数据量不超出所述第一存储单元的存储上限的算子,在基于对应子网的所述子网批大小和所述重复运行次数运行时,计算数据量仍然不超出所述第一存储单元的存储上限;按照各个子网的所述子网批大小和所述重复运行次数以及子网间的数据连接关系,将各个子网前后连接起来组成所述优化后神经网络;其中,所述优化后神经网络基于所述整网批大小编译运行。

3、根据本发明实施例提供的一种计算系统神经网络优化方法,所述根据各个所述子网对应的所述档位区间确定各个所述子网的子网批大小,包括:将所述子网的子网批大小设置为所述子网对应的所述档位区间的上限的倒数;所述根据所述各个子网的子网批大小确定优化后神经网络的整网批大小,包括:通过计算各个所述子网的子网批大小的最小公倍数确定优化后神经网络的整网批大小;所述根据所述整网批大小和所述子网批大小确定各个子网的重复运行次数,包括:通过计算所述优化后神经网络的所述整网批大小与所述子网的所述子网批大小的比值确定所述子网的所述重复运行次数。

4、根据本发明实施例提供的一种计算系统神经网络优化方法,所述基于同一子网中的算子对应的档位区间相同的原则,根据各个算子的计算顺序将各个算子划分入多个子网,包括:将对应同一所述档位区间的连续算子划归到一个子网;响应于存在包含未划归到子网的算子的区段,从与子网相邻的算子开始对所述区段中的算子进行遍历;对于每个当前遍历的算子,获取所述算子划归到临近的档位区间最接近的子网后所述算子占用所述第二存储空间的第一存储量,并获取所述算子单独作为一个子网占用所述第二存储空间的第二存储量;其中,所述算子划归到临近的档位区间最接近的子网后,所述算子遵循所述子网的所述子网批大小和所述重复运行次数;响应于所述第一存储量小于所述第二存储量,则将所述算子划归到临近的档位区间最接近的子网。

5、根据本发明实施例提供的一种计算系统神经网络优化方法,所述方法还包括:对于每个当前遍历的算子,响应于存在两个与所述算子临近的具备相同档位区间的子网,则任选其一作为所述临近的档位区间最接近的子网;在将所述算子划归到临近的档位区间最接近的子网后,合并相邻的具备相同档位区间的子网。

6、根据本发明实施例提供的一种计算系统神经网络优化方法,所述方法还包括:若下式成立,则将算子划归到临近的档位区间最接近的子网,若下式不成立,则将算子作为独立的子网:

7、q×bn-sgmb<(qhbm+out)×bn

8、其中,q表示算子的运算量总量,bn表示与算子临近的档位区间最接近的子网的所述子网批大小,sgmb表示算子运算量占用所述第一存储单元的大小,qhbm表示算子运算量占用第二存储空间的大小,out表示算子的输出占用第一存储空间的大小。

9、根据本发明实施例提供的一种计算系统神经网络优化方法,所述方法还包括:响应于存在批大小为1时占用所述第一存储单元的存储量超过所述第一存储单元的存储上限的算子,若所述算子不构成单独的子网,则将所述算子拆分为多步计算,使得所述算子所在的子网形成多个子子网,并将多个子子网顺序拼接为新的子网;其中,拆分后算子每步的计算量不超过所述第一存储单元的存储上限。

10、本发明实施例还提供一种计算系统神经网络优化装置,包括:所述计算系统包括第一存储单元和第二存储单元,所述第一存储单元的访存速度大于所述第二存储单元的访存速度,所述装置包括:预编译模块,用于:以批大小为1,对神经网络进行预编译处理,得到预编译结果;档位划分模块,用于:根据所述预编译结果获取所述神经网络的算子的计算数据量,根据所述计算数据量占用所述第一存储单元的存储空间的比例确定所述算子对应的档位区间;其中,所述第一存储单元的存储空间预先划分为多个档位区间;子网划分模块,用于:基于同一子网中的算子对应的档位区间相同的原则,根据各个算子的计算顺序将各个算子划分入多个子网;其中,所述子网与所述子网中的算子对应的所述档位区间相同;参数确定模块,用于:根据各个所述子网对应的所述档位区间确定各个所述子网的子网批大小,根据所述各个子网的子网批大小确定优化后神经网络的整网批大小,根据所述整网批大小和所述子网批大小确定各个子网的重复运行次数;其中,对于所述计算数据量不超出所述第一存储单元的存储上限的算子,在基于对应子网的所述子网批大小和所述重复运行次数运行时,计算数据量仍然不超出所述第一存储单元的存储上限;神经网络优化模块,用于:按照各个子网的所述子网批大小和所述重复运行次数以及子网间的数据连接关系,将各个子网前后连接起来组成所述优化后神经网络;其中,所述优化后神经网络基于所述整网批大小编译运行。

11、本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述计算系统神经网络优化方法的步骤。

12、本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述计算系统神经网络优化方法的步骤。

13、本发明实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述计算系统神经网络优化方法的步骤。

14、本发明实施例提供的计算系统神经网络优化方法及装置,通过根据神经网络的预编译结果得到算子的计算数据量,根据计算数据量占用第一存储单元的存储空间的比例确定算子对应的档位区间,根据算子对应的档位区间将各个算子划分入多个子网,根据各个子网对应的档位区间确定各个子网的子网批大小,根据各个子网的子网批大小确定优化后神经网络的整网批大小,根据整网批大小和子网批大小确定各个子网的重复运行次数,对于计算数据量不超出第一存储单元的存储上限的算子,在基于对应子网的子网批大小和重复运行次数运行时,计算数据量仍然不超出第一存储单元的存储上限,按照各个子网的子网批大小和重复运行次数以及子网间的数据连接关系,将各个子网前后连接起来组成优化后神经网络,同时满足了高速内存的空间限制和计算单元的充分利用的要求,在实现高速存储的前提下提高了计算速度,优化了计算系统的存储和计算性能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1