一种处理器、可变精度的卷积网络计算方法和计算设备技术

技术编号:37862393 阅读:8 留言:0更新日期:2023-06-15 20:52
本说明书实施方式提供了一种处理器、可变精度的卷积网络计算方法和计算设备,该处理器通过指令集扩展的方式,将卷积神经网络中最密集的计算抽象为卷积网络指令,实现了对处理器进行卷积网络计算的硬件加速,提升了卷积神经网络的计算速度和效率。此外,所述卷积网络指令包括精度参数,可以支持可变精度数据的卷积网络计算,提高了处理器的适用性。提高了处理器的适用性。提高了处理器的适用性。

【技术实现步骤摘要】
一种处理器、可变精度的卷积网络计算方法和计算设备


[0001]本说明书中实施方式关于机器学习
,具体地说,涉及机器学习
下的基于指令集的加速技术,更具体地说,涉及一种处理器、可变精度的卷积网络计算方法和计算设备。

技术介绍

[0002]卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(Deep Learning)的代表算法之一,在一些情况下,卷积神经网络也可称为卷积网络。卷积神经网络具有表征学习(Representation Learning)能力,能够按其层级结构对输入信息进行平移不变分类(Shift

Invariant Classification),因此也被称为“平移不变人工神经网络(Shift

Invariant Artificial Neural Networks,SIANN)。卷积神经网络在图像识别、语音检测、自然语言处理等研究方向表现出色,取得了高精度的结果。
[0003]然而随着卷积神经网络的发展,卷积神经网络的应用范围不断扩展,有必要提高处理器对不同卷积神经网络计算的适用性,以使处理器可以满足不同应用场景下的神经网络计算需求。

技术实现思路

[0004]本说明书中多个实施方式提供一种处理器、可变精度的卷积网络计算方法和计算设备,以实现提高卷积神经网络的适用性的目的。
[0005]第一方面,本说明书的一个实施方式提供了一种处理器,包括:访存单元和卷积网络计算模块;其中,
[0006]所述访存单元,用于存储待运算数据;
[0007]所述卷积网络计算模块,用于根据卷积网络指令,从所述访存单元中获取目标精度的待运算数据,并对获取的目标精度的待运算数据进行卷积网络计算,所述卷积网络计算包括卷积、池化和激活计算中的至少一项;所述卷积网络指令包括精度参数,所述目标精度与所述精度参数相对应。
[0008]第二方面,本说明书的一个实施方式提供了一种可变精度的卷积网络计算方法,基于处理器实现,所述处理器包括访存单元和卷积网络计算模块,所述可变精度的卷积网络计算方法包括:
[0009]根据卷积网络指令,从所述访存单元中获取目标精度的待运算数据,并对获取的目标精度的待运算数据进行卷积网络计算,所述卷积网络计算包括卷积、池化和激活计算中的至少一项;所述卷积网络指令包括精度参数,所述目标精度与所述精度参数相对应。
[0010]第三方面,本说明书的一个实施方式提供了一种计算设备,包括如上述任一项所述的处理器。
[0011]第四方面,本说明书实施例提供了一种计算机可读存储介质,所述计算机可读存
储介质上存储有计算机程序,所述计算机程序被处理器运行时,实现如上述的可变精度的卷积网络计算方法。
[0012]第五方面,本说明书实施例提供了一种计算机程序产品或计算机程序,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;所述计算机设备的处理器从所述计算机可读存储介质读取所述计算机程序,所述处理器执行所述计算机程序时实现上述的可变精度的卷积网络计算方法的步骤。
[0013]本说明书提供的多个实施方式,通过指令集扩展的方式,将卷积神经网络中最密集的计算抽象为卷积网络指令,实现了对处理器进行卷积网络计算的硬件加速,提升了卷积神经网络的计算速度和效率。此外,所述卷积网络指令包括精度参数,可以支持可变精度数据的卷积网络计算,使得处理器即可以支持低精度数据的卷积网络计算,也可以支持高精度数据的卷积网络计算,扩宽了处理器的适用场景,提高了处理器的适用性。
附图说明
[0014]图1为本说明书的一个实施方式提供的处理器的结构示意图;
[0015]图2为本说明书的一个实施方式提供的卷积网络计算模块的结构示意图;
[0016]图3为本说明书的一个实施方式提供的向量寄存器堆的结构示意图;
[0017]图4为本说明书的一个实施方式提供的卷积窗口滑动的示意图;
[0018]图5为本说明书的一个实施方式提供的一种华莱士树乘法器的结构示意图;
[0019]图6为本说明书的一个实施方式提供的字节内有效数据的示意图;
[0020]图7为本说明书的一个实施方式提供的一种可变精度的卷积网络计算方法的流程示意图。
具体实施方式
[0021]除非另外定义,本说明书实施例使用的技术术语或者科学术语应当为本说明书所属领域内具有一般技能的人士所理解的通常意义。本说明书实施例使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来避免构成要素的混同而设置的。
[0022]除非上下文另有要求,否则,在整个说明书中,“多个”表示“至少两个”,“包括”被解释为开放、包含的意思,即为“包含,但不限于”。在说明书的描述中,术语“一个实施例”、“一些实施例”、“示例性实施例”、“示例”、“特定示例”或“一些示例”等旨在表明与该实施例或示例相关的特定特征、结构、材料或特性包括在本说明书的至少一个实施例或示例中。上述术语的示意性表示不一定是指同一实施例或示例。
[0023]下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
[0024]首先,对本说明书可能涉及的术语进行说明。
[0025]指令集(Instruction set)或指令集体系:是计算机体系结构中与程序设计有关的部分,包含了基本数据类型、指令集、寄存器、寻址模式、中断、异常处理以及外部的I/O。
指令集架构包含一系列的opcode(即操作码(机器语言)),以及由特定处理器执行的基本命令。或者可以将处理器能够执行的所有指令的集合称为指令集。
[0026]精简指令集(Reduced Instruction Set Computer,RISC),是计算机处理器的一种设计模式。这种设计思路对指令数目和寻址方式都做了精简,使其实现更容易,指令并行执行程度更好,编译器的效率更高。
[0027]RISC

V指令集,是一个基于精简指令集原则的开源指令集架构。
[0028]指令集扩展(Instruction Set Extension),在基本指令集之上的高级指令功能,分为官方设计的标准指令集扩展和用户自行设计的自定义指令集扩展。
[0029]流水线(Pipeline),是驱动处理器基于指令进行工作的方法。目前经典的流水线模型可以包括取指(Instruction Fetch,IF)

译码(Instruction Decode,ID)<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理器,其特征在于,包括:访存单元和卷积网络计算模块;其中,所述访存单元,用于存储待运算数据;所述卷积网络计算模块,用于根据卷积网络指令,从所述访存单元中获取目标精度的待运算数据,并对获取的目标精度的待运算数据进行卷积网络计算,所述卷积网络计算包括卷积、池化和激活计算中的至少一项;所述卷积网络指令包括精度参数,所述目标精度与所述精度参数相对应。2.根据权利要求1所述的处理器,其特征在于,所述卷积网络指令包括计算指令和访存指令,所述访存指令包括所述精度参数;所述卷积网络计算模块具体用于,根据所述访存指令,从所述访存单元中获取目标精度的待运算数据,根据所述计算指令对获取的目标精度的待运算数据进行卷积网络计算。3.根据权利要求2所述的处理器,其特征在于,所述计算指令包括卷积指令、池化指令和激活指令中的至少一项,所述访存指令包括直接向量载入指令和精度载入指令,所述精度载入指令包括所述精度参数;所述卷积网络计算模块包括:向量访存单元、向量寄存器堆和计算单元;其中,所述向量访存单元包括多个第一寄存器,所述向量寄存器堆包括多个第二寄存器和多个与所述第二寄存器一一对应的第三寄存器;所述向量访存单元用于根据所述精度载入指令,从所述访存单元中获取目标精度的待运算数据,并将获取的所述待运算数据和所述待运算数据的目标精度写入所述第一寄存器中;所述向量访存单元还用于根据所述直接向量载入指令,从与所述直接向量载入指令对应的第一寄存器中读取待运算数据的目标精度,并根据读取的目标精度向访存单元请求所述待运算数据,将所述访存单元返回的待运算数据拼接为数据向量存储到所述第二寄存器中,并将所述数据向量中各所述待运算数据的目标精度写入与所述第二寄存器对应的第三寄存器中;所述向量寄存器堆,用于将所述第二寄存器存储的数据向量和所述第三寄存器存储的目标精度传输给所述计算单元;所述计算单元,用于根据所述计算指令和所述数据向量中各所述待运算数据的目标精度,对所述数据向量进行卷积、池化或激活计算。4.根据权利要求3所述的处理器,其特征在于,所述多个第二寄存器划分为第一寄存器组和第二寄存器组,所述第一寄存器组和所述第二寄存器组均包括K个寄存器小组,所述寄存器小组由K个所述第二寄存器构成;K为所述处理器支持的最大窗口大小;所述寄存器小组对应所述处理器支持的最大窗口的一行。5.根据权利要求4所述的处理器,其特征在于,所述访存指令还包括:部分向量载入指令;所述向量访存单元,还用于根据所述部分向量载入指令,从与所述部分向量载入指令对应的第一寄存器中,读取最新进入所述卷积窗口的一列待运算数据和所述待运算数据的目标精度,将读取的一列待运算数据与所述卷积窗口的其他列待运算数据拼接为数据向量存储到所述第二寄存器中,并将所述数据向量中各所述待运算数据的目标精度写入与所述第二寄存器对应的第三寄存器中。6.根据权利要求3所述的处理器,其特征在于,...

【专利技术属性】
技术研发人员:薛盛可鲁路李颖敏
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

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

1