一种GEMM运算运算方法及装置制造方法及图纸

技术编号:22135821 阅读:27 留言:0更新日期:2019-09-18 09:27
本公开提供一种GEMM运算方法及装置,所述方法应用于芯片装置,所述芯片装置用于执行GEMM运算。本披露提供的技术方案具有计算处理时间短,能耗低的优点。

A GEMM Operating Method and Device

【技术实现步骤摘要】
一种GEMM运算运算方法及装置
本申请涉及芯片处理
,具体涉及一种GEMM运算运算方法及装置。
技术介绍
人工神经网络(ArtificialNeuralNetwork,即ANN),是20世纪80年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。现有的神经网络的运算基于CPU(CentralProcessingUnit,中央处理器)或GPU(英文:GraphicsProcessingUnit,图形处理器)来实现运算,此种运算的功耗高、计算时间长。
技术实现思路
本申请实施例提供了一种GEMM运算运算方法及装置,可提升GEMM运算的处理速度,提高效率、节省功耗。第一方面,提供一种GEMM运算方法,所述方法应用于芯片装置,所述芯片装置包括:主电路和多个从电路,所述方法包括如下步骤:所述主电路接收矩阵A、矩阵B以及GEMM指令,将矩阵A以及矩阵B分别执行OP操作得到OP(A)以及OP(B),将OP(A)拆分成M个基础数据块,将M个基础数据块分发给所述多个从电路,将OP(B)广播给所述多个从电路;所述多个从电路并行执行基础数据块与OP(B)的内积运算得到多个处理结果,将多个处理结果发送至所述主电路;所述主电路将所述多个处理结果拼接得到矩阵乘积结果,将所述矩阵乘积结果与alpha相乘后与beta*C相加得到所述GEMM运算结果;所述alpha、所述beta为标量,所述C为输出矩阵。在一种可选的方案中,所述将M个基础数据块分发给所述多个从电路具体包括:将所述M个基础数据块按任意不重复的方式分发给所述多个从处理电路。在一种可选的方案中,所述将OP(B)广播给所述多个从电路;所述多个从电路并行执行基础数据块与OP(B)的内积运算得到多个处理结果,将多个处理结果发送至所述主电路具体包括:所述主电路将所述OP(B)的前α列广播给所述多个从电路,所述多个从电路并行执行基础数据块与前α列的内积运算得到多个前处理结果,将所述多个前处理结果发送至所述主处理电路,所述主处理电路将所述OP(B)的中β列广播给所述多个从处理电路,所述多个从电路并行执行基础数据块与中β列的内积运算得到多个中处理结果,将所述多个中处理结果发送至所述主处理电路;所述主处理电路将所述OP(B)的后γ列广播给所述多个从处理电路,所述多个从电路并行执行基础数据块与后γ列的内积运算得到多个后处理结果,将所述多个后处理结果发送至所述主处理电路,所述主处理电路将多个前处理结果、多个中处理结果以及多个后处理结果按前、中、后组合一起得到矩阵乘积结果。在一种可选的方案中,如所述多个从处理电路为k个从处理电路,所述k为大于等于2的整数;所述主电路将M个基础数据块分发给所述多个从电路具体包括:如M>k,将M个基础数据块中的一个或多个分发给k个从电路中的一个从电路;如M≤k,所述主电路将M个基础数据块中的一个分发给k个从电路中的一个从电路。在一种可选的方案中,所述芯片装置还包括:分支电路,所述分支电路连接所述主电路与多个从电路,所述方法还包括:所述分支电路转发所述主电路与多个从电路之间的数据。在一种可选的方案中,所述主电路包括:向量运算器电路、算数逻辑单元电路、累加器电路、矩阵转置电路、直接内存存取电路或数据重排电路中的一种或任意组合。在一种可选的方案中,所述OP操作具体包括:转置操作、非线性函数运算或池化操作。第二方面,提供一种芯片装置,所述芯片装置包括:主电路和多个从电路,所述主电路,用于接收矩阵A、矩阵B以及GEMM指令,将矩阵A以及矩阵B分别执行OP操作得到OP(A)以及OP(B),将OP(A)拆分成M个基础数据块,将M个基础数据块分发给所述多个从电路,将OP(B)广播给所述多个从电路;所述多个从电路,用于并行执行基础数据块与OP(B)的内积运算得到多个处理结果,将多个处理结果发送至所述主电路;所述主电路,还用于将所述多个处理结果拼接得到矩阵乘积结果,将矩阵乘积结果与alpha相乘后与beta*C相加得到所述GEMM运算结果;所述alpha、所述beta为标量,所述C为输出矩阵。在一种可选的方案中,所述主电路,具体用于将所述M个基础数据块按任意不重复的方式分发给所述多个从处理电路在一种可选的方案中,所述主电路,具体用于将所述OP(B)的前α列广播给所述多个从电路;所述多个从电路,具体用于并行执行基础数据块与前α列的内积运算得到多个前处理结果,将所述多个前处理结果发送至所述主处理电路;所述主处理电路,具体用于将所述OP(B)的中β列广播给所述多个从处理电路;所述多个从电路。具体用于并行执行基础数据块与中β列的内积运算得到多个中处理结果,将所述多个中处理结果发送至所述主处理电路;所述主处理电路,具体用于将所述OP(B)的后γ列广播给所述多个从处理电路;所述多个从电路,具体用于并行执行基础数据块与后γ列的内积运算得到多个后处理结果,将所述多个后处理结果发送至所述主处理电路;所述主处理电路,具体用于将多个前处理结果、多个中处理结果以及多个后处理结果按前、中、后组合一起得到矩阵乘积结果。在一种可选的方案中,所述多个从处理电路为k个从处理电路;如M>k,所述主电路,具体用于将M个基础数据块中的一个或多个分发给k个从电路中的一个从电路;如M≤k,所述主电路,具体用于将M个基础数据块中的一个分发给k个从电路中的一个从电路。在一种可选的方案中,所述芯片装置还包括分支电路,所述分支电路连接所述主电路以及所述多个从电路;所述分支电路,用于转发所述主电路与多个从电路之间的数据。在一种可选的方案中,所述分支电路包括多个分支电路,每个分支电路连接所述主电路以及至少一个从处理电路。在一种可选的方案中,所述主电路包括:向量运算器电路、算数逻辑单元电路、累加器电路、矩阵转置电路、直接内存存取电路或数据重排电路中的一种或任意组合。在一种可选的方案中,所述从电路包括:内积运算器电路或累加器电路等中一个或任意组合。第三方面,提供一种计算装置,所述计算装置包括第二方面提供的芯片装置。第四方面,提供一种计算机可读存储介质,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行第一方面提供的方法。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1a是本披露提供的一种芯片装置的结构示意图。图1b是本披露提供的另一种芯片装置的结构示意图。图1c是本披露提供的芯片装置的数据分发示意图。图1d为一种芯片装置的数据回传示意图。图2是本披露实施例提供的一种神经网络的运算方法的流程示意图。图2a是本披露实施例提供的矩阵A乘以矩阵B的示意图。图3是本披露实施例提供的神经网络的运算方法的流程示意图。图3a为全连接1的单样本数据示意图。图3b为全连接2的多样本数据示意图。图3c为卷积1的M个卷积核数据示意图。图3d为卷积2输入本文档来自技高网...

【技术保护点】
1.一种GEMM运算方法,其特征在于,所述方法应用于芯片装置,所述芯片装置包括:主电路和多个从电路,所述方法包括如下步骤:所述主电路接收矩阵A、矩阵B以及GEMM指令,将矩阵A以及矩阵B分别执行OP操作得到OP(A)以及OP(B),将OP(A)拆分成M个基础数据块,将M个基础数据块分发给所述多个从电路,将OP(B)广播给所述多个从电路;所述多个从电路并行执行基础数据块与OP(B)的内积运算得到多个处理结果,将多个处理结果发送至所述主电路;所述主电路将所述多个处理结果拼接得到矩阵乘积结果,将所述矩阵乘积结果与alpha相乘后与beta*C相加得到所述GEMM运算结果;所述alpha、所述beta为标量,所述C为输出矩阵。

【技术特征摘要】
1.一种GEMM运算方法,其特征在于,所述方法应用于芯片装置,所述芯片装置包括:主电路和多个从电路,所述方法包括如下步骤:所述主电路接收矩阵A、矩阵B以及GEMM指令,将矩阵A以及矩阵B分别执行OP操作得到OP(A)以及OP(B),将OP(A)拆分成M个基础数据块,将M个基础数据块分发给所述多个从电路,将OP(B)广播给所述多个从电路;所述多个从电路并行执行基础数据块与OP(B)的内积运算得到多个处理结果,将多个处理结果发送至所述主电路;所述主电路将所述多个处理结果拼接得到矩阵乘积结果,将所述矩阵乘积结果与alpha相乘后与beta*C相加得到所述GEMM运算结果;所述alpha、所述beta为标量,所述C为输出矩阵。2.根据权利要求1所述的方法,其特征在于,所述将M个基础数据块分发给所述多个从电路具体包括:将所述M个基础数据块按任意不重复的方式分发给所述多个从处理电路。3.根据权利要求1所述的方法,其特征在于,所述将OP(B)广播给所述多个从电路;所述多个从电路并行执行基础数据块与OP(B)的内积运算得到多个处理结果,将多个处理结果发送至所述主电路具体包括:所述主电路将所述OP(B)的前α列广播给所述多个从电路,所述多个从电路并行执行基础数据块与前α列的内积运算得到多个前处理结果,将所述多个前处理结果发送至所述主处理电路,所述主处理电路将所述OP(B)的中β列广播给所述多个从处理电路,所述多个从电路并行执行基础数据块与中β列的内积运算得到多个中处理结果,将所述多个中处理结果发送至所述主处理电路;所述主处理电路将所述OP(B)的后γ列广播给所述多个从处理电路,所述多个从电路并行执行基础数据块与后γ列的内积运算得到多个后处理结果,将所述多个后处理结果发送至所述主处理电路,所述主处理电路将多个前处理结果、多个中处理结果以及多个后处理结果按前、中、后组合一起得到矩阵乘积...

【专利技术属性】
技术研发人员:刘少礼陈天石王秉睿张尧
申请(专利权)人:北京中科寒武纪科技有限公司
类型:发明
国别省市:北京,11

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

1