卷积扩展指令的执行方法以及相关产品技术

技术编号:21116716 阅读:22 留言:0更新日期:2019-05-16 09:17
本披露提供一种卷积扩展指令的实现方法及相关产品,包括:计算装置从存储器读取所述卷积扩展指令获取所述卷积扩展指令的输入数据、卷积核以及变换OP操作;所述卷积扩展指令包括:操作码和操作域,所述操作码包括:所述卷积扩展指令的标识;所述操作域包括:卷积子域和OP子域,所述卷积子域包括:存储输入数据的地址和卷积核的地址,所述OP子域包括:所述OP操作的标识码;计算装置依据所述OP操作的标识码确定所述OP操作以及所述OP操作的对象,所述计算装置依据所述OP操作的对象对所述输入数据和卷积核执行OP操作和卷积运算得到运算结果。本披露提供的技术方案具有减少计算量,降低功耗的优点。

【技术实现步骤摘要】
卷积扩展指令的执行方法以及相关产品
本披露涉及神经网络
,具体涉及一种卷积扩展指令的实现方法以及相关产品。
技术介绍
卷积神经网络是近年来广泛应用于模式识别、图像处理等领域的一种高效识别算法,它具有结构简单、训练参数少和适应性强、平移、旋转、缩放等特点。由于CNN/DNN的特征检测层通过训练数据进行学习,所以在使用CNN/DNN时,避免了显示的特征抽取,而隐式地从训练数据中进行学习;再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。在已有的计算机领域应用中,与卷积运算相关的应用十分普遍。本专利技术专注于卷积神经网络,目前可以执行此种运算的主流装置如下:在现有技术中,一种进行卷积神经网络运算的已知方案是使用通用处理器,该方法通过通用寄存器堆和通用功能部件来执行通用指令,从而执行卷积神经网络运算。然而,该方法的缺点之一是单个通用处理器多用于标量计算,在进行卷积神经网络运算时运算性能较低。而使用多个通用处理器并行执行时,通用处理器之间的相互通讯又有可能成为性能瓶颈。在另一种现有技术中,使用图形处理器(GPU)来进行向量计算,其中,通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来进行卷积神经网络运算。然而,上述方案中,GPU片上缓存太小,在进行大规模卷积神经网络运算时需要不断进行片外数据搬运,片外带宽成为了主要性能瓶颈。披露内容本披露实施例提供了一种卷积扩展指令的实现方法以及卷积扩展指令及相关产品,可实现提升性能瓶颈,降低功耗的优点。第一方面,本披露实施例提供一种卷积扩展指令的执行方法,所述方法包括如下步骤:计算装置从存储器读取所述卷积扩展指令获取所述卷积扩展指令的输入数据、卷积核以及变换OP操作;所述卷积扩展指令包括:操作码和操作域,所述操作码包括:所述卷积扩展指令的标识;所述操作域包括:卷积子域和OP子域,所述卷积子域包括:存储输入数据的地址和卷积核的地址,所述OP子域包括:所述OP操作的标识码;计算装置依据所述OP操作的标识码确定所述OP操作以及所述OP操作的对象,所述计算装置依据所述OP操作的对象对所述输入数据和卷积核执行OP操作和卷积运算得到运算结果。可选的,所述OP操作包括:转置操作、共轭操作、BLAS变换、Reshape变换或pad变换。可选的,所述计算装置依据所述OP操作的对象对所述输入数据和卷积核执行OP操作和卷积运算得到所述运算结果,包括:如所述OP操作的对象包括输入数据和卷积核,所述计算装置将所述输入数据执行OP操作得到变换输入数据,将卷积核执行OP操作得到变换卷积核,将变换输入数据和变换卷积核执行卷积运算得到所述运算结果;如所述OP操作的对象包括中间结果,所述中间结果为所述输入数据和卷积核的卷积运算结果,所述计算装置将所述输入数据和卷积核执行卷积运算得到中间结果,将所述中间结果执行OP操作得到所述运算结果;如所述OP操作的对象包括中间结果、输入数据和卷积核,所述计算装置将所述输入数据执行OP操作得到变换输入数据,将卷积核执行OP操作得到变换卷积核,将变换输入数据和变换卷积核执行卷积运算得到变换中间结果,将所述变换中间结果执行OP变换得到所述运算结果。可选的,所述操作域还包括:激活子域包括,所述激活子域包括:激活操作的标识码或所述激活操作的插值表地址,所述方法还包括:计算装置通过所述激活子域对所述运算结果执行激活操作得到所述指令的最终结果。可选的,计算装置通过所述激活子域对所述运算结果执行激活操作得到所述指令的最终结果,包括:如所述激活子域包括:激活操作的插值表地址,计算装置提取所述激活操作的插值表地址对应的插值表,将所述运算结果与所述插值表执行激活运算得到所述指令的最终结果;如所述激活子域包括:激活操作的标识码,计算装置识别所述激活操作的标识码确定所述激活操作,读取所述激活操作的插值表,将所述插值表与所述运算结果执行激活运算得到所述指令的最终结果。第二方面,提供一种计算装置,所述计算装置包括:存储器、运算单元、互联模块、运算单元、控制器单元和数据访问单元;其中,所述运算单元,包括:加法运算器、乘法运算器和OP变换器;控制器单元,用于从存储器读取所述卷积扩展指令获取所述卷积扩展指令的输入数据、卷积核以及变换OP操作;所述卷积扩展指令包括:操作码和操作域,所述操作码包括:所述卷积扩展指令的标识;所述操作域包括:卷积子域和OP子域,所述卷积子域包括:存储输入数据的地址和卷积核的地址,所述OP子域包括:所述OP操作的标识码;数据访问单元,用于获取所述输入数据的地址和卷积核的地址对应的输入数据以及卷积核;所述控制器单元,用于依据所述OP操作的标识码确定所述OP操作以及所述OP操作的对象;所述运算单元,用于依据所述OP操作的对象对所述输入数据和卷积核执行OP操作和卷积运算得到运算结果。可选的,所述OP操作包括:转置操作、共轭操作、BLAS变换、Reshape变换或pad变换。可选的,所述运算单元,具体用于如所述OP操作的对象包括输入数据和卷积核,所述计算装置将所述输入数据执行OP操作得到变换输入数据,将卷积核执行OP操作得到变换卷积核,将变换输入数据和变换卷积核执行卷积运算得到所述运算结果;如所述OP操作的对象包括中间结果,所述中间结果为所述输入数据和卷积核的卷积运算结果,所述计算装置将所述输入数据和卷积核执行卷积运算得到中间结果,将所述中间结果执行OP操作得到所述运算结果;如所述OP操作的对象包括中间结果、输入数据和卷积核,所述计算装置将所述输入数据执行OP操作得到变换输入数据,将卷积核执行OP操作得到变换卷积核,将变换输入数据和变换卷积核执行卷积运算得到变换中间结果,将所述变换中间结果执行OP变换得到所述运算结果。可选的,所述操作域还包括:激活子域,所述激活子域包括:激活操作的标识码或所述激活操作的插值表地址;所述运算单元,用于通过所述激活子域对所述运算结果执行激活操作得到所述指令的最终结果。可选的,所述运算单元,具体用于如所述激活子域包括:激活操作的插值表地址,计算装置提取所述激活操作的插值表地址对应的插值表,将所述运算结果与所述插值表执行激活运算得到所述指令的最终结果;如所述激活子域包括:激活操作的标识码,计算装置识别所述激活操作的标识码确定所述激活操作,读取所述激活操作的插值表,将所述插值表与所述运算结果执行激活运算得到所述指令的最终结果。第三方面,提供一种计算机可读存储介质,其特征在于,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行第一方面提供的方法。第四方面,提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行第一方面所述的方法。第五方面,提供一种芯片,所述芯片包括第二方面提供的计算装置。第六方面,提供一种芯片封装结构,所述芯片封装结构包括第五方面提供的芯片。第七方面,提供一种板卡,所述板卡包括第六方面提供的芯片封装结构。第八方面,提供一种电子装置,所述电子装置包括第七方面提供的一种板卡。可以看出,通过本披露实施例,其具有单一指令实现卷积运算以及OP操作的优点,所以其具有减少计算时间,节省功耗的本文档来自技高网...

【技术保护点】
1.一种卷积扩展指令的执行方法,其特征在于,所述方法包括如下步骤:计算装置从存储器读取所述卷积扩展指令获取所述卷积扩展指令的输入数据、卷积核以及变换OP操作;所述卷积扩展指令包括:操作码和操作域,所述操作码包括:所述卷积扩展指令的标识;所述操作域包括:卷积子域和OP子域,所述卷积子域包括:存储输入数据的地址和卷积核的地址,所述OP子域包括:所述OP操作的标识码;计算装置依据所述OP操作的标识码确定所述OP操作以及所述OP操作的对象,所述计算装置依据所述OP操作的对象对所述输入数据和卷积核执行OP操作和卷积运算得到运算结果。

【技术特征摘要】
1.一种卷积扩展指令的执行方法,其特征在于,所述方法包括如下步骤:计算装置从存储器读取所述卷积扩展指令获取所述卷积扩展指令的输入数据、卷积核以及变换OP操作;所述卷积扩展指令包括:操作码和操作域,所述操作码包括:所述卷积扩展指令的标识;所述操作域包括:卷积子域和OP子域,所述卷积子域包括:存储输入数据的地址和卷积核的地址,所述OP子域包括:所述OP操作的标识码;计算装置依据所述OP操作的标识码确定所述OP操作以及所述OP操作的对象,所述计算装置依据所述OP操作的对象对所述输入数据和卷积核执行OP操作和卷积运算得到运算结果。2.根据权利要求1所述的方法,其特征在于,所述OP操作包括:转置操作、共轭操作、BLAS变换、Reshape变换或pad变换。3.根据权利要求1所述的方法,其特征在于,所述计算装置依据所述OP操作的对象对所述输入数据和卷积核执行OP操作和卷积运算得到所述运算结果,包括:如所述OP操作的对象包括输入数据和卷积核,所述计算装置将所述输入数据执行OP操作得到变换输入数据,将卷积核执行OP操作得到变换卷积核,将变换输入数据和变换卷积核执行卷积运算得到所述运算结果;如所述OP操作的对象包括中间结果,所述中间结果为所述输入数据和卷积核的卷积运算结果,所述计算装置将所述输入数据和卷积核执行卷积运算得到中间结果,将所述中间结果执行OP操作得到所述运算结果;如所述OP操作的对象包括中间结果、输入数据和卷积核,所述计算装置将所述输入数据执行OP操作得到变换输入数据,将卷积核执行OP操作得到变换卷积核,将变换输入数据和变换卷积核执行卷积运算得到变换中间结果,将所述变换中间结果执行OP变换得到所述运算结果。4.根据权利要求1所述的方法,其特征在于,所述操作域还包括:激活子域包括,所述激活子域包括:激活操作的标识码或所述激活操作的插值表地址,所述方法还包括:计算装置通过所述激活子域对所述运算结果执行激活操作得到所述指令的最终结果。5.根据权利要求4所述的方法,其特征在于,计算装置通过所述激活子域对所述运算结果执行激活操作得到所述指令的最终结果,包括:如所述激活子域包括:激活操作的插值表地址,计算装置提取所述激活操作的插值表地址对应的插值表,将所述运算结果与所述插值表执行激活运算得到所述指令的最终结果;如所述激活子域包括:激活操作的标识码,计算装置识别所述激活操作的标识码确定所述激活操作,读取所述激活操作的插值表,将所述插值表与所述运算结果执行激活运算得到所述指令的最终结果。6.一种计算装置,其特征在于,所述计算装置包括:存储器、运算单元、互联模块、运算单元、控制器单元和数据访问单元;其中,所述运算单元,包括:加法运算器、乘法运算器和OP变换器;控制器单元,用于从存储器读取所述卷积扩展指令获取所述卷积扩展指令的输入数据、卷积核以...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海,31

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

1