首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种降低神经网络芯片中eDRAM刷新能耗的方法及系统 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:清华大学

摘要:本发明提供了一种降低神经网络芯片中eDRAM刷新能耗的方法及系统,方法包括:训练原始神经网络模型,确定具有最大容错能力的目标神经网络模型及与所述目标神经网络模型相对应的所述eDRAM的数据保持时间;调度所述目标神经网络模型的每一层,确定最低计算能耗下每层的计算模式及每层的数据生存时间;设置所述目标神经网络模型按所述每层的计算模式在所述神经网络芯片上执行,对于每层的存储分区,若所述存储分区未存储有效数据或该层的数据生存时间小于所述数据保持时间,则不刷新所述存储分区。本发明能够最大程度的移除不必要的刷新操作,大大降低神经网络芯片中eDRAM刷新能耗。

主权项:1.一种降低神经网络芯片中eDRAM刷新能耗的方法,其特征在于,所述方法包括:训练原始神经网络模型,确定具有最大容错能力的目标神经网络模型及与所述目标神经网络模型相对应的所述eDRAM的数据保持时间;调度所述目标神经网络模型的每一层,确定最低计算能耗下每层的计算模式及每层的数据生存时间;设置所述目标神经网络模型按所述每层的计算模式在所述神经网络芯片上执行,对于每层的存储分区,若所述存储分区未存储有效数据或该层的数据生存时间小于所述数据保持时间,则不刷新所述存储分区;训练原始神经网络,确定所述目标神经网络模型及所述数据保持时间的过程包括:根据所述eDRAM的特性曲线,确定刷新周期与出错概率的对应关系;对所述原始神经网络模型进行定点化预训练,将所述原始神经网络模型转化为定点化神经网络模型;根据所述对应关系确定一出错概率r,在所述定点化神经网络模型的每一层中注入以所述出错概率r为概率发生的误差,所述出错概率r与容错能力成正比;对注入误差后的神经网络模型进行重训练;判断训练误差是否小于给定容忍误差,若是,则增加所述出错概率r,重复上述注入错误概率r、重训练的过程,直至训练误差大于或等于给定容忍误差为止,将上一次训练得到的神经网络模型作为所述目标神经网络模型;根据上一次注入的错误概率r及所述对应关系确定所述数据保持时间。

全文数据:一种降低神经网络芯片中eDRAM刷新能耗的方法及系统技术领域[0001]本发明属于神经网络芯片加速领域,尤其涉及一种降低神经网络芯片中eDRAM刷新能耗的方法及系统。背景技术[0002]随着人工智能时代的到来,图像识别、语音识别、自然语言处理等智能任务在生活中无处不在。神经网络,已经在这类智能任务中取得了世界顶尖的成果,并且广泛地应用于业界。例如百度图片搜索、微软语音识别和谷歌在线翻译等,它们都是基于神经网络来实现的。神经网络因其计算规整、并行度大等特点,特别需要也特别适合使用神经网络芯片来对其计算加速。然而因为其数据量大,而芯片内部存储器容量有限,导致计算过程中有大量的外部存储器访问,消耗了大量的能耗。[0003]新型的神经网络芯片中,以eDRAMEmbeddedDynamicRandomAccessMemory,动态随机存取存储器)来代替传统的SRAMStaticRandomAccessMemory,静态随机存储器),获得更大的片内存储容量,从而减少了片外存储器的访问。然而,eDRAM的存储单元的电荷会随时间流逝而丢失,为了保证数据的正确性,现有技术中,是以周期性的方式对存储单元执行刷新操作,周期性刷新的方式存在如下缺陷:1对于无需刷新的情况数据保持时间小于数据刷新时间仍执行刷新操作,具有较大的刷新能耗,会削弱外部存储访问减少带来的能耗收益;2刷新周期是根据eDRAM的工艺确定的,例如,65nnO:艺下,eDRAM的数据保持时间为45us,从而导致刷新周期较短,刷新频繁。发明内容[0004]本发明用于解决现有技术中eDRAM型神经网络芯片存在具有较大的刷新能耗,削弱外部存储访问减少带来的能耗收益的缺陷。[0005]为了解决上述技术问题,本发明一技术方案提供一种降低神经网络芯片中eDRAM刷新能耗的方法,包括:[0006]训练原始神经网络模型,确定具有最大容错能力的目标神经网络模型及与所述目标神经网络模型相对应的所述eDRAM的数据保持时间;[0007]调度所述目标神经网络模型的每一层,确定最低计算能耗下每层的计算模式及每层的数据生存时间;[0008]设置所述目标神经网络模型按所述每层的计算模式在所述神经网络芯片上执行,对于每层的存储分区,若所述存储分区未存储有效数据或该层的数据生存时间小于所述所述eDRAM的数据保持时间,则不刷新所述存储分区。[0009]本发明另一技术方案提供一种降低神经网络芯片中eDRAM刷新能耗的系统,所述系统包括:神经网络芯片及eDRAM控制器;[0010]所述神经网络芯片用于按目标神经网络模型最低计算能耗下每层的计算模式执行所述目标神经网络模型,其中,所述目标神经网络模型具有最大容错能力;[0011]所述eDRAM控制器连接所述神经网络芯片,用于在所述目标神经网络模型执行时,对于所述目标神经网络模型每层的存储分区,若所述存储分区未存储有效数据或所述目标神经网络模型最低计算能耗下该层的数据生存时间小于与所述目标神经网络模型相对应的所述eDRAM的数据保持时间,则不刷新该存储分区。[0012]本发明提供的降低神经网络芯片中eDRAM刷新能耗的方法及系统,通过训练调整神经网络模型的容错能力,能够获得更长的数据保持时间;通过调度神经网络模型的每一层,分析每层的计算能耗,能够获得神经网络模型每层更短的数据生存时间;通过设置每层的数据生存时间小于数据保持时间条件下,不刷新存储分区,能够最大程度的移除不必要的刷新操作,大大降低神经网络芯片中eDRAM刷新能耗。附图说明[0013]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0014]图1为本发明一实施例的降低神经网络芯片中eDRAM刷新能耗的方法的流程图;[0015]图2为本发明一实施例训练原始神经网络模型过程的流程图;[0016]图3为本发明一实施例调度目标神经网络模型过程的流程图;[0017]图4为本发明一实施例的eDRAM控制器的结构图;[0018]图5为本发明一实施例降低神经网络芯片中eDRAM刷新能耗的系统的结构图。具体实施方式[0019]为了使本发明的技术特点及效果更加明显,下面结合附图对本发明的技术方案做进一步说明,本发明也可有其他不同的具体实例来加以说明或实施,任何本领域技术人员在权利要求范围内做的等同变换均属于本发明的保护范畴。[0020]在本说明书的描述中,参考术语“一实施例”、“一具体实施例”、“一些实施方式”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。[0021]如图1所示,图1为本发明一实施例所述的降低神经网络芯片中eDRAM刷新能耗的方法的流程图。本实施例能够移除不必要的刷新操作,大大降低神经网络芯片中eDRAM刷新能耗。具体的,降低神经网络芯片中eDRAM刷新能耗的方法包括:[0022]步骤100,训练原始神经网络模型,确定具有最大容错能力的目标神经网络模型及与所述目标神经网络模型相对应的所述eDRAM的数据保持时间。详细的说,本步骤从训练的层面利用神经网络的容错能力,能够获得尽可能长的数据保持时间。目标神经网络模型具有给定容忍误差下的最大容错能力,可以容忍数据在一些比特上有错误翻转,同时识别精度并未损失。[0023]步骤200,调度所述目标神经网络模型的每一层,确定最低计算能耗下每层的计算模式及每层的数据生存时间。本步骤从调度层面降低神经网络计算时数据的生存时间。[0024]步骤300,设置所述目标神经网络模型按所述每层的计算模式在所述神经网络芯片上执行,对于每层的存储分区,若所述存储分区未存储有效数据或该层的数据生存时间小于所述数据保持时间,则不刷新所述存储分区。[0025]详细的说,步骤100及步骤200在编译阶段(神经网络模型还未加载至神经网络芯片中)执行,原始神经网络模型为现有技术中要在神经网络芯片上执行的模型,目标神经网络模型为本发明要在神经网络芯片上执行的模型。步骤300在执行阶段(目标神经网络模型已加载至神经网络芯片中)执行。[0026]本实施例能够使数据刷新周期随着网络不同、层数不同而改变,且可以不进行刷新操作,能够移除不必要的刷新操作,大大降低神经网络芯片中eDRAM刷新能耗。[0027]本发明一实施例中,如图2所示,上述步骤100训练原始神经网络,确定具有最大容错能力的目标神经网络模型及与目标神经网络模型相对应的eDRAM的数据保持时间的过程包括:[0028]步骤110,根据eDRAM的特性曲线,确定刷新周期(即数据保持时间)与出错概率的对应关系。详细的说,出错概率是比特级别的,eDRAM的特性曲线表示eDRAM存储器的刷新周期与出错概率之间的一一对应关系。[0029]步骤120,对原始神经网络模型进行定点化预训练,将所述原始神经网络模型转化为可以在神经网络芯片上执行的定点化神经网络模型。[0030]步骤130,根据步骤110得到的对应关系确定一出错概率r,在定点化神经网络模型的每一层中注入以出错概率r为概率发生的误差。详细的说,本发明中的误差指的是错误翻转的比特级别的误差,通过在定点化神经网络模型的每一层注入以掩膜的方式注入以出错概率r为概率发生的误差。[0031]—些实施方式中,为了保证整个训练过程有序进行,将对应关系中最小的出错概率设置成为出错概率r。[OO32]步骤140,对注入误差后的神经网络模型进行重训练,以调整权重,使重训练得到的神经网络模型对出错概率r具有容错能力。详细的说,出错概率r与容错能力成正比,出错概率r越大表示容错能力越大。[0033]步骤150,判断训练误差是否小于给定容忍误差,若是,则增加所述出错概率r,重复上述步骤130注入错误概率r和步骤140重训练的过程,直至训练误差大于或等于给定容忍误差为止,将上一次训练得到的神经网络模型作为目标神经网络模型。[0034]详细的说,上一次训练时注入的错误概率r最大,鉴于出错概率r与容错能力成正比,因此,上一次训练得到的神经网络模型的容错能力也最大。[0035]步骤100,根据上一次注入的错误概率r及所述对应关系确定数据保持时间。具体的,根据上一次注入的错误概率r从对应关系中确定与上一次注入的错误概率r相对应的刷新周期,该刷新周期即为与目标神经网络模型相对应的eDRAM的数据保持时间。[0036]本发明一实施例中,如图3所示,上述步骤200调度目标神经网络模型的每一层,确定最低计算能耗下每层的计算模式及每层的数据生存时间的过程包括:[0037]步骤210,调度目标神经网络模型的一层时,抽取当前层的结构信息和硬件约束,并运行一设计空间调度框架,该设计空间调度框架用于遍历神经网络的所有计算模式,根据结构信息和硬件约束分析每种计算模式下的数据生存时间及计算能耗,将最低计算能耗的计算模式作为当前层的计算模式,根据当前层的计算模式确定当前层的数据生存时间。[0038]详细的说,神经网络的计算模式包括:输入优先模式、输出优先模式及权重优先模式。通常当计算能耗最小时,数据生存时间也最短。[0039]步骤220,判断当前层是否为最后一层,如果是,则执行步骤230,如果否,则执行步骤240。[0040]步骤230,结束调度过程。[0041]步骤240,转换至目标神经网络模型的下一层,返回步骤210继续执行。[0042]进一步的,为了便于步骤300在神经网络芯片工作时实现刷新控制,步骤200得到每层的计算模式及每层的数据刷新时间之后还包括:[0043]根据步骤100确定的数据保持时间、步骤200确定的每层的数据生存时间及每层的计算模式生成配置信息,配置信息包括每层的刷新标志及每层的计算模式标志。[0044]详细的说,每层的计算模式标志用于指示每层的计算模式,例如01表示输入优先计算模式、10表示输出优先计算模式、11表示权重优先计算模式。每层的刷新标志用于指示是否刷新相应层的存储分区,例如,0为“无效”标志,表示不刷新相应层的存储分区(相应层的存储分区未存储有效数据或相应层的数据生存时间小于数据保持时间),1为“有效”标志,表示刷新相应的存储分区(相应层的存储分区存储有效数据或相应层的数据生存时间大于或等于数据保持时间)。[0045]本发明一实施例中,上述步骤300的刷新控制由eDRAM控制器实现刷新控制,如图4所示,eDRAM控制器包括:可编程时钟分频器410、多个与存储分区对应的刷新触发器420及存储器430。[0046]可编程时钟分频器410用于以神经网络芯片的参考时钟为输入,设定刷新周期为数据保持时间;还用于从存储器中获取相应层的刷新标志,根据相应层的刷新标志控制相应刷新触发器工作。[0047]刷新触发器420用于根据可编程时钟分频器410的控制刷新存储分区。[0048]存储器430用于存储配置信息。[0049]如图5所示,图5为本发明一实施例的降低神经网络芯片中eDRAM刷新能耗的系统,包括:神经网络芯片510及eDRAM控制器520。[0050]神经网络芯片510用于按目标神经网络模型最低计算能耗下每层的计算模式执行目标神经网络模型,其中,目标神经网络模型具有最大容错能力。[0051]eDRAM控制器520连接神经网络芯片510,用于在目标神经网络模型执行时,对于目标神经网络模型每层的存储分区,若所述存储分区未存储有效数据或目标神经网络模型最低计算能耗下该层的数据生存时间小于与所述目标神经网络模型相对应的所述eDRAM的数据保持时间,则不刷新该存储分区。[0052]进一步的,eDRAM控制器包括:可编程时钟分频器521、多个与存储分区对应的刷新触发器522以及存储器523。[0053]可编程时钟分频器521连接神经网络芯片的参考时钟端,用于设定刷新周期为与目标神经网络模型相对应的数据保持时间;还用于从存储器中获取相应层的刷新标志,根据相应层的刷新标志控制相应刷新触发器工作。[0054]刷新触发器522连接神经网络芯片的控制端,用于根据可编程时钟分频器的控制刷新存储分区。__[0055]存储器523用于存储目标神经网络模型每层的刷新标志,每层的刷新标志用于指示是否刷新对应层的存储分区。[0056]本发明提供的降低神经网络芯片中eDRAM刷新能耗的方法及系统,通过训练调整神经网络模型的容错能力,能够获得更长的数据保持时间;通过调度神经网络模型的每一层,分析每层的计算能耗,能够获得神经网络模型每层更短的数据生存时间;通过设置每层的数据生存时间小于数据保持时间条件下,不刷新存储分区,能够最大程度的移除不必要的刷新操作,大大降低神经网络芯片中eDRAM刷新能耗。[0057]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质包括但不限于磁盘存储器、CD-ROM、光学存储器等上实施的计算机程序产品的形式。[0058]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和或方框图来描述的。应理解可由计算机程序指令实现流程图和或方框图中的每一流程和或方框、以及流程图和或方框图中的流程和或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和或方框图一个方框或多个方框中指定的功能的装置。[0059]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和或方框图一个方框或多个方框中指定的功能。[0060]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和或方框图1个方框或多个方框中指定的功能的步骤。[0061]以上所述仅用于说明本发明的技术方案,任何本领域普通技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围应权利要求范围为准。

权利要求:1.一种降低神经网络芯片中eDRAM刷新能耗的方法,其特征在于,所述方法包括:训练原始神经网络模型,确定具有最大容错能力的目标神经网络模型及与所述目标神经网络模型相对应的所述eDRAM的数据保持时间;调度所述目标神经网络模型的每一层,确定最低计算能耗下每层的计算模式及每层的数据生存时间;设置所述目标神经网络模型按所述每层的计算模式在所述神经网络芯片上执行,对于每层的存储分区,若所述存储分区未存储有效数据或该层的数据生存时间小于所述数据保持时间,则不刷新所述存储分区。2.如权利要求1所述的方法,其特征在于,训练原始神经网络,确定所述目标神经网络模型及所述数据保持时间的过程包括:根据所述eDRAM的特性曲线,确定刷新周期与出错概率的对应关系;对所述原始神经网络模型进行定点化预训练,将所述原始神经网络模型转化为定点化神经网络模型;根据所述对应关系确定一出错概率r,在所述定点化神经网络模型的每一层中注入以所述出错概率r为概率发生的误差,所述出错概率r与容错能力成正比;对注入误差后的神经网络模型进行重训练;判断训练误差是否小于给定容忍误差,若是,则增加所述出错概率r,重复上述注入错误概率r、重训练的过程,直至训练误差大于或等于给定容忍误差为止,将上一次训练得到的神经网络模型作为所述目标神经网络模型;根据上一次注入的错误概率r及所述对应关系确定所述数据保持时间。3.如权利要求2所述的方法,其特征在于,根据所述对应关系确定一出错概率r的过程包括:将所述对应关系中最小的出错概率设置成为所述出错概率r。4.如权利要求1所述的方法,其特征在于,调度所述目标神经网络模型的每一层,确定最低计算能耗下每层的计算模式及每层的数据生存时间的过程包括:调度所述目标神经网络模型的每一层时,遍历神经网络的所有计算模式,分析每种计算模式下的数据生存时间及计算能耗,将最低计算能耗的计算模式作为该层的计算模式,根据该层的计算模式确定该层的数据生存时间。5.如权利要求4所述的方法,其特征在于,计算模式包括:输入优先模式、输出优先模式及权重优先模式。6.如权利要求1所述的方法,其特征在于,所述方法还包括:根据所述数据保持时间、所述每层的数据生存时间及所述每层的计算模式生成配置信息,所述配置信息包括每层的刷新标志及每层的计算模式标志;其中,所述每层的计算模式标志用于指示每层的计算模式,所述每层的刷新标志用于指示是否刷新相应层的存储分区。7.如权利要求6所述的方法,其特征在于,由eDRAM控制器实现刷新控制,所述eDRAM控制器包括:可编程时钟分频器、多个与存储分区对应的刷新触发器及存储器;所述可编程时钟分频器用于以所述神经网络芯片的参考时钟为输入,设定刷新周期为所述数据保持时间;还用于从所述存储器中获取相应层的刷新标志,根据所述相应层的刷新标志te制相应刷新触发器工作;所述刷新触发器用于根据所述可编程时钟分频器的控制刷新存储分区;所述存储器用于存储配置信息。8.—种降低神经网络芯片中eDRAM刷新能耗的系统,包括:神经网络芯片及eDRAM控制器;所述祌经网络芯片用于按目标神经网络模型最低计算能耗下每层的计算模式执行所述目标神经网络模型,其中,所述目标神经网络模型具有最大容错能力;所述eDRAM控制器连接所述神经网络芯片,用于在所述目标神经网络模型执行时,对于所述目标神经网络模型每层的存储分区,若所述存储分区未存储有效数据或所述目标神经网络模型最低计算能耗下该层的数据生存时间小于与所述目标神经网络模型相对应的所述eDRAM的数据保持时间,则不刷新该存储分区。9.如权利要求8所述系统,其特征在于,所述eDRAM控制器包括:可编程时钟分频器、多个与存储分区对应的刷新触发器以及存储器;所述可编程时钟分频器连接所述神经网络芯片的参考时钟端,用于设定刷新周期为所述数据保持时间;还用于从存储器中获取相应层的刷新标志,根据相应层的刷新标志控制相应刷新触发器工作;所述刷新触发器连接所述神经网络芯片的控制端,用于根据所述可编程时钟分频器的控制刷新存储分区;_所述存储器用于存储所述目标神经网络模型每层的刷新标志,所述每层的刷新标志用于指示是否刷新对应层的存储分区。

百度查询: 清华大学 一种降低神经网络芯片中eDRAM刷新能耗的方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。