当前位置: 首页 > 专利查询>南京大学专利>正文

一种兼容脉动阵列加速器的矢量处理器及处理方法技术

技术编号:38315407 阅读:10 留言:0更新日期:2023-07-29 08:57
本发明专利技术提供的一种兼容脉动阵列加速器的矢量处理器及处理方法,加入了脉动阵列加速器,并基于RISC

【技术实现步骤摘要】
一种兼容脉动阵列加速器的矢量处理器及处理方法


[0001]本申请涉及集成电路及通信
,特别涉及一种兼容脉动阵列加速器的矢量处理器及处理方法。

技术介绍

[0002]神经网络模型中通常都包括大量的网络层,每一个网络层都存在权重矩阵与激活矩阵之间的卷积操作,其中权重矩阵中包含大量的权重数据,激活矩阵中包含大量的激活数据。在进行卷积操作时,一般会将卷积操作转化成矩阵乘法,然后使用矩阵乘法处理器进行计算,进而获得卷积操作的结果。
[0003]矩阵乘法处理器通常包括多个基本运算单元,这些基本运算单元排布成脉动阵列,多个权重数据和激活数据在时钟信号的控制下广播至脉动阵列中,整个矩阵乘法运算流程通过控制信号控制每一个基本运算单元不断的对接收到的权重数据和激活数据进行乘法累加运算实现。
[0004]随着深度神经网络的发展,矩阵乘加计算逐渐成为处理器重点关注的计算部分。现如今的矩阵乘加计算大多数利用算术逻辑运算单元实现,算术逻辑单元每周期只能进行单个固定宽度的数据进行计算,无法充分利用矩阵乘加计算的计算能力。导致了现有的采用算术逻辑单元实现的矩阵乘加计算算法计算效率较低,数据利用率低。从现有方案来看,瓶颈在于当前的硬件架构只能实现串行的矢量与标量之间的计算,其本质还是标量与标量的计算,从而导致计算架构的计算利用率不能达到理想水平因此,如何利用有限的资源更好的设计实现矩阵乘加计算的硬件单元成为了亟待解决的问题。

技术实现思路

[0005]本申请提供了一种兼容脉动阵列加速器的矢量处理器及处理方法,可用于解决计算利用率低的技术问题。
[0006]第一方面,本申请实施例提供一种兼容脉动阵列加速器的矢量处理器,包括:
[0007]控制模块,被配置为用于接收外部传入的操作指令,以及对操作指令进行解析,得到矢量计算指令和矢量存储加载指令,以及确定所述矢量计算指令发送的功能单元;
[0008]矢量加载存储模块,所述矢量加载存储模块用于根据所述矢量存储加载指令,从外部加载待处理数据;
[0009]脉动阵列加速模块,被配置为用于矢量的矩阵乘加计算,包括脉动阵列核心和缓存单元;所述缓存单元根据矢量加载存储指令从所述矢量加载存储模块接收待处理数据,所述脉动阵列核心根据矢量计算指令将待处理数据输入所述脉动阵列核心中进行矢量之间的运算,得出计算结果并返回所述矢量加载存储模块,所述计算结果向外部传输。
[0010]结合第一方面,所述缓存单元根据矢量加载存储指令从所述矢量加载存储模块接收待处理数据,并按照三个可配置维度将待处理数据存储为三维数据阵列;其中所述缓存单元包括激活数据存储模块和权重数据存储模块,用于对三维数据阵列进行修正,使得三
维数据阵列规模与脉动阵列核心中的计算单元阵列匹配;根据矢量计算指令,将三维数据阵列按照与脉动阵列核心中的计算单元阵列匹配的形式输入脉动阵列核心中,脉动阵列核心进行矢量之间的运算,得出计算结果;所述矢量加载存储模块读取所述计算结果并向外部传输。
[0011]结合第一方面,所述操作指令为自定义指令,包括矢量加载指令、所述矢量计算指令和矢量存储指令,所述自定义指令中包括目标地址信息和动作信息;所述自定义指令从外部输入矢量处理器,由所述控制模块负责识别和协调分发。
[0012]结合第一方面,所述脉动阵列核心包括若干计算单元,所述计算单元在M*N*T三个维度上阵列分布,其中M为阵列宽度,N为阵列长度,T为阵列分区数,各个分区同时并行计算,分区与分区之间的数据互不影响。
[0013]结合第一方面,所述缓存单元用于接收从所述矢量存储加载模块传入的三维数据阵列。
[0014]结合第一方面,激活数据存储模块包括第一数据重用单元以及第一数据重排单元,第一数据重用单元用于对三维数据阵列进行数据重用,第一数据重排单元用于对三维数据阵列进行列方向上的补零重排;权重数据存储模块包括第二数据重用单元以及第二数据重排单元,第二数据重用单元用于对三维数据阵列进行数据重用,第二数据重排单元用于对三维数据阵列进行行方向上的补零重排。
[0015]结合第一方面,第一数据重排单元和第二数据重排单元均包括多级寄存器与数据选择逻辑,用于对规模为M*N*T的三维数据阵列通过补零以及数据的有序选择,经过M+N

1个周期后,输出大小为M*(M+N

1)*T的三维数据阵列;并将M*(M+N

1)*T的三维数据阵列输入所述脉动阵列核心进行计算。
[0016]结合第一方面,所述脉动阵列加速模块还包括所述2D数据处理单元,所述2D数据处理单元与所述脉动阵列核心连接,被配置为通过2D数据处理单元中的行相加模块对脉动阵列核心的输出数据进行列相加处理,根据所述矢量计算指令,选择将处理后的数据继续叠加或者直接输出至所述矢量加载存储模块。
[0017]结合第一方面,所述控制模块包括指令分发单元和指令定序单元,所述指令分发单元接收外部传入的操作指令,对操作指令进行处理后识别出操作指令的种类和对应的功能单元并将操作指令传入所述指令定序单元,所述指令定序单元向所有功能单元广播指令,并监控指令的运行状态;所述矢量加载存储模块包括数据加载单元和数据存储单元,所述数据加载单元通过AXI AR总线加载数据,所述数据存储单元通过AXI AW总线存储数据。
[0018]第二方面,一种兼容脉动阵列加速器的矢量处理方法,包括:
[0019]控制模块接收外部传入的操作指令;
[0020]控制模块对操作指令进行解析,得到矢量计算指令和矢量存储加载指令,以及确定所述矢量计算指令发送的功能单元;
[0021]矢量加载存储模块根据所述矢量存储加载指令,从外部加载待处理数据;
[0022]脉动阵列加速模块对矢量进行矩阵乘加计算,缓存单元根据矢量加载存储指令从所述矢量加载存储模块接收待处理数据,所述脉动阵列核心根据矢量计算指令将待处理数据输入所述脉动阵列核心中进行矢量之间的运算,得出计算结果并返回所述矢量加载存储模块,所述计算结果向外部传输。
[0023]有益效果:
[0024]本专利技术提供的矢量处理器,加入了脉动阵列加速器,并基于RISC

V开源指令集自定义设计了专门的矢量指令调用脉动阵列加速器,用于实现矢量与矢量之间的计算。相比于原有的采用算术逻辑单元每个周期只能进行单个固定宽度的数据进行计算,脉动阵列加速器充分利用了原架构上的存储单元,增大了数据吞吐量,实现较多矢量数据的之间的计算,使得脉动阵列加速器的加速效果得到充分利用,计算利用率得到大幅提高。脉动阵列加速器可以支持多精度及超低比特量化计算,提高矢量计算的效率,同时矢量处理器的并行性和可拓展性可以极大地提高数据计算密度,从而实现算力的有效提升。
附图说明
[0025]图1为实施例1中的矢量处理器框架结构示意图;
[0026]图2为实施例2中的矢量处理器框架结构示意图;
[0027]图3为实施例2中脉动阵列本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种兼容脉动阵列加速器的矢量处理器,其特征在于,包括:控制模块,被配置为用于接收外部传入的操作指令,以及对操作指令进行解析,得到矢量计算指令和矢量存储加载指令,以及确定所述矢量计算指令发送的功能单元;矢量加载存储模块,所述矢量加载存储模块用于根据所述矢量存储加载指令,从外部加载待处理数据;脉动阵列加速模块,被配置为用于矢量的矩阵乘加计算,包括脉动阵列核心和缓存单元;所述缓存单元根据矢量加载存储指令从所述矢量加载存储模块接收待处理数据,所述脉动阵列核心根据矢量计算指令将待处理数据输入所述脉动阵列核心中进行矢量之间的运算,得出计算结果并返回所述矢量加载存储模块,所述计算结果向外部传输。2.根据权利要求1所述的兼容脉动阵列加速器的矢量处理器,其特征在于,所述缓存单元根据矢量加载存储指令从所述矢量加载存储模块接收待处理数据,并按照三个可配置维度将待处理数据存储为三维数据阵列;其中所述缓存单元包括激活数据存储模块和权重数据存储模块,用于对三维数据阵列进行修正,使得三维数据阵列规模与脉动阵列核心中的计算单元阵列匹配;根据矢量计算指令,将三维数据阵列按照与脉动阵列核心中的计算单元阵列匹配的形式输入脉动阵列核心中,脉动阵列核心进行矢量之间的运算,得出计算结果;所述矢量加载存储模块读取所述计算结果并向外部传输。3.根据权利要求1所述的兼容脉动阵列加速器的矢量处理器,其特征在于,所述操作指令为自定义指令,包括矢量加载指令、所述矢量计算指令和矢量存储指令,所述自定义指令中包括目标地址信息和动作信息;所述自定义指令从外部输入矢量处理器,由所述控制模块负责识别和协调分发。4.根据权利要求2所述的兼容脉动阵列加速器的矢量处理器,其特征在于,所述脉动阵列核心包括若干计算单元,所述计算单元在M*N*T三个维度上阵列分布,其中M为阵列宽度,N为阵列长度,T为阵列分区数,各个分区同时并行计算,分区与分区之间的数据互不影响。5.根据权利要求1

3任意一项所述的一种兼容脉动阵列加速器的矢量处理器,其特征在于,所述缓存单元用于接收从所述矢量存储加载模块传入的三维数据阵列。6.根据权利要求2所述的一种兼容脉动阵列加速器的矢量处理器,其特征在于,激活数据存储模块包括第一数据重用单元以及第一数据重排单元,第一数据重用单元用于对三维数据阵列进行数...

【专利技术属性】
技术研发人员:林军王川宁方超王中风
申请(专利权)人:南京大学
类型:发明
国别省市:

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

1