用于加速深度学习网络的训练的系统和方法技术方案

技术编号:37108039 阅读:20 留言:0更新日期:2023-04-01 05:06
公开了一种用于在深度学习网络的训练期间加速乘法累加(MAC)浮点单元的系统和方法。所述方法包括:接收第一输入数据流A和第二输入数据流B;将所述第一数据流A和所述第二数据流B的指数成对相加以产生乘积指数;使用比较器来确定最大指数;通过将乘积指数增量添加到所述第一数据流中的对应项来确定所述第二数据流中的每个有效数在累加之前必须移位的位数并且使用加法器树将所述第二数据流中的操作数归约为单个部分和;使用所述最大指数将所述部分和添加到对应的对齐值以确定累加值;以及输出所述累加值。及输出所述累加值。及输出所述累加值。

【技术实现步骤摘要】
【国外来华专利技术】用于加速深度学习网络的训练的系统和方法


[0001]下文总体上涉及深度学习网络,并且更具体地涉及一种用于加速深度学习网络的训练的系统和方法。

技术介绍

[0002]深度学习的普遍应用和登纳德缩放定律(Dennard scaling)的终结一直在推动加速深度学习推理和训练的工作。这些工作跨越整个系统堆栈,从算法到中间件和硬件架构。训练是包括推断作为子任务的任务。训练是计算和存储密集型任务,通常需要数周的计算时间。

技术实现思路

[0003]在一方面,提供了一种用于在深度学习网络的训练或推断期间加速乘法累加(MAC)浮点单元的方法,所述方法包括:接收第一输入数据流A和第二输入数据流B;将所述第一数据流A和所述第二数据流B的指数成对相加以产生乘积指数;使用比较器来确定最大指数;通过将乘积指数增量添加到所述第一数据流中的对应项来确定所述第二数据流中的每个有效数在累加之前必须移位的位数并且使用加法器树将所述第二数据流中的操作数归约为单个部分和;使用所述最大指数将所述部分和添加到对应的对齐值以确定累加值;以及输出所述累加值。
[0004]在所述方法的特定情况下,确定所述第二数据流中的每个有效数在累加之前必须移位的所述位数包括跳过映射在定义的累加器宽度外的无效项。
[0005]在所述方法的另一情况下,每个有效数包括有符号的2的幂。
[0006]在所述方法的又一情况下,在多个MAC浮点单元之间共享将所述指数相加和确定所述最大指数。
[0007]在所述方法的又一情况下,所述指数被设置为固定值。
[0008]在所述方法的又一情况下,所述方法还包括将浮点值存储在组中,并且其中所述指数增量被编码为与基数指数的差值。
[0009]在所述方法的又一情况下,所述基数指数是所述组中的第一指数。
[0010]在所述方法的又一情况下,使用所述比较器包括将所述最大指数与累加器位宽的阈值进行比较。
[0011]在所述方法的又一情况下,设置所述阈值以确保模型收敛。
[0012]在所述方法的又一情况下,所述阈值被设置在训练准确度的0.5%内。
[0013]在另一方面,提供了一种用于在深度学习网络的训练或推断期间加速乘法累加(MAC)浮点单元的系统,所述系统包括一个或多个处理器,所述一个或多个处理器与数据存储器通信以执行:输入模块,所述输入模块用于接收第一输入数据流A和第二输入数据流B;指数模块,所述指数模块用于将所述第一数据流A和所述第二数据流B的指数成对相加以产生乘积指数并且使用比较器来确定最大指数;归约模块,所述归约模块用于通过将乘积指
数增量添加到所述第一数据流中的对应项来确定所述第二数据流中的每个有效数在累加之前必须移位的位数并且使用加法器树将所述第二数据流中的操作数归约为单个部分和;以及累加模块,所述累加模块用于使用所述最大指数将所述部分和添加到对应的对齐值以确定累加值,并且输出所述累加值。
[0014]在所述系统的特定情况下,确定所述第二数据流中的每个有效数在累加之前必须移位的所述位数包括跳过映射在定义的累加器宽度外的无效项。
[0015]在所述系统的另一情况下,每个有效数包括有符号的2的幂。
[0016]在所述系统的又一情况下,所述指数模块、所述归约模块和所述累加模块位于处理单元上,并且其中在多个处理单元之间共享将所述指数相加和确定所述最大指数。
[0017]在所述系统的又一情况下,所述多个处理单元被配置为分块布置。
[0018]在所述系统的又一情况下,同一列中的处理单元共享来自所述指数模块的相同输出,并且同一行中的处理单元共享来自所述输入模块的相同输出。
[0019]在所述系统的又一情况下,所述指数被设置为固定值。
[0020]在所述系统的又一情况下,所述系统还包括将浮点值存储在组中,并且其中所述指数增量被编码为与基数指数的差值,并且其中所述基数指数是所述组中的第一指数。
[0021]在所述系统的又一情况下,使用所述比较器包括将所述最大指数与累加器位宽的阈值进行比较,其中设置所述阈值以确保模型收敛。
[0022]在所述系统的又一情况下,所述阈值被设置在训练准确度的0.5%内。
[0023]在本文中预期并描述这些和其他方面。应当理解,前述
技术实现思路
阐述了实施方案的代表性方面以帮助技术读者理解以下详细描述。
附图说明
[0024]将参考附图更好地理解实施方案,在附图中:
[0025]图1是根据实施方案的用于加速深度学习网络的训练的系统的示意图;
[0026]图2是示出图1的系统和示例性操作环境的示意图;
[0027]图3是根据实施方案的用于加速深度学习网络的训练的方法的流程图;
[0028]图4示出了零项和越界项的说明性示例;
[0029]图5示出了根据图1的系统的包括指数模块、归约模块和累加模块的处理元件的示例;
[0030]图6示出了在ImageNet上训练ResNet34的0轮和89轮中的层Conv2d_8的指数分布示例;
[0031]图7示出了根据图1的系统的处理元件的另一个实施方案;
[0032]图8示出了根据图1的系统的处理元件的2
×
2分块的示例;
[0033]图9示出了值按通道分块的示例;
[0034]图10示出了图1的系统相对于基线的性能改进;
[0035]图11示出了在每个模型中图1的系统超过基线架构的总能量效率;
[0036]图12将归一化到基线的由图1的系统消耗的能量示出为跨三个主要成分的细目:计算逻辑、片外和片上数据传送;
[0037]图13示出了图1的系统可跳过的项的细目;
[0038]图14示出了三个训练阶段中的每一者的加速比;
[0039]图15示出了图1的系统随时间且在整个训练过程中超过基线的加速比;
[0040]图16示出了在改变每分块的行数的情况下图1的系统超过基线的加速比;
[0041]图17示出了在每个循环改变行数的效果;
[0042]图18示出了通过在PlaidML中模拟图1的系统来训练ResNet18的准确度;并且
[0043]图19示出了图1的系统在按层剖析累加器宽度相对于固定累加器宽度下的性能。
具体实施方式
[0044]现在将参考附图描述实施方案。为了说明的简单和清楚起见,在认为适当的情况下,可在附图中重复附图标记以指示对应或类似的元件。另外,阐述了许多特定细节以便提供对本文描述的实施方案的透彻理解。然而,本领域的技术人员将理解,可在没有这些特定细节的情况下实践本文描述的实施方案。在其他情况下,没有详细地描述众所周知的方法、过程和部件以免模糊本文描述的实施方案。此外,该描述不应被视为限制本文描述的实施方案的范围。
[0045]本文例示的执行指令的任何模块、单元、部件、服务器、终端或装置可包括或以其他方式访问计算机可读介质,诸如存储介质、计算机存本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于在深度学习网络的训练或推断期间加速乘法累加(MAC)浮点单元的方法,所述方法包括:接收第一输入数据流A和第二输入数据流B;将所述第一数据流A和所述第二数据流B的指数成对相加以产生乘积指数;使用比较器来确定最大指数;通过将乘积指数增量添加到所述第一数据流中的对应项来确定所述第二数据流中的每个有效数在累加之前必须移位的位数并且使用加法器树将所述第二数据流中的操作数归约为单个部分和;使用所述最大指数将所述部分和添加到对应的对齐值以确定累加值;以及输出所述累加值。2.如权利要求1所述的方法,其中确定所述第二数据流中的每个有效数在累加之前必须移位的所述位数包括跳过映射在定义的累加器宽度外的无效项。3.如权利要求1所述的方法,其中每个有效数包括有符号的2的幂。4.如权利要求1所述的方法,其中在多个MAC浮点单元之间共享将所述指数相加和确定所述最大指数。5.如权利要求1所述的方法,其中所述指数被设置为固定值。6.如权利要求1所述的方法,所述方法还包括将浮点值存储在组中,并且其中所述指数增量被编码为与基数指数的差值。7.如权利要求6所述的方法,其中所述基数指数是所述组中的第一指数。8.如权利要求1所述的方法,其中使用所述比较器包括将所述最大指数与累加器位宽的阈值进行比较。9.如权利要求8所述的方法,其中设置所述阈值以确保模型收敛。10.如权利要求9所述的方法,其中所述阈值被设置在训练准确度的0.5%内。11.一种用于在深度学习网络的训练或推断期间加速乘法累加(MAC)浮点单元的系统,所述系统包括一个或多个处理器,所述一个或多个处理器与数据存储器通信以执行:输入模块,所述输入模块用于接收第一输入数据流A和第二输入数据流B;指...

【专利技术属性】
技术研发人员:O
申请(专利权)人:多伦多大学管理委员会
类型:发明
国别省市:

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

1