【技术实现步骤摘要】
【国外来华专利技术】动态瓦片并行神经网络加速器
[0001]本专利技术涉及神经网络加速器,特别涉及神经网络加速器中的动态瓦片(tile)。
技术介绍
[0002]许多复杂的问题可以使用人工智能(AI)而不是传统程序来解决。对于更复杂的应用,往往需要深度学习。
[0003]专门针对AI的硬件加速器已经问世。深度神经网络(DNN)加速器使用许多并行计算引擎来加速深度学习AI应用。然而,这些引擎中的每一个都可能相当大,这增加了数据传输延迟。每个计算引擎的固定大小会导致某些工作负载的低效率,尤其是在使用许多卷积层时。并行的、固定的硬件可能与计算问题不匹配,导致未使用的引擎和低效利用。并行计算引擎的乘法累加器(MAC)效率可能会受到影响。
[0004]已经提出了许多改进深度神经网络的技术。使用开关映射或多级任务调度的控制流方案有固定的配置,可能无法提高MAC利用率。广播数据或提供激活共享的数据流方案同样有固定的配置,可能不会提高MAC利用率。多功能和单指令多数据(SIMD)系统可以有复杂的单元设计,从而增加硅面积。甚至已经提出了3D而不是2D阵列,但这些仍然有固定的配置。
[0005]期望有一种并行处理引擎的神经网络加速器,该引擎可重新配置为各种大小的瓦片(tile)。期望在神经网络加速器中提供动态瓦片大小,以最大化MAC利用率。还期望添加直接路径以减少数据传输延迟。进一步期望通过多功能计算单元来最小化数据传输延迟。
附图说明
[0006]图1是一个具有动态平铺的神经网络加速器的框图。
[0007] ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种动态瓦片神经网络加速器,包括:一个计算单元的阵列,每个计算单元都有乘法器和加法器
‑
比较器,它们根据控制比特对输入、权重和输出进行操作,以产生覆盖所述输出的结果;其中输入、权重、输出和控制比特在所述阵列内相邻的计算单元之间移位;配置控制器,当被配置为第一模式时,将所述计算单元的阵列重新配置为具有第一瓦片尺寸的多个瓦片,当被配置为第二模式时,将所述计算单元的阵列重新配置为至少一个具有第二瓦片尺寸的瓦片;其中,所述第二瓦片尺寸大于所述第一瓦片尺寸;一列行数据选择器,其插入在所述计算单元的阵列的相邻两列计算单元之间,其中,当所述配置控制器处于所述第一模式时,在该列行数据选择器中的一个行数据选择器绕过所述计算单元的阵列内的一个计算单元子阵列周围的权重和输出,其中,当所述配置控制器处于所述第二模式时,所述行数据选择器直接在所述计算单元的阵列的所述相邻两列的相邻计算单元之间直接传递权重和输出;一行列数据选择器,其插入在所述计算单元的阵列的相邻两行计算单元之间,其中,当所述配置控制器处于所述第一模式时,在该行列数据选择器中的一个列数据选择器绕过所述计算单元的阵列内的一个计算单元子阵列周围的控制比特和输入,其中,当所述配置控制器处于所述第二模式时,所述列数据选择器直接在所述计算单元的阵列的所述相邻两行的相邻计算单元之间传递控制比特和输入;一初始列的权重寄存器和输出寄存器,其中所述权重寄存器将权重移位到所述计算单元的阵列的第一列的边缘单元,其中所述输出寄存器接收从所述第一列的边缘单元移出的所述输出;其中,所述权重寄存器的权重从所述初始列移入所述第一列的边缘单元,然后从所述第一列的边缘单元移到与所述第一列相邻的第二列的计算单元,然后移到其他列的计算单元;其中,由所述计算单元产生的输出朝着所述初始列移位,移位到相邻的计算单元,并通过所述第二列计算单元移入所述第一列的边缘单元;由此,对于所述第一瓦片尺寸的阵列配置,所述配置控制器将所述行数据选择器和所述列数据选择器配置为绕过,对于所述第二瓦片尺寸的阵列,配置为不绕过。2.根据权利要求1所述的动态瓦片神经网络加速器,还包括:每个所述边缘单元中的矢量复用器,所述矢量复用器将从所述第二列移入边缘单元的输出,反馈到所述边缘单元中的加法器
‑
比较器的反馈输入,所述边缘单元用于比较所述反馈输入,以在移位到所述初始列的输出寄存器之前有条件地修改所述输出;其中所述边缘单元是修改过的计算单元,具有所述计算单元中不存在的矢量复用器,其中边缘单元使用所述矢量复用器将从相邻计算单元移入的所述输出反馈到所述加法器
‑
比较器,而所述计算单元不能将从相邻计算单元移入的所述输出反馈到所述加法器
‑
比较器。3.根据权利要求2所述的动态瓦片神经网络加速器,还包括:其中,当所述配置控制器处于所述第一模式时,所述行数据选择器直接从所述初始列的权重寄存器中选择权重,以绕过所述列的行数据选择器和所述初始列之间的计算单元。
4.根据权利要求3所述的动态瓦片神经网络加速器,还包括:一备用列的边缘单元,其与所述列行数据选择器相邻,且不在所初始列和所述列行数据选择器之间;其中,当所述配置控制器处于所述第二模式时,所述备用列的边缘单元作为计算单元运行;其中,当所述配置控制器处于所述第一模式时,所述备用列的边缘单元使用所述矢量复用器来反馈由其他计算单元移入的并最初由其他计算单元产生的输出。5.根据权利要求4所述的动态瓦片神经网络加速器,其中,当所述配置控制器处于所述第一模式时,所述行数据选择器将输出直接发送到所述初始列的输出寄存器,以绕过所述列行数据选择器和所述初始列之间的计算单元。6.根据权利要求5所述的动态瓦片神经网络加速器,其中每个计算单元和每个边缘单元包括一个单元,该单元包括:单元权重寄存器,用于存储移入所述单元的权重;单元输入寄存器,用于存储移入所述单元的输入;累加器寄存器,用于存储一个累积值;输出寄存器,其能够接收从相邻计算单元移入的输出,并能够接收存储在所述累加器寄存器中的所述累积值;乘法器,用于将来自所述单元权重寄存器的所述权重与来自所述单元输入寄存器的所述输入相乘,以产生一个结果;加法器
‑
比较器,其能够将所述乘法器的所述结果与存储在所述累加器寄存器中的所述累积值相加,以产生一个更新的累积值,来更新所述累加器寄存器,并且能够执行比较操作以更新所述累积值。7.根据权利要求6所述的动态瓦片神经网络加速器,其中每个边缘单元还包括:矢量复用器,其将存储在所述输出寄存器中的所述输出反馈到所述加法器
‑
比较器,其中,每个边缘单元能够对从相邻计算单元移入到所述输出寄存器的输出执行比较操作,其中所述计算单元不能对从相邻计算单元移入到所述输出寄存器的输出执行比较操作。8.根据权利要求7所述的动态瓦片神经网络加速器,其中所述矢量复用器通过所述乘法器反馈到所述加法器
‑
比较器。9.根据权利要求5所述的动态瓦片神经网络加速器,其中所述权重在一行中的相邻计算单元之间,向远离所述初始列的第一方向上水平移位;其中,所述输出在所述行中的相邻计算单元之间,以朝向所述初始列的第二方向水平移位;其中所述二方向与所...
【专利技术属性】
技术研发人员:李涛,单晓勍,黄嘉隆,刘雪娇,刘瑜,
申请(专利权)人:香港应用科技研究院有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。