一种协处理器制造技术

技术编号:39656302 阅读:9 留言:0更新日期:2023-12-09 11:25
本发明专利技术属于计算机领域,具体涉及一种协处理器

【技术实现步骤摘要】
一种协处理器、协处理器数据处理方法、设备及介质


[0001]本专利技术属于计算机领域,具体涉及一种协处理器

数据处理方法

设备及介质


技术介绍

[0002]神经网络是人工智能发展的主要领域,近年来随着深度神经网络不断发展,在模型准确率不断提高的同时,模型的复杂度

计算量也不断增加

现在大多数研究人员使用
GPU
进行网络训练和推理,但
GPU
不仅价格高昂功耗消耗也十分巨大
。ASIC
设计出的加速器性能优异

能效比高,但灵活性差

开发周期长

设计成本高
。CPU
作为通用处理器更为常见,但很难满足复杂神经网络模型,特别是深度神经网络大规模的计算需求

[0003]以上种种解决方案都无法以低成本

高效能地解决日益增加的神经网络模型的训练及推理问题

[0004]因此,亟需一种有效的方案来应对上述问题


技术实现思路

[0005]为解决上述问题,本专利技术提出一种协处理器,包括译码模块

计算模块

输入数据控制模块

数据缓存模块,其中:
[0006]所述译码模块挂载在主处理器上配置用于接收所述主处理器的自定义扩展指令,并根据所述自定义扩展指令向所述协处理器中的预定模块发送控制预定模块功能的控制指令;
[0007]所述输入数据控制模块配置用于基于所述译码模块的控制指令从数据缓存模块中获取待计算数据和
/
或权重数据,并将所述待计算数据和
/
或权重数据输入到计算模块;
[0008]所述数据缓存模块配置用于获取待计算数据并缓存和
/
或保存所述计算模块输出的中间数据;
[0009]所述计算模块配置用于基于输入数据控制模块输入的数据按照所述译码模块的控制指令进行计算,并将计算结果发送到数据缓存模块

[0010]在本专利技术的一些实施方式中,数据缓存模块包括:
[0011]中间缓存模块,所述中间缓存模块配置接收所述计算模块输出的中间数据,并根据译码模块的控制指令对所述控制指令指定的数据进行缓存;
[0012]输出缓存模块,所述输出缓存模块配置用于接收所述计算模块的输出数据并根据译码模块的控制指令将所述输出数据发送到存储器中

[0013]在本专利技术的一些实施方式中,输入数据控制模块进一步配置用于:
[0014]根据所述译码模块的控制指令从所述中间缓存模块中获取所述控制指令指定的中间数据,并将所述中间数据发送到计算模块

[0015]在本专利技术的一些实施方式中,数据缓存模块还包括:
[0016]权重缓存模块,所述权重缓存模块配置用于预加载并缓存计算模块使用的权重数据;
[0017]计算数据缓存模块,所述计算数据缓存模块配置用于预加载并缓存所述计算模块使用的图像输入数据

[0018]在本专利技术的一些实施方式中,计算模块包括卷积运算模块

激活模块

池化模块:
[0019]所述卷积运算模块配置用于根据所述译码模块的控制指令对输入数据控制模块输入的待计算数据或中间数据按照所述控制指令指定大小的卷积核进行卷积运算,以及根据卷积运算结果更新权重数据并根据译码模块的控制指令将所述更新的权重数据发送到数据缓存模块或激活模块;
[0020]所述激活模块配置用于根据所述译码模块的控制指令对输入的数据按照预定的激活方式进行激活运算,并根据所述译码模块的控制指令将所述激活运算的结构发送到数据缓存模块或计算模块中的池化模块或卷积运算模块;
[0021]所述池化模块配置用于根据所述译码模块的控制指令对输入数据进行池化计算,并将池化运算的结果根据所述译码模块的控制指令发送到数据缓存模块或激活模块

[0022]在本专利技术的一些实施方式中,还包括:
[0023]存储控制模块,所述存储控制模块配置用于根据译码模块的控制指令将从对应的存储器中读取对应的待计算数据和
/
或权重数据并将所述待计算数据和
/
或权重数据发送到数据缓存模块

[0024]在本专利技术的一些实施方式中,存储控制模块进一步配置用于:
[0025]根据译码模块的控制指令将数据缓存模块对应的输出数据发送到对应的存储器中

[0026]本专利技术的另一方面还提出一种协处理器的数据处理方法,包括:
[0027]通过协处理器的译码模块接收主处理器的自定义扩展指令,并根据所述自定义扩展指令向协处理器中的预定模块发送控制所述预定模块功能的控制指令;
[0028]通过协处理器的输入数据控制模块对接收到对应的控制指令向从协处理器的数据缓存模块中获取待计算数据和
/
或权重数据,并将所述待计算数据和
/
或权重数据输入到协处理器的计算模块;
[0029]通过协处理器的数据缓存模块获取待计算数据并缓存和
/
或缓存所述计算模块输出的中间数据;
[0030]通过协处理器的计算模块基于输入数据控制模块输入的数据按照所述译码模块的控制指令进行计算,并将计算结果发送到数据缓存模块

[0031]本专利技术的又一方面还提出一种计算机设备,包括:
[0032]至少一个处理器;以及
[0033]存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现上述实施方式中任意一项所述方法的步骤

[0034]本专利技术的再一方面还提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述实施方式中任意一项所述方法的步骤

[0035]本专利技术提出的一种协处理器具有以下有益效果:
[0036]1、
由协处理器处理神经网络中耗时的卷积运算,通过设置中间缓存模块,减少了神经网络中对应的计算流模块中时对外部存储器的访问,实现了对神经网络的推理加速

[0037]2、
通过自定义指令可实现不同尺寸卷积核

不同卷积步长

池化步长

边缘补零的配置,可满足神经网络不同卷积层的配置要求

附图说明
[0038]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图
...

【技术保护点】

【技术特征摘要】
1.
一种协处理器,其特征在于,包括译码模块

计算模块

输入数据控制模块

数据缓存模块,其中:所述译码模块挂载在主处理器上配置用于接收所述主处理器的自定义扩展指令,并根据所述自定义扩展指令向所述协处理器中的预定模块发送控制预定模块功能的控制指令;所述输入数据控制模块配置用于基于所述译码模块的控制指令从数据缓存模块中获取待计算数据和
/
或权重数据,并将所述待计算数据和
/
或权重数据输入到计算模块;所述数据缓存模块配置用于获取待计算数据并缓存和
/
或保存所述计算模块输出的中间数据;所述计算模块配置用于基于输入数据控制模块输入的数据按照所述译码模块的控制指令进行计算,并将计算结果发送到数据缓存模块
。2.
根据权利要求1所述的协处理器,其特征在于,所述数据缓存模块包括:中间缓存模块,所述中间缓存模块配置接收所述计算模块输出的中间数据,并根据译码模块的控制指令对所述控制指令指定的数据进行缓存;输出缓存模块,所述输出缓存模块配置用于接收所述计算模块的输出数据并根据译码模块的控制指令将所述输出数据发送到存储器中
。3.
根据权利要求2所述的协处理器,其特征在于,所述输入数据控制模块进一步配置用于:根据所述译码模块的控制指令从所述中间缓存模块中获取所述控制指令指定的中间数据,并将所述中间数据发送到计算模块
。4.
根据权利要求1所述的协处理器,其特征在于,所述数据缓存模块还包括:权重缓存模块,所述权重缓存模块配置用于预加载并缓存计算模块使用的权重数据;计算数据缓存模块,所述计算数据缓存模块配置用于预加载并缓存所述计算模块使用的图像输入数据
。5.
根据权利要求1所述的协处理器,其特征在于,所述计算模块包括卷积运算模块

激活模块

池化模块:所述卷积运算模块配置用于根据所述译码模块的控制指令对输入数据控制模块输入的待计算数据或中间数据按照所述控制指令指定大小的卷积核进行卷积运算,以及根据卷积运算结果更新权重数据并根据...

【专利技术属性】
技术研发人员:方兴刘刚周利艳王梦龙
申请(专利权)人:山东云海国创云计算装备产业创新中心有限公司
类型:发明
国别省市:

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

1