本发明涉及计算机科学人工智能领域,尤其涉及一种面向dnn模型的模式感知的自动化sdk存算一体映射方法。
背景技术:
1、深度神经网络是人工智能领域中的一种重要模型,在计算机视觉、自然语言处理等领域中应用十分广泛。为了增强网络模型的表达能力,深度神经网络的规模不断扩大,计算复杂度也随之升高,需要大量的计算资源进行训练和推理。在传统的冯·诺依曼架构上执行大型模型推理时,权重参数的访问涉及大量的存储器和处理器之间的数据移动,对计算延迟和能耗产生了巨大影响。最近,存内计算架构正在成为深度神经网络推理的理想选择。与冯·诺依曼架构不同,存内计算架构将存储器和处理器集成在一起,消除了推理过程中权重移动的需要,能显著地减少系统能耗开销和计算延迟。而权重映射方法会很大程度上影响计算周期数进而影响系统的能耗和延迟,因此优化卷积权重的映射方法十分重要。
2、图像转列是一种常用的卷积权重映射方法,它将卷积核展开为列向量,映射到交叉横杆阵列的列上,然而图像转列方法的计算周期数较高,带来较大的推理延迟。最近一项研究提出了名为“移位和复制内核(shift and duplicate kernel,sdk)”的权重映射方法,通过将复制的内核移位到空闲列来对输入特征进行重用,加快了计算速度。然而,粗粒度的移位和复制内核使现有的sdk映射算法出现过多的空闲单元,无法充分利用计算资源。因此,如何设计对sdk方法的优化,实现高利用率、低能耗、低延迟的卷积权重映射是一个挑战。
技术实现思路
1、本发明的目的在于针对现有技术的不足,提供一种面向dnn模型的模式感知的自动化sdk存算一体映射方法。
2、本发明的目的是通过以下技术方案来实现的:一种面向dnn模型的模式感知的自动化sdk存算一体映射方法,包括以下步骤:
3、获取dnn模型中每一层网络层的结构信息和输入特征图信息作为状态信息;
4、根据所述状态信息,将每一层的输入特征图划分为角落、边界、中心三种区域,为三种区域匹配对应的映射模式;
5、对于所述中心区域,构建强化学习模型,以最优的中心区域映射模式作为学习目标,以系统的实际crossbar利用率、延迟、能耗作为反馈指标,基于强化学习进行若干批次迭代配置,最终为中心区域选定最优映射模式;
6、获取角落区域、边界区域和经强化学习优化后的中心区域映射模式,确定最终的基于模式感知的自动化sdk存算一体映射方法。
7、进一步地,所述每一层网络层的结构信息包括:网络层编号、网络层类型、输入通道数、卷积核边长、输出通道数、卷积步长、网络层权重参数总量、上一网络层的动作;所述输入特征图信息包括:输入特征图的宽、高、面积和填充。
8、进一步地,所述角落区域计算次数表示为:
9、
10、其中i,j表示输入特征图上第i行j列的位置,s是卷积步长,k是卷积核大小;
11、所述边界区域计算次数表示为:
12、
13、
14、其中i,j表示输入特征图上第i行j列的位置,s是卷积步长,k是卷积核大小,p为补零数量,w,h为输入特征图的宽和高;
15、所述中心区域计算次数表示为:
16、
17、其中i,j表示输入特征图上第i行j列的位置,s是卷积步长,k是卷积核大小,p为补零数量,w,h为输入特征图的宽和高;
18、所述为三种区域匹配对应的映射模式,计算公式为:
19、
20、其中i,j表示输入特征图上第i行j列的位置,s是卷积步长,k是卷积核大小,p为补零数量,w,h为输入特征图的宽和高。
21、进一步地,所述强化学习模型具体包括以下步骤:
22、在每个批次中,每次迭代以当前网络层和输入特征图的结构信息作为输入,通过强化学习模型从环境中学习有价值的信息并在每一步输出动作影响环境;所述动作为中心区域并行窗口的拆分并行策略;全部迭代完毕后输出动作策略;全部迭代完毕后环境会根据动作策略的表现给予奖励;获取强化学习模型的损失值作为损失函数进行优化训练网络参数;更新强化学习模型参数;奖励函数为由归一化的crossbar利用率u、系统延迟l、系统能耗e组成的多项式;最后一个批次输出的动作策略即为最终的中心区域并行窗口的拆分并行策略。
23、进一步地,所述奖励函数表示为:
24、r=u+αl+βe
25、其中,α和β是两个超参数,用于调整计算延迟和系统能耗对奖励的影响。
26、进一步地,在每次迭代中,还包括将状态、动作、奖励的组合记作一次经验样本并存储至经验池中。
27、进一步地,前若干个批次为热身阶段,动作随机产生。
28、进一步地,在每个批次的迭代配置中,全部迭代完毕后,会从经验池中采样出一批样本数据,对强化学习模型进行训练优化。
29、进一步地,所述环境通过存内计算加速器的仿真器实现,所述仿真器接收强化学习模型输出的动作策略,执行dnn模型到reram crossbar的映射和推理过程,收集利用率、延迟、能耗性能数据进行反馈。
30、本发明还提供一种面向dnn模型的模式感知的自动化sdk存算一体映射装置,用于实现上述面向dnn模型的模式感知的自动化sdk存算一体映射方法,包括:
31、数据获取模块,用于获取dnn模型的每一网络层的结构信息和输入特征图的特征信息;
32、模式区分模块,用于区分角落、边界、中心三种区域;
33、强化学习模块,构建强化学习模型,以最优的中心区域映射模式作为学习目标,基于强化学习进行若干批次迭代配置:
34、在每个批次中,每次迭代以当前网络层和输入特征图的结构信息作为输入,通过强化学习模型从环境中学习有价值的信息并在每一步输出动作影响环境;所述动作为中心区域并行窗口的拆分并行策略;全部迭代完毕后输出动作策略;全部迭代完毕后环境会根据动作策略的表现给予奖励;获取强化学习模型的损失值作为损失函数进行优化训练网络参数;更新强化学习模型参数;奖励函数为由归一化的crossbar利用率u、系统延迟l、能耗e组成的多项式;最后一个批次输出的动作策略即为最终的中心区域并行窗口的拆分并行策略;
35、模拟器,负责接收强化学习模块传递的动作策略,执行dnn模型到reram crossbar的映射和推理过程,收集利用率、延迟、能耗数据进行反馈。
36、本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行强化学习模块实现上述方法的步骤。
37、本发明的有益效果是,本发明面向基于reram的存算一体架构,分析模型输入特征图中不同位置计算次数的差异与reram映射间的关系,提出模式感知的分区映射思想;具体来说,首先根据特征信息将输入特征图分为角落、边界、中心三种区域执行不同的映射模式;其次使用强化学习算法自动化实现中心区域内的进一步优化,在不影响模型精度的情况下,能够有效提升crossbar利用率,降低系统计算延迟和能耗。
1.一种面向dnn模型的模式感知的自动化sdk存算一体映射方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的面向dnn模型的模式感知的自动化sdk存算一体映射方法,其特征在于,所述每一层网络层的结构信息包括:网络层编号、网络层类型、输入通道数、卷积核边长、输出通道数、卷积步长、网络层权重参数总量、上一网络层的动作;所述输入特征图信息包括:输入特征图的宽、高、面积和填充。
3.根据权利要求1所述的面向dnn模型的模式感知的自动化sdk存算一体映射方法,其特征在于,所述角落区域计算次数表示为:
4.根据权利要求1所述的面向dnn模型的模式感知的自动化sdk存算一体映射方法,其特征在于,所述强化学习模型具体包括以下步骤:
5.根据权利要求4所述的面向dnn模型的模式感知的自动化sdk存算一体映射方法,其特征在于,所述奖励函数表示为:
6.根据权利要求4所述的面向dnn模型的模式感知的自动化sdk存算一体映射方法,其特征在于,在每次迭代中,还包括将状态、动作、奖励的组合记作一次经验样本并存储至经验池中。
7.根据权利要求4所述的面向dnn模型的模式感知的自动化sdk存算一体映射方法,其特征在于,前若干个批次为热身阶段,动作随机产生;在每个批次的迭代配置中,全部迭代完毕后,会从经验池中采样出一批样本数据,对强化学习模型进行训练优化。
8.根据权利要求4所述的面向dnn模型的模式感知的自动化sdk存算一体映射方法,其特征在于,所述环境通过存内计算加速器的仿真器实现,所述仿真器接收强化学习模型输出的动作策略,执行dnn模型到reram crossbar的映射和推理过程,收集利用率、延迟、能耗性能数据进行反馈。
9.一种面向dnn模型的模式感知的自动化sdk存算一体映射装置,用于实现权利要求1-8任一项所述面向dnn模型的模式感知的自动化sdk存算一体映射方法,其特征在于,包括:
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行强化学习模块实现权利要求1~8任一项所述方法的步骤。
