脉动阵列变速控制方法及可变速脉动阵列微框架技术

技术编号:24855780 阅读:31 留言:0更新日期:2020-07-10 19:08
本发明专利技术公开了一种脉动阵列变速控制方法和可变速脉动阵列微框架,其中方法包括:脉动阵列包括至少两个处理单元;方法包括:获取脉动阵列中所有处理单元的待转变精度模式;确定所有待转变精度模式中处理单元处理所需时长最长的处理周期,并将其作为脉动阵列的下一运行周期;在处理单元的下一实际处理周期后设置数个阻塞周期,以使得所有处理单元的下一处理周期的时长与脉动阵列的下一运行周期的时长相等。本发明专利技术可实现在多种精度下灵活切换,且每个固定周期下,脉动阵列内部的处理单元的精度可以是不同的,进而加速卷积神经网络的推理过程。

【技术实现步骤摘要】
脉动阵列变速控制方法及可变速脉动阵列微框架
本专利技术涉及神经网络
,尤其涉及脉动阵列变速控制方法及可变速脉动阵列微框架。
技术介绍
目前许多硬件公司开发了各种神经网络加速器来提高推理性能,其中脉动数组由于可以尽可能地重用获取的数据,因此算是一种有效地计算卷积的方法。谷歌提出了一种基于经典脉动阵列的TPU架构,它由大量的运算单元组成,处理单元可以固定权值或特征值,通过在处理单元间滑动特征值或权值,从而减少了内存带宽,实现了高能效。同时还有几种类型的神经网络加速器支持混合精度计算以进一步提高计算效率。例如一种位串行乘法器,可以支持1位到8位的乘法以进行可重新配置的计算。在XilinxPYNQ-Z1板上,其峰值性能可以达到6.5TOPS。NVIDIA提出了Turing体系结构,它支持INT4,INT8和INT32整数计算,但是这些精度的运算无法同时运行。BitFusion则由包含融合单元的二维收缩阵列组成,融合单元可实现INT2,INT4,INT8和INT16操作,但该脉动阵列内部的融合单元必须设置为相同的精度,从而降低了混合精度计算的灵活性。因此可看出现有脉动阵列均无法实现混合精度的卷积神经网络的推理过程。
技术实现思路
本专利技术所要解决的技术问题是现有的神经网络加速器无法实现混合精度的卷积神经网络的推理过程,现有脉动阵列无法实现变速控制,导致混合精度计算的灵活性较低。为了解决上述技术问题,本专利技术提供了一种脉动阵列变速控制方法,所述脉动阵列包括至少两个处理单元;<br>所述方法包括:获取所述脉动阵列中所有所述处理单元的待转变精度模式;确定所有所述待转变精度模式中所述处理单元处理所需时长最长的处理周期,并将其作为所述脉动阵列的下一运行周期;在所述处理单元的下一实际处理周期后设置数个阻塞周期,以使得所有所述处理单元的下一处理周期的时长与所述脉动阵列的下一运行周期的时长相等;其中,所述处理单元每处理一个阻塞周期即表示所述处理单元被阻塞一个固定周期,设置的所述阻塞周期个数为自然数。优选地,所述待转变精度模式包括:INTN*INTN模式、INTN*INT2N模式、INT2N*INTN模式和INT2N*INT2N模式。优选地,若当前所述脉动阵列中所有处理单元的精度模式为INTx*INTy模式,且所述处理单元处理INTx*INTy模式的实际处理周期为n个固定周期;当所述待转变精度模式均为INTx’*INTy’模式时,所述脉动阵列的下一运行周期为x’/x*y’/y*n个固定周期,所有所述处理单元的下一处理周期中设置的阻塞周期为零个。优选地,若当前所述脉动阵列中所有处理单元的精度模式为INTx*INTy模式,且所述处理单元处理INTx*INTy模式的实际处理周期为n个固定周期;当所述待转变精度模式包括INTx’*INTy’模式和INTx”*INTy”模式时,判断n、x’/x*y’/y*n和x”/x*y”/y*n的大小;若n分别大于x’/x*y’/y*n和x”/x*y”/y*n,则所述脉动阵列的下一运行周期为n个固定周期,且在所述待转变精度为INTx’*INTy’模式的部分处理单元的下一处理周期中设置n-x’/x*y’/y*n个阻塞周期,在所述待转变精度为INTx”*INTy”模式的部分处理单元的下一处理周期中设置n-x”/x*y”/y*n个阻塞周期;若x’/x*y’/y*n分别大于n和x”/x*y”/y*n,则所述脉动阵列的下一运行周期为x’/x*y’/y*n个固定周期,且在所述待转变精度为INTx’*INTy’模式的部分处理单元的下一处理周期中设置零个阻塞周期,在所述待转变精度为INTx”*INTy”模式的部分处理单元的下一处理周期中设置x’/x*y’/y*n-x”/x*y”/y*n个阻塞周期;若x”/x*y”/y*n分别大于n和x’/x*y’/y*n,则所述脉动阵列的下一运行周期为x”/x*y”/y*n个固定周期,且在所述待转变精度为INTx’*INTy’模式的部分处理单元的下一处理周期中设置x”/x*y”/y*n-x’/x*y’/y*n个阻塞周期,在所述待转变精度为INTx”*INTy”模式的部分处理单元的下一处理周期中设置零个阻塞周期。为了解决上述技术问题,本专利技术提供了一种可变速脉动阵列微框架,包括不少于一个的处理单元组以及通信连接所有所述处理单元组的全局共享缓存模块;所述处理单元组包括协同控制单元以及分别与所述协同控制单元连接的输入缓存单元、可变速脉动阵列、输出缓存单元、激活单元和预测单元,所述输入缓存单元、可变速脉动阵列、输出缓存单元、激活单元和预测单元依次连接;所述协同控制单元,用于基于所述预测单元输出的掩码缓存信号以及所述脉动阵列变速控制方法生成控制指令,并将所述控制指令发送给所述可变速脉动阵列。优选地,所述输入缓存单元用于从所述全局共享缓存模块获取特征值数据和权重数据,对所述特征值数据进行精度转换,并将精度转化后的特征值数据和权重数据传输给所述可变速脉动阵列。优选地,所述可变速脉动阵列用于根据所述控制指令对所述特征值数据和权重数据进行卷积计算得到部分和数据,并将部分和数据传输给所述输出缓存单元。优选地,所述输出缓存特征单元用于存储所述部分和数据,并将接收到的所有所述部分和数据进行累加得到卷积最终值,并将所述卷积最终值发送给所述激活单元。优选地,所述激活单元用于对所述累加结果进行激活运算得到激活数据,并将所述激活数据传输给所述预测单元。优选地,所述预测单元用于对所述激活数据进行池化运算得到池化数据,并基于所述池化数据得到下一层卷积的特征值数据和掩码缓存信号,并将所述掩码缓存信号传输给所述协同控制单元,将下一层卷积的特征值数据传输给所述全局共享缓存模块。与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:应用本专利技术实施例提供的脉动阵列变速控制方法,通过实现脉动阵列的变速控制,使得脉动阵列可以在多种精度下灵活切换,且每个固定周期下,脉动阵列内部的处理单元的精度可以是不同的,进而加速卷积神经网络的推理过程。且本专利技术既支持权重具有混合精度,又支持特征值是混合精度,提高混合精度计算的灵活性。本专利技术的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例共同用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1示出了本专利技术实施例一脉动阵列变速控制方法的流程示意图;图2示出了本专利技术实施例二可变速脉动阵列微框架的结构示意图;图3示出了本专利技术实施例二中处理单元具体结构示意图。具体实施方式以下将结合附图及实施例来详细说明本专利技术的实施方式,借此对本发本文档来自技高网...

【技术保护点】
1.一种脉动阵列变速控制方法,其特征在于,脉动阵列包括至少两个处理单元;/n所述方法包括:/n获取所述脉动阵列中所有所述处理单元的待转变精度模式;/n确定所有所述待转变精度模式中所述处理单元处理所需时长最长的处理周期,并将其作为所述脉动阵列的下一运行周期;/n在所述处理单元的下一实际处理周期后设置数个阻塞周期,以使得所有所述处理单元的下一处理周期的时长与所述脉动阵列的下一运行周期的时长相等;/n其中,所述处理单元每处理一个阻塞周期即表示所述处理单元被阻塞一个固定周期,设置的所述阻塞周期个数为自然数。/n

【技术特征摘要】
1.一种脉动阵列变速控制方法,其特征在于,脉动阵列包括至少两个处理单元;
所述方法包括:
获取所述脉动阵列中所有所述处理单元的待转变精度模式;
确定所有所述待转变精度模式中所述处理单元处理所需时长最长的处理周期,并将其作为所述脉动阵列的下一运行周期;
在所述处理单元的下一实际处理周期后设置数个阻塞周期,以使得所有所述处理单元的下一处理周期的时长与所述脉动阵列的下一运行周期的时长相等;
其中,所述处理单元每处理一个阻塞周期即表示所述处理单元被阻塞一个固定周期,设置的所述阻塞周期个数为自然数。


2.根据权利要求1所述的方法,其特征在于,所述待转变精度模式包括:INTN*INTN模式、INTN*INT2N模式、INT2N*INTN模式和INT2N*INT2N模式。


3.根据权利要求2所述的方法,其特征在于,若当前所述脉动阵列中所有处理单元的精度模式为INTx*INTy模式,且所述处理单元处理INTx*INTy模式的实际处理周期为n个固定周期;
当所述待转变精度模式均为INTx’*INTy’模式时,所述脉动阵列的下一运行周期为x’/x*y’/y*n个固定周期,所有所述处理单元的下一处理周期中设置的阻塞周期为零个。


4.根据权利要求2所述的方法,其特征在于,若当前所述脉动阵列中所有处理单元的精度模式为INTx*INTy模式,且所述处理单元处理INTx*INTy模式的实际处理周期为n个固定周期;
当所述待转变精度模式包括INTx’*INTy’模式和INTx”*INTy”模式时,判断n、x’/x*y’/y*n和x”/x*y”/y*n的大小;
若n分别大于x’/x*y’/y*n和x”/x*y”/y*n,则所述脉动阵列的下一运行周期为n个固定周期,且在所述待转变精度为INTx’*INTy’模式的部分处理单元的下一处理周期中设置n-x’/x*y’/y*n个阻塞周期,在所述待转变精度为INTx”*INTy”模式的部分处理单元的下一处理周期中设置n-x”/x*y”/y*n个阻塞周期;
若x’/x*y’/y*n分别大于n和x”/x*y”/y*n,则所述脉动阵列的下一运行周期为x’/x*y’/y*n个固定周期,且在所述待转变精度为INTx’*INTy’模式的部分处理单元的下一处理周期中设置零个阻塞周期,在所述待转变精度为INTx”*INTy”模式的部分处理单...

【专利技术属性】
技术研发人员:宋卓然梁晓峣景乃锋官惠泽江昭明吴飞洋江子山
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海;31

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

1