一种用于神经网络处理器的方法技术

技术编号:17346817 阅读:49 留言:0更新日期:2018-02-25 12:22
本发明专利技术提供一种用于神经网络处理器的方法,包括:1)确定所述神经网络处理器的电路构造;2)增加所述电路构造中至少一条路径上的至少一个器件的延时;3)通过调整用于所述神经网络处理器的工作频率并评估在各个工作频率下的工作状况,来确定使得增加了延时后的所述电路构造的错误率满足设计需要时的最大的工作频率,以及对应的神经网络权重值。

A method for neural network processor

The present invention provides a method for neural network processor includes: 1) to determine the circuit structure of the neural network processor; 2) increase the circuit structure in at least one path of the at least one device delay; 3) by adjusting the working frequency for the neural network processor and evaluation work in every frequency, to determine that the circuit structure increases the delay after the error rate to meet the maximum frequency of the design need, and the neural network weight value corresponding to the.

【技术实现步骤摘要】
一种用于神经网络处理器的方法
本专利技术涉及对神经网络处理器的设计及优化。
技术介绍
深度学习是机器学习领域的重要分支,随着深度神经网络技术的发展,一些用于深度神经网络的专用处理器也应运而生。研究人员在神经网络的硬件加速领域进行了探索,神经网络处理器正在向与异构多核平台发展,例如GPU、FPGA和ASIC等。伴随神经网络复杂度的不断提高,神经网络技术在实际应用过程中存在占用资源多、运算速度慢、能量消耗大等问题,尤其在嵌入式设备中终端设备通常需要较长的续航时间,因此,能耗对与神经网络处理器的功能完整性起着至关重要的作用。另一方面,近阈值(Near-Threshold)集成电路设计是一种针对电路设计的方法,其原理在于首先确定基于工艺的器件电压阈值,通过对电路设计进行调整使得所获得的电路能够在接近晶体管的阈值电压的水平下进行工作。这样的近阈值集成电路设计方法被认为是能够大幅度地降低能耗、将计算能效提升一个数量级的设计技术。然而,直接将电压降低至近阈值水平往往会导致电路无法正常工作或者会大幅地增加系统发生故障的概率,急需一种将近阈值集成电路设计方法与神经网络处理器结合在一起并且能够有效地改善处理器电路性能的用于神经网络处理器的工业设计方法。
技术实现思路
因此,本专利技术的目的在于克服上述现有技术的缺陷,提供1.一种用于神经网络处理器的方法,包括:1)确定所述神经网络处理器的电路构造;2)增加所述电路构造中至少一条路径上的至少一个器件的延时;3)通过调整用于所述神经网络处理器的工作频率并评估在各个工作频率下的工作状况,来确定使得增加了延时后的所述电路构造的错误率满足设计需要时的最大的工作频率,以及对应的神经网络权重值。优选地,根据所述方法,其中步骤3)包括:3-1)确定用于所述神经网络处理器的初始工作频率;3-2)将测试用的数据集作为经过步骤2)处理后的所述神经网络处理器的输入,在当前的工作频率下测试当所述神经网络处理器的错误率收敛时的错误率;3-3)若所述收敛时的错误率小于满足设计需要的阈值,则调整所述工作频率并重复上述步骤3-2),若所述收敛时的错误率大于或等于满足设计需要的阈值,则输出当前神经网络处理器的工作频率以及神经网络权重值。优选地,根据所述方法,其中步骤3-2)包括:3-2-1)将测试用的数据集作为经过步骤2)处理后的所述神经网络处理器的输入,所述神经网络处理器采用前一次迭代中计算获得的神经网络权重值,根据输入的测试用的数据集进行正向传播的计算,其中,对于第一次迭代,采用初始的神经网络权重值;3-2-2)将正向传播的计算的结果与期望的结果进行比对,获得错误率;3-2-3)在未达到设定的第二最大迭代次数时,若所述错误率收敛,则输出所述错误率和当前的神经网络权重值,否则执行反向传播的计算以更新神经网络权重值,并重复步骤3-2-1)至步骤3-2-3);在达到设定的第二最大迭代次数时,输出所述错误率和当前的神经网络权重值。优选地,根据所述方法,其中步骤2)包括:2-1)获得所述电路构造中多条路径的延时信息;2-2)根据所述延时信息,计算所述多条路径中的每一个的建立时间的裕量;2-3)选择建立时间的裕量最少的至少一条路径上的至少一个器件,增加所述器件的延时。优选地,根据所述方法,其中步骤2)包括:获得所述电路构造中的一条或多条关键路径的延时信息;增加所述一条或多条关键路径上的至少一个器件的延时。优选地,根据所述方法,其中所述神经网络处理器的电路构造中包含具有纠错功能的电路。优选地,根据所述方法,其中所述具有纠错功能的电路为ECC电路,所述ECC电路设置在与所述神经网络处理器的计算单元连接的存储单元中,用于根据来自所述计算单元的数据计算获得对应的ECC编码,以将数据与对应的ECC编码存入所述存储单元的存储器中,以及用于根据从所述存储单元的存储器中读出的ECC编码对对应的数据进行纠错。优选地,根据所述方法,其中步骤1)包括:获得工业上已设计完成的神经网络处理器的电路构造,或者通过硬件描述语言编写以获得神经网络处理器的电路构造。优选地,根据所述方法,其中通过对所述电路构造进行静态时序分析来获得所述电路构造中的路径的延时信息。以及,一种神经网络处理器的设计系统,包括:存储装置和处理器;其中,所述存储装置用于存储计算机程序,所述计算机程序在被所述处理器执行时用于实现如前述任意一项所述的方法。与现有技术相比,本专利技术的优点在于:提供了一种针对能够在低电压、甚至在近阈值电压下正常工作、具有较高电路准确性的神经网络处理器的设计方法,其能够确定满足设计所需的最低标准的错误率时的最大工作频率以及对应的神经网络权重值。使得所设计的神经网络处理器在执行相同计算量的任务时占用更少的资源、消耗更少的能量,对于嵌入到终端设备中的神经网络处理器而言可以维持更长的续航时间。附图说明以下参照附图对本专利技术实施例作进一步说明,其中:图1是根据本专利技术的一个实施例的针对采用低电压或近阈值电压的深度神经网络处理器的设计方法;图2是根据本专利技术的一个实施例的神经网络处理器的存储单元的结构示意图;图3是根据本专利技术的一个实施例将来自神经网络处理器计算单元的计算结果的数据存入到存储单元的存储器中的过程;图4是根据本专利技术的一个实施例从神经网络处理器存储单元的存储器中读出数据的过程。具体实施方式下面结合附图和具体实施方式对本专利技术作详细说明。在本领域中存在普遍的共识,采用近阈值集成电路设计可以在低电压下实现电路功能,但是,降低电路电压会影响电路元件的稳定性从而影响电路的整体性能。换句话说,降低电路电压时,为了保证系统正常运作,电路所支持的工作频率会大幅降低,致使电路的处理速度大幅降低。专利技术人认为近阈值器件和电路设计,可以极大程度地降低同工艺尺寸芯片的功耗。在传统的先进集成电路工艺中,器件边缘效应会导致阈值电压的漂移,高温工作环境不但影响阈值电压、还会导致小尺寸MOS器件性能参数的快速退化,从而影响电路的可靠性及稳定性。当电路工作在近阈值电压状态下时,电路的可靠性将会大幅降低,因此近阈值器件往往被用在频率以及运算负载比较低的应用中。相比之下,对于神经网络的电路而言,由于神经网络算法本身有着固有的强容错性的特点,可以弥补近阈值器件和电路可靠性差的弊端。专利技术人通过研究发现,神经网络中存在多个层级,基于神经网络的处理算法,逐层地对数据进行加工、学习并获得最终的处理结果,通过每个层级所获得的中间结果对于系统的错误率存在一定的容忍度。即便是在某一中间层所获得的中间结果并没有达到较高的准确率,也不会对最终的处理结果造成较大的影响。因此,专利技术人认为若是将近阈值集成电路设计应用到针对深度神经网络处理器的设计中,在面对同样的系统的准确率的需求下,能够支持比设计普通电路更高的频率。并且,专利技术人认为,在调低电压后对硬件元件的影响可能会导致器件故障,其反应在处理器的工作状态上往往表现为时序故障,即系统以固定频率在某一时刻开始对信号采样,然而信号并没有在期望的时刻到达(例如较早到达或较晚到达),这使得采样开始的时刻没有与信号对齐,周期性实施的采样操作并非在期望的时刻实施,因而无法采样获得期望的幅值。这可以理解为系统采样获得的信号与期望获得信号之间存在相位差(phasedifference)以及本文档来自技高网...
一种用于神经网络处理器的方法

【技术保护点】
一种用于神经网络处理器的方法,包括:1)确定所述神经网络处理器的电路构造;2)增加所述电路构造中至少一条路径上的至少一个器件的延时;3)通过调整用于所述神经网络处理器的工作频率并评估在各个工作频率下的工作状况,来确定使得增加了延时后的所述电路构造的错误率满足设计需要时的最大的工作频率,以及对应的神经网络权重值。

【技术特征摘要】
1.一种用于神经网络处理器的方法,包括:1)确定所述神经网络处理器的电路构造;2)增加所述电路构造中至少一条路径上的至少一个器件的延时;3)通过调整用于所述神经网络处理器的工作频率并评估在各个工作频率下的工作状况,来确定使得增加了延时后的所述电路构造的错误率满足设计需要时的最大的工作频率,以及对应的神经网络权重值。2.根据权利要求1所述的方法,其中步骤3)包括:3-1)确定用于所述神经网络处理器的初始工作频率;3-2)将测试用的数据集作为经过步骤2)处理后的所述神经网络处理器的输入,在当前的工作频率下测试当所述神经网络处理器的错误率收敛时的错误率;3-3)若所述收敛时的错误率小于满足设计需要的阈值,则调整所述工作频率并重复上述步骤3-2),若所述收敛时的错误率大于或等于满足设计需要的阈值,则输出当前神经网络处理器的工作频率以及神经网络权重值。3.根据权利要求2所述的方法,其中步骤3-2)包括:3-2-1)将测试用的数据集作为经过步骤2)处理后的所述神经网络处理器的输入,所述神经网络处理器采用前一次迭代中计算获得的神经网络权重值,根据输入的测试用的数据集进行正向传播的计算,其中,对于第一次迭代,采用初始的神经网络权重值;3-2-2)将正向传播的计算的结果与期望的结果进行比对,获得错误率;3-2-3)在未达到设定的第二最大迭代次数时,若所述错误率收敛,则输出所述错误率和当前的神经网络权重值,否则执行反向传播的计算以更新神经网络权重值,并重复步骤3-2-1)至步骤3-2-3);在达到设定的第二最大迭代次数时,输出所...

【专利技术属性】
技术研发人员:韩银和许浩博王颖
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

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

1