[发明专利]一种基于层叠寄存器窗的处理器并行加速方法在审
申请号: | 201910306336.3 | 申请日: | 2019-04-17 |
公开(公告)号: | CN111831336A | 公开(公告)日: | 2020-10-27 |
发明(设计)人: | 伍世聪;林森;李珏 | 申请(专利权)人: | 北京芯启科技有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/30;G06N3/063 |
代理公司: | 北京名华博信知识产权代理有限公司 11453 | 代理人: | 李冬梅;苗源 |
地址: | 100091 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 层叠 寄存器 处理器 并行 加速 方法 | ||
本发明提供一种基于层叠寄存器窗的处理器并行加速方法,此设计适用于人工智能硬件加速计算装置中的向量、矩阵或张量运算等规整的循环体。设计包括:FORK‑JOIN指令译码器,一个主寄存器窗(GPR),一个或多个副寄存器窗(SPR_A、SPR_B等等,如图1所示),一个或多个循环体加速指令序列(ITER_1、ITER_2等等)。SPR与GPR共享同样的寄存器命名,FORK指令将程序切换到指定副寄存器窗执行,多个ITER指令序列在各自寄存器窗并行执行,JOIN指令将各ITER指令序列结果从副寄存器窗合并回主寄存器窗。此发明用统一的设计方法,扩充并行计算资源,弹性可伸缩。
技术领域
本发明属于计算机硬件、人工智能硬件加速的领域,数字集成电路设计领域。
背景技术
深度卷积神经网络算法由多层具体的神经元算法层、隐藏层组成,主要包含有卷积层,激活函数,池化层等。在这个特定领域中,许多发明通过高性能CPU来提供一般性、通用性的数学计算,或通过GPU来加速更具有规律的卷积计算。并行计算有指令级别的并行,如多发射处理器,也有处理器核级别的并行,如多核处理器。本发明提供一种循环体级别的并行,用较低的硬件代价,得到较好的计算加速。
发明内容
深度卷积神经网络算法,其中很多操作从软件的角度看,是很规整的多层嵌套循环,而且数据相关性低,非常适合并行加速。如图7所示,一个常见的卷积操作可以通过一系列循环嵌套来完成。
本发明提供一种基于层叠寄存器窗的,循环体级别的并行加速方法。
由FORK-JOIN指令译码器,一个主寄存器窗(GPR),一个或多个副寄存器窗(SPR_A、SPR_B等等,如图1所示),一个或多个循环体加速指令序列(ITER_1、ITER_2等等)。每个副寄存器窗有自己的加速指令序列缓存、加速指令执行单元、控制电路,共同构成一个有机整体。下面提到SPR_A、SPR_B等术语时,指的是这个整体。
比如计算矩阵乘法C=A*B,
可以展开成N*N个乘累加的并行运算:
1.FORK指令将矩阵A的行地址和矩阵B的列地址从GPR窗传到某个SPR窗(图2)。
2.指令序列中循环体加速指令开始执行。
3.JOIN指令等待指令序列中的指令执行完成,然后将结果从SPR窗传回GPR窗(图3)。
计算过程伪代码描述如下:
FORK SPR_A,R0,R8,2
ITER_MUL_SUM 4
FORK SPR_B,R0,R12,2
ITER_MUL_SUM 4
FORK SPR_B,R0,R16,2
ITER_MUL_SUM 4
FORK SPR_B,R0,R20,2
ITER_MUL_SUM 4
……
JOIN SPR_A,R10,R2,1
JOIN SPR_B,R14,R2,1
JOIN SPR_C,R18,R2,1
JOIN SPR_D,R22,R2,1
如图4所示
附图说明
图1为本发明主寄存器窗与副寄存器窗示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京芯启科技有限公司,未经北京芯启科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910306336.3/2.html,转载请声明来源钻瓜专利网。