【技术实现步骤摘要】
一种矩阵块间提前切换的脉动阵列优化方法及装置
[0001]本专利技术涉及脉动阵列,具体涉及一种矩阵块间提前切换的脉动阵列优化方法及装置。
技术介绍
[0002]最近十多年里,深度学习驱动人工智能经历了一场学术和工业复兴,深度神经网络(DNN)极大地推进了计算机视觉、图像处理、语音识别等应用的发展,并交叉融合在众多应用和学科领域中。其中,递归神经网络(RNN)、长期短期记忆(LSTM)和卷积神经网络(CNN)占据了95%的数据中心需求,而这3种类型的神经网络通常都是转化为通用矩阵乘(GEMM)进行运算。在所有提出的DNN加速器体系结构中,脉动阵列(SA,Systolic Array)因为其操作数的移动仅出现在相邻两个PE(Processing Element)之间,使得其结构规整、控制简单并且可以提供极高的计算密度(高吞吐和低面积),从而在工业界(例如Google TPU ASIC、Xilinx FPGA overlays xDNN)和学术界被广泛采用。
[0003]在脉动阵列执行矩阵乘运算时,片上缓冲通常不足以存放完整的输入矩阵,因此需要在片下对其分块。脉动阵列大都会采用片上双缓冲的结构,使得下一组片下矩阵分块的数据准备延时隐藏在当前组矩阵分块的计算过程中,从而使得脉动阵列的数据准备没有气泡。而对于加载到片上缓冲的矩阵,还需要根据脉动阵列的PE行/列数对其自动分块,并且在运行过程中频繁的进行片上块间矩阵的切换。
[0004]传统的脉动阵列单拍输入的数据量通常为2O(O为脉动阵列的PE行/列数),输出的 ...
【技术保护点】
【技术特征摘要】
1.一种矩阵块间提前切换的脉动阵列优化方法,其特征在于,包括:S101,根据脉动阵列的规模,将输入矩阵A、输入矩阵B和结果矩阵C进行分块;S102,采用两个寄存器来依次加载矩阵B的连续分块,使得在输入矩阵B的任意第i个分块B
i
全部使用完成、开始使用输入矩阵B的第i+1个分块B
i+1
时提前将输入矩阵B的第i+2个分块B
i+2
加载到两个寄存器中;且在使用输入矩阵B的第i个分块B
i
时,将输入矩阵A和结果矩阵C中对应的分块流入脉动阵列以参与通用矩阵乘运算。2.根据权利要求1所述的矩阵块间提前切换的脉动阵列优化方法,其特征在于,步骤S102中采用两个寄存器来依次加载矩阵B的连续分块包括:S201,初始化分块编号i为0;S202,判断分块编号i对2进行模运算的结果为0是否成立,若成立则将输入矩阵B的第i个分块B
i
加载到寄存器B
‑
reg0,否则跳转S206;S203,判断输入矩阵B的第i个分块B
i
是否全部使用完成,若尚未全部使用完成,则跳转S203继续判断;否则,计算输入矩阵B的第i+2个分块B
i+2
的开始加载时刻T
B(i+2)
,跳转S204;S204,判断输入矩阵B的第i+2个分块B
i+2
的开始加载时刻T
B(i+2)
是否等于0,若不等于0,则将输入矩阵B的第i+2个分块B
i+2
的开始加载时刻T
B(i+2)
自减,跳转S204继续判断;否则,跳转S205;S205,将分块编号i的值加2;若分块编号i小于输入矩阵B的分块数量,则跳转S202;否则结束并退出;S206,将输入矩阵B的第i个分块B
i
加载到寄存器B
‑
reg1;S207,判断输入矩阵B的第i个分块B
i
是否全部使用完成,若尚未全部使用完成,则跳转S207继续判断;否则,计算输入矩阵B的第i+2个分块B
i+2
的开始加载时刻T
B(i+2)
,跳转S208;S208,判断输入矩阵B的第i+2个分块B
i+2
的开始加载时刻T
B(i+2)
是否等于0,若不等于0,则将输入矩阵B的第i+2个分块B
i+2
的开始加载时刻T
B(i+2)
自减,跳转S208继续判断;否则,跳转S209;S209,将分块编号i的值加2;若分块编号i小于输入矩阵B的分块数量,则跳转S202;否则结束并退出。3.根据权利要求2所述的矩阵块间提前切换的脉动阵列优化方法,其特征在于,所述第i+2个分块B
i+2
的开始加载时刻T
B(i+2)
的计算函数表达式为:或者所述第i+2个分块B
i+2
的开始加载时刻T
B(i+2)
的计算函数表达式为:T
B(i+2)
=[R
×
(K
i
‑
1)+N
i
]
‑
K
i
,其中,T
B(i+2)
为第i+2个分块B
i+2
的开始加载时刻,R为通用矩阵乘计算部件的延时,N
i
为第i个分块B
i
的列数。4.根据权利要求1所述的矩阵块间提前切换的脉动阵列优化方法,其特征在于,步骤S102中参与通用矩阵乘运算的函数表达...
【专利技术属性】
技术研发人员:文梅,鞠鑫,曹亚松,冯静,杨建超,汤珉琎,杨韧禹,汪志,沈俊忠,康宇晗,方亚豪,黄浩岚,李宇航,
申请(专利权)人:中国人民解放军国防科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。