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

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

【技术实现步骤摘要】
基于神经网络反向传播的硬件加速器数据流设计优化方法


[0001]本专利技术涉及神经网络应用,硬件加速器优化设计,尤其涉及基于神经网络反向传播的硬件加速器数据流设计优化方法。

技术介绍

[0002]深度神经网络(DNN)在许多领域取得了显著突破,如视觉和语言、自动驾驶和生物科学。然而,指数级增长的模型大小通常会增加DNN应用程序的延迟和能耗。与通用硬件处理器相比,DNN加速器在执行DNN时可以实现更高的效率和更低的能量。这是通过设计更合适的微架构和优化DNN的硬件映射策略(称为数据流)来实现的,包括执行DNN层计算的顺序以及这些计算如何映射到硬件资源(例如,处理元件和存储器)。
[0003]设计数据流以实现最佳的片上性能和效率是一项基本但繁琐且具有挑战性的任务。但现有的DNN加速器通常过于专业化,数据流设计不足,阻碍了DNN执行的通用化和效率。

技术实现思路

[0004]为了减轻设计数据流时的人工工作量,也为了能够为DNN应用设计更好的数据流,本专利技术的目的在于提出基于神经网络反向传播的硬件加速器数据流设计优化方法。
[0005]为了实现上述专利技术目的,本专利技术的技术方案如下。
[0006]第一方面,一种基于神经网络反向传播的硬件加速器数据流设计优化方法,所述方法包括下述步骤:
[0007]将硬件加速器数据流及其伴随的DNN层配置采用编码表示,获取初始数据流代码;
[0008]将训练好的神经网络预测器的权重固定,将初始数据流代码输入训练好的神经网络预测器,根据设置的目标性能指标,执行可微分的反向传播来搜索优化的数据流代码;
[0009]所述神经网络预测器采用神经网络模型建立,用于评估所有采样的硬件加速器数据流及其伴随的DNN层配置性能,并形成了具有统一输入的数据集编码表示和性能度量输出。
[0010]在上述技术方案中,DNN层配置对七个维度进行编码表示,需要编码表示的七个维度分别是输入行/列(Y/X)、滤波器行/列(R/S)、输出/输入通道(K/C)和描述DNN层类型的额外维度(T)。
[0011]在上述技术方案中,硬件加速器数据流的编码格式为(M,N,2),共M
×
N
×
2维;
[0012]M表示设定的硬件加速器的内存级别数,N表示DNN层配置维度数,“2”表示DNN加速器各部分上的编码具有2个方面,一个表示索引相应维度的数字,另一个是索引相应维度对应的伴随数字;
[0013]索引维度包括输入行/列(Y/X)、滤波器行/列(R/S)、输出/输入通道(K/C)。
[0014]在上述技术方案中,硬件加速器数据流的编码的第一维为选择的要展开并执行并行计算的并行维度,其余维度是通过按计算顺序重新排序的维度;并行维度的伴随数字指
定将分配处理单元的数量(PE,Processing Element)来执行并行计算,其余六个维度的伴随数量决定了它们的分区大小。
[0015]在上述技术方案中,神经网络预测器采用的神经网络模型为MobileNet

V2,ResNet101或Vision Transformer(ViT)。
[0016]在上述技术方案中,对于每个DNN层,随机采样2000个数据流。
[0017]在上述技术方案中,预测器的训练方法包括有监督、半监督与无监督学习的方式。
[0018]在上述技术方案中,目标性能指标包括单层/多层的延迟(latency)、能量(energy)、功率(power)。
[0019]第二方面,本专利技术提出一种基于神经网络反向传播的硬件加速器数据流设计优化装置,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行上述任一种方法的计算机程序。
[0020]第三方面,本专利技术提出一种计算机可读存储介质,存储有能够被处理器加载并执行上述任一种方法的计算机程序。
[0021]本专利技术的技术效果在于:
[0022](1)与先前的工作不同,本专利技术使用编码方案将数据流和DNN层配置转换为统一的编码表示,从而实现一种数据流代码传播(DCP,Data stream code propagation),并构建数据流设计的巨大编码空间。通过利用这种编码方案,使用统一代码的输入和相应评估度量(例如,延迟(latency)、能量(energy)、功率(power)等)的输出来构建基准,从而加快满足优化目标的数据流搜索获取。
[0023](2)本专利技术是第一个在数据流优化中利用可微反向传播的技术方案,通过反向传播神经网络预测器的梯度,以在广阔的设计空间中有效地更新数据流代码,以实现期望的优化目标。
[0024](3)大量实验也验证了数据流代码传播的通用性与数据效率,可通过在可见和不可见硬件配置的各种DNN中为许多优化目标(例如,单层/多层的延迟/能量/统计校验力)定制数据流。
附图说明
[0025]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0026]图1、一种具体实施方式中的DCP编码策略示意图;
[0027]图2、一种具体实施方式中的DCP(数据流代码传播)方法概述示意图;
[0028]图3、一种具体实施方式中的DCP神经网络预测器性能示意图;
[0029]图4、一种具体实施方式中的DCP性能与搜索耗时。
具体实施方式
[0030]在设计DNN加速器时,应考虑几个组件。这些组件也构成了DNN加速器的设计空间,包括数据流、硬件资源、特定电路设计等。为了为目标应用设计高效的专用DNN加速器,已经
提出了许多工作来探索DNN加速器设计空间。例如,Apollo是一个基于利用集成电路(IC)设计知识提取的特征来优化DNN加速器的框架。
[0031]由于数据流是DNN加速器设计空间的重要组成部分,本专利技术方法可广泛地归为DNN加速器的设计空间探索方法。一层DNN网络的数据流设计空间的大小就是10
36
,现有常规研究数据流设计的搜索技术,比如穷举搜索、强化学习和遗传算法,很难处理巨大的数据流设计空间。为了应对这一挑战,大多数设计的选择是缩小设计空间,但这样将导致次优设计。
[0032]为了在广阔的设计空间中高效地搜索最佳数据流,本专利技术提出了数据流代码传播方法,通过可微的方式有效地搜索DNN加速器的最优数据流(方法流程如图1所示)。为了实现这一目标,首先对数据流参数和DNN层配置转换为统一的编码表示,并构建数据流设计的编码空间,通过利用这种编码方案,使用统一代码输入和相应评估度量的输出构建基准。然后,在给定数据流和DNN层配置的情况下,训练神经网络预测器将统一代码投射到相应的评估度量中。最后,在设定目标下,通过反向传播梯度来搜索所述DNN层配置本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于神经网络反向传播的硬件加速器数据流设计优化方法,其特征在于,所述方法包括下述步骤:将硬件加速器数据流及其伴随的DNN层配置采用编码表示,获取初始数据流代码;将训练好的神经网络预测器的权重固定,将初始数据流代码输入训练好的神经网络预测器,根据设置的目标性能指标,执行可微分的反向传播来搜索优化的数据流代码;所述神经网络预测器采用神经网络模型建立,用于评估所有采样的硬件加速器数据流及其伴随的DNN层配置性能,并形成了具有统一输入的数据集编码表示和性能度量输出。2.根据权利要求1所述的方法,其特征在于,DNN层配置对七个维度进行编码表示,需要编码表示的七个维度分别是输入行/列(Y/X)、滤波器行/列(R/S)、输出/输入通道(K/C)和描述DNN层类型的额外维度(T)。3.根据权利要求1所述的方法,其特征在于,硬件加速器数据流的编码格式为(M,N,2),共M
×
N
×
2维;M表示设定的硬件加速器的内存级别数,N表示DNN层配置维度数,“2”表示DNN加速器各部分上的编码具有2个方面,一个表示索引相应维度的数字,另一个是索引相应维度对应的伴随数字;索引维度包括输入行/列(Y/X)、滤波器行/列(R/S)、输出/输入通道(K/C)。4.根据...

【专利技术属性】
技术研发人员:许鹏邵文琪丁明宇罗平乔宇
申请(专利权)人:上海人工智能创新中心
类型:发明
国别省市:

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

1