基于神经网络反向传播的硬件加速器数据流设计优化方法与流程

文档序号:34720314发布日期:2023-07-07 17:51阅读:77来源:国知局
基于神经网络反向传播的硬件加速器数据流设计优化方法与流程

本发明涉及神经网络应用,硬件加速器优化设计,尤其涉及基于神经网络反向传播的硬件加速器数据流设计优化方法。


背景技术:

1、深度神经网络(dnn)在许多领域取得了显著突破,如视觉和语言、自动驾驶和生物科学。然而,指数级增长的模型大小通常会增加dnn应用程序的延迟和能耗。与通用硬件处理器相比,dnn加速器在执行dnn时可以实现更高的效率和更低的能量。这是通过设计更合适的微架构和优化dnn的硬件映射策略(称为数据流)来实现的,包括执行dnn层计算的顺序以及这些计算如何映射到硬件资源(例如,处理元件和存储器)。

2、设计数据流以实现最佳的片上性能和效率是一项基本但繁琐且具有挑战性的任务。但现有的dnn加速器通常过于专业化,数据流设计不足,阻碍了dnn执行的通用化和效率。


技术实现思路

1、为了减轻设计数据流时的人工工作量,也为了能够为dnn应用设计更好的数据流,本发明的目的在于提出基于神经网络反向传播的硬件加速器数据流设计优化方法。

2、为了实现上述发明目的,本发明的技术方案如下。

3、第一方面,一种基于神经网络反向传播的硬件加速器数据流设计优化方法,所述方法包括下述步骤:

4、将硬件加速器数据流及其伴随的dnn层配置采用编码表示,获取初始数据流代码;

5、将训练好的神经网络预测器的权重固定,将初始数据流代码输入训练好的神经网络预测器,根据设置的目标性能指标,执行可微分的反向传播来搜索优化的数据流代码;

6、所述神经网络预测器采用神经网络模型建立,用于评估所有采样的硬件加速器数据流及其伴随的dnn层配置性能,并形成了具有统一输入的数据集编码表示和性能度量输出。

7、在上述技术方案中,dnn层配置对七个维度进行编码表示,需要编码表示的七个维度分别是输入行/列(y/x)、滤波器行/列(r/s)、输出/输入通道(k/c)和描述dnn层类型的额外维度(t)。

8、在上述技术方案中,硬件加速器数据流的编码格式为(m,n,2),共m×n×2维;

9、m表示设定的硬件加速器的内存级别数,n表示dnn层配置维度数,“2”表示dnn加速器各部分上的编码具有2个方面,一个表示索引相应维度的数字,另一个是索引相应维度对应的伴随数字;

10、索引维度包括输入行/列(y/x)、滤波器行/列(r/s)、输出/输入通道(k/c)。

11、在上述技术方案中,硬件加速器数据流的编码的第一维为选择的要展开并执行并行计算的并行维度,其余维度是通过按计算顺序重新排序的维度;并行维度的伴随数字指定将分配处理单元的数量(pe,processing element)来执行并行计算,其余六个维度的伴随数量决定了它们的分区大小。

12、在上述技术方案中,神经网络预测器采用的神经网络模型为mobilenet-v2,resnet101或vision transformer(vit)。

13、在上述技术方案中,对于每个dnn层,随机采样2000个数据流。

14、在上述技术方案中,预测器的训练方法包括有监督、半监督与无监督学习的方式。

15、在上述技术方案中,目标性能指标包括单层/多层的延迟(latency)、能量(energy)、功率(power)。

16、第二方面,本发明提出一种基于神经网络反向传播的硬件加速器数据流设计优化装置,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行上述任一种方法的计算机程序。

17、第三方面,本发明提出一种计算机可读存储介质,存储有能够被处理器加载并执行上述任一种方法的计算机程序。

18、本发明的技术效果在于:

19、(1)与先前的工作不同,本发明使用编码方案将数据流和dnn层配置转换为统一的编码表示,从而实现一种数据流代码传播(dcp,data stream code propagation),并构建数据流设计的巨大编码空间。通过利用这种编码方案,使用统一代码的输入和相应评估度量(例如,延迟(latency)、能量(energy)、功率(power)等)的输出来构建基准,从而加快满足优化目标的数据流搜索获取。

20、(2)本发明是第一个在数据流优化中利用可微反向传播的技术方案,通过反向传播神经网络预测器的梯度,以在广阔的设计空间中有效地更新数据流代码,以实现期望的优化目标。

21、(3)大量实验也验证了数据流代码传播的通用性与数据效率,可通过在可见和不可见硬件配置的各种dnn中为许多优化目标(例如,单层/多层的延迟/能量/统计校验力)定制数据流。



技术特征:

1.一种基于神经网络反向传播的硬件加速器数据流设计优化方法,其特征在于,所述方法包括下述步骤:

2.根据权利要求1所述的方法,其特征在于,dnn层配置对七个维度进行编码表示,需要编码表示的七个维度分别是输入行/列(y/x)、滤波器行/列(r/s)、输出/输入通道(k/c)和描述dnn层类型的额外维度(t)。

3.根据权利要求1所述的方法,其特征在于,硬件加速器数据流的编码格式为(m,n,2),共m×n×2维;

4.根据权利要求3所述的方法,其特征在于,硬件加速器数据流的编码的第一维为选择的要展开并执行并行计算的并行维度,其余维度是通过按计算顺序重新排序的维度;并行维度的伴随数字指定将分配处理单元的数量(pe,processing element)来执行并行计算,其余六个维度的伴随数量决定了它们的分区大小。

5.根据权利要求1所述的方法,其特征在于,神经网络预测器采用的神经网络模型为mobilenet-v2,resnet101或vision transformer(vit)。

6.根据权利要求1所述的方法,其特征在于,对于每个dnn层,随机采样2000个数据流。

7.根据权利要求1所述的方法,其特征在于,预测器的训练方法包括有监督、半监督与无监督学习的方式。

8.根据权利要求1所述的方法,其特征在于,目标性能指标包括单层/多层的延迟(1atency)、能量(energy)、功率(power)。

9.一种基于神经网络反向传播的硬件加速器数据流设计优化装置,其特征在于:包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如权利要求1至8中任一种方法的计算机程序。

10.一种计算机可读存储介质,其特征在于:存储有能够被处理器加载并执行如权利要求1至8中任一种方法的计算机程序。


技术总结
本发明涉及一种基于神经网络反向传播的硬件加速器数据流设计优化方法,属于神经网络应用中的硬件加速器优化设计,用于减轻设计数据流时的人工工作量。技术方案具体为:将硬件加速器数据流及其伴随的DNN层配置采用编码表示,获取初始数据流代码;将训练好的神经网络预测器的权重固定,将初始数据流代码输入训练好的神经网络预测器,根据设置的目标性能指标,执行可微分的反向传播来搜索优化的数据流代码;所述神经网络预测器采用神经网络模型建立,能够评估所有采样的硬件加速器数据流及其伴随的DNN层配置性能,并形成了具有统一输入的数据集编码表示和性能度量输出。

技术研发人员:许鹏,邵文琪,丁明宇,罗平,乔宇
受保护的技术使用者:上海人工智能创新中心
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1