面向向量处理器的二维矩阵卷积的向量化实现方法技术

技术编号:15863915 阅读:24 留言:0更新日期:2017-07-23 08:24
一种面向向量处理器的二维矩阵卷积的向量化实现方法,步骤为:S1:通过DMA控制器将卷积矩阵A和卷积核矩阵B分别搬运到向量存储单元和标量存储单元;S2:将卷积矩阵A的一行元素和卷积核矩阵B的一个元素广播后对应的一行元素一一对应相乘,结果进行累加;S3:通过混洗指令取出卷积矩阵A中取出的一行元素的前K‑1个元素至向量处理单元,与本次取出并广播至向量处理单元的卷积核矩阵B的第二个元素进行一一对应相乘,结果累加;S4:判断是否完成一行元素的计算;S5:将两个矩阵的数据地址指向下一数据行,完成矩阵C的第一行元素的计算,通过循环完成整个矩阵C的计算。本发明专利技术具有原理简单、操作方便、能大大增加算法并行度并提高计算效率等优点。

【技术实现步骤摘要】
面向向量处理器的二维矩阵卷积的向量化实现方法
本专利技术主要到涉及到向量处理器以及数据处理领域,特指一种面向向量处理器的二维矩阵卷积的向量化实现方法。
技术介绍
在许多科学计算任务和实际应用中都会涉及到二维矩阵卷积运算,如图像处理、机器学习、深度学习、人工神经网络及通信系统中的信号编解码等,对于不同规模的二维矩阵卷积计算任务,由于涉及到大量的数据访存和乘加运算,需要占用大量的访存和计算时间,并行效率比较差。如何利用向量处理器的多功能部件、多运算单元的特点来简单而高效的实现不同规模的二维矩阵卷积的向量化运算一直是业界的研究热点。在传统的标量处理器上,研究人员已经提出了一些有效的二维矩阵卷积的实现方法,以加速二维矩阵卷积的运算。但是,随着人工智能、深度学习、人工神经网络等学科的兴起,在图像识别、语音识别、文本识别及其他目标识别领域中二维矩阵卷积占有着越来越重要的位置,尤其是在当前目标识别率最高的卷积神经网络模型中,如何加速二维矩阵的卷积运算成为当前研究的热点和难点。随着高密集、实时运算应用的不断涌现,单芯片难以满足这类应用的高密度实时计算需求,因此,向量处理器得到了广泛应用。如图1所示,为一个向量处理器的典型结构,其具有处理器、程序存储器和数据存储器(两者均可以为任意的可访问存储器,包括外部高速缓冲存储器、外部RAM等)。向量处理器的处理器分为标量处理部件和向量处理部件两个部分,通常向量处理部件内有K个并行处理单元(PE),这些处理单元都有各自的运算部件和寄存器,处理单元间能通过规约指令进行数据交互,如并行处理单元之间的数据相乘、比较等。标量处理单元主要负责流控和逻辑判断指令的处理,而向量处理单元主要负责密集型的数据计算。向量处理单元运算所用的数据由向量数据存储单元提供。一般地,如图2所示,向量数据存储单元的BANK(存储体)的个数与向量处理单元的处理单元个数K是一致的。
技术实现思路
本专利技术要解决的技术问题就在于:针对现有技术存在的技术问题,本专利技术提供一种原理简单、操作方便、能大大增加算法并行度并提高计算效率的面向向量处理器的二维矩阵卷积的向量化实现方法。为解决上述技术问题,本专利技术采用以下技术方案:一种面向向量处理器的二维矩阵卷积的向量化实现方法,其步骤为:S1:输入卷积矩阵A和卷积核矩阵B;通过DMA控制器将卷积矩阵A和卷积核矩阵B分别搬运到向量存储单元和标量存储单元;S2:将卷积矩阵A的一行元素和卷积核矩阵B的一个元素广播后对应的一行元素一一对应相乘,相乘的结果通过一个初始化为0的累加寄存器进行累加;S3:通过混洗指令取出步骤S2中从卷积矩阵A中取出的一行元素的前K-1个元素至向量处理单元,并与本次取出并广播至向量处理单元的卷积核矩阵B的第二个元素进行一一对应相乘,结果累加至步骤S2中的累加寄存器中;其中K为并行处理单元的个数;S4:判断是否完成卷积核矩阵B一行元素的计算,若没有完成,返回步骤S3,若完成则继续步骤S5;S5:将卷积矩阵A和卷积核矩阵B的数据地址指向相应的下一数据行,最终完成卷积结果矩阵C的第一行元素的计算,通过循环步骤S2~步骤S5最终完成整个卷积结果矩阵C的计算。作为本专利技术的进一步改进:在上述步骤S1的搬运过程中,通过DMA控制器的配置,卷积矩阵A的每一行组织成一个数据帧,卷积核矩阵B的每一个元素组织成一个数据帧,整个卷积矩阵A共可分成p个数据帧,当所述数据帧的元素个数不等于向量处理器中并行处理单元的个数K的倍数时,在数据帧尾部补0使得每个数据帧的元素个数等于并行处理单元的个数K的倍数。作为本专利技术的进一步改进:对于m×m的卷积矩阵A卷积n×n的卷积核矩阵B的运算,得到(m-n+1)×(m-n+1)的卷积结果矩阵C,且m≧n,结果矩阵C的每一个元素都是由卷积核矩阵B(n×n)的所有元素在卷积矩阵A(m×m)上与卷积核矩阵B同样大小的区域进行点积运算并累加求和的结果。与现有技术相比,本专利技术的优点在于:本专利技术的面向向量处理器的二维矩阵卷积的向量化实现方法,通过DMA完成卷积矩阵A和卷积核矩阵B分别搬移至向量存储体和标量存储体,同时还充分利用向量处理器中的向量部件多个并行处理单元能够同时进行相同运算操作的特点来进行大量的同类型操作,通过配置特殊的混洗模式,大量复用每次取到的卷积矩阵A的数据,从而大大降低卷积矩阵A的访存量,进而大幅度提高二维矩阵卷积的计算效率,且步骤简单,易于实现。附图说明图1是典型的向量处理器结构示意图。图2是向量处理器中的向量数据存储单元的结构示意图。图3是本专利技术的总流程示意图。图4是本专利技术中卷积矩阵A在向量数据存储单元中的加载形式及卷积核矩阵B的元素标量广播至向量寄存器的示意图。图5是本专利技术在具体应用实例2中卷积矩阵A(16×16)在向量存储单元中的存放形式示意图。图6是本专利技术在具体应用中配置的混洗模式1的实施示意图。图7是本专利技术在具体应用中配置的混洗模式2的实施示意图。图8是本专利技术在具体应用实例2中完成卷积结果矩阵C一行元素的实现步骤示意图。图9是本专利技术在具体应用实例3中卷积矩阵A在向量数据存储单元中的存放形式示意图。图10是本专利技术在具体应用实例3中完成卷积结果矩阵C一行元素的实现步骤示意图。具体实施方式以下将结合说明书附图和具体实施例对本专利技术做进一步详细说明。如图3和图4所示,本专利技术的面向向量处理器的二维矩阵卷积的向量化实现方法,其步骤为:S1:输入卷积矩阵A和卷积核矩阵B;通过DMA控制器将卷积矩阵A和卷积核矩阵B分别搬运到向量存储单元和标量存储单元;S2:将卷积矩阵A的一行元素和卷积核矩阵B的一个元素广播后对应的一行元素一一对应相乘,相乘的结果通过一个初始化为0的累加寄存器进行累加;S3:通过混洗指令取出步骤S2中从卷积矩阵A中取出的一行元素的前K-1个元素至向量处理单元,并与本次取出并广播至向量处理单元的卷积核矩阵B的第二个元素进行一一对应相乘,结果累加至步骤S2中的累加寄存器中;其中K为并行处理单元的个数;S4:判断是否完成卷积核矩阵B一行元素的计算,若没有完成,返回步骤S3,若完成则继续步骤S5;S5:将卷积矩阵A和卷积核矩阵B的数据地址指向相应的下一数据行,最终完成卷积结果矩阵C的第一行元素的计算,通过循环步骤S2~步骤S5最终完成整个卷积结果矩阵C的计算。在上述步骤S1的搬运过程中,通过DMA控制器的配置,卷积矩阵A的每一行组织成一个数据帧,卷积核矩阵B的每一个元素组织成一个数据帧,整个卷积矩阵A共可分成p个数据帧,当所述数据帧的元素个数不等于向量处理器中并行处理单元的个数K的倍数时,在数据帧尾部补0使得每个数据帧的元素个数等于并行处理单元的个数K的倍数。在具体应用实例1中,本专利技术面向向量处理器的二维矩阵卷积的向量化实现方法,其详细流程为:S101、输入卷积矩阵A和卷积核矩阵B;通过DMA控制器将卷积矩阵A和卷积核矩阵B分别搬运到向量存储单元和标量存储单元;即:通过DMA控制器的配置,可以将卷积矩阵A的每一行组织成一个数据帧,卷积核矩阵B的每一个元素组织成一个数据帧,整个卷积矩阵A共可分成p个数据帧。当数据帧的元素个数不等于向量处理器中并行处理单元的个数K的倍数时,在数据帧尾部补0使得每个数据帧的元素个数等于并行处理单元的个数K的倍数。S10本文档来自技高网
...
面向向量处理器的二维矩阵卷积的向量化实现方法

【技术保护点】
一种面向向量处理器的二维矩阵卷积的向量化实现方法,其特征在于,步骤为:S1:输入卷积矩阵A和卷积核矩阵B;通过DMA控制器将卷积矩阵A和卷积核矩阵B分别搬运到向量存储单元和标量存储单元;S2:将卷积矩阵A的一行元素和卷积核矩阵B的一个元素广播后对应的一行元素一一对应相乘,相乘的结果通过一个初始化为0的累加寄存器进行累加;S3:通过混洗指令取出步骤S2中从卷积矩阵A中取出的一行元素的前K‑1个元素至向量处理单元,并与本次取出并广播至向量处理单元的卷积核矩阵B的第二个元素进行一一对应相乘,结果累加至步骤S2中的累加寄存器中;其中K为并行处理单元的个数;S4:判断是否完成卷积核矩阵B一行元素的计算,若没有完成,返回步骤S3,若完成则继续步骤S5;S5:将卷积矩阵A和卷积核矩阵B的数据地址指向相应的下一数据行,最终完成卷积结果矩阵C的第一行元素的计算,通过循环步骤S2~步骤S5最终完成整个卷积结果矩阵C的计算。

【技术特征摘要】
1.一种面向向量处理器的二维矩阵卷积的向量化实现方法,其特征在于,步骤为:S1:输入卷积矩阵A和卷积核矩阵B;通过DMA控制器将卷积矩阵A和卷积核矩阵B分别搬运到向量存储单元和标量存储单元;S2:将卷积矩阵A的一行元素和卷积核矩阵B的一个元素广播后对应的一行元素一一对应相乘,相乘的结果通过一个初始化为0的累加寄存器进行累加;S3:通过混洗指令取出步骤S2中从卷积矩阵A中取出的一行元素的前K-1个元素至向量处理单元,并与本次取出并广播至向量处理单元的卷积核矩阵B的第二个元素进行一一对应相乘,结果累加至步骤S2中的累加寄存器中;其中K为并行处理单元的个数;S4:判断是否完成卷积核矩阵B一行元素的计算,若没有完成,返回步骤S3,若完成则继续步骤S5;S5:将卷积矩阵A和卷积核矩阵B的数据地址指向相应的下一数据行,最终完成卷积结果矩阵C的第一行元素的计算,通过循环步骤S2...

【专利技术属性】
技术研发人员:郭阳张军阳刘仲扈啸王慧丽胡敏慧王子聪
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:湖南,43

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

1