公开/公告号CN113138957A
专利类型发明专利
公开/公告日2021-07-20
原文格式PDF
申请/专利号CN202110336218.4
申请日2021-03-29
分类号G06F15/78(20060101);G06N3/04(20060101);G06N3/08(20060101);
代理机构11283 北京润平知识产权代理有限公司;
代理人肖冰滨;王晓晓
地址 100192 北京市海淀区西小口路66号中关村东升科技园A区3号楼
入库时间 2023-06-19 11:54:11
技术领域
本发明涉及人工智能领域,具体地涉及一种用于神经网络推理的芯片以及一种加速神经网络推理的方法。
背景技术
卷积神经网络算法包含大量参数,采用常规训练方法得到的卷积神经网络模型的参数量非常大,通常在百兆大小的量级,而推理运算需要消耗大量运算资源,硬件资源珍贵的嵌入式平台无法承受存储负担。
为了加快卷积神经网络算法在芯片上的推理速度,目前发展出了多种模型轻量化方法。网络剪枝是深度神经网络压缩中广泛使用的方法。例如,将网络中所有权重参数都看作单个参数的最优脑损伤(optimal braindamage,OBD)方法,优化时基于对角假设、极值假设和二次假设利用二阶导数近似参数显著性移除网络中不重要的权重来提高网络精度和泛化能力。由于单个权重剪枝为非结构化剪枝,剪枝部分参数将会得到稀疏网络,使得剪枝后的卷积核不规则,导致芯片难以兼顾算力资源利用率和低功耗的问题。
发明内容
本发明实施方式的目的是提供一种用于神经网络推理的芯片及加速神经网络推理的方法,以解决上述的芯片难以兼顾算力资源利用率和低功耗的问题。
为了实现上述目的,本发明一方面提供一种用于神经网络推理的芯片,包括存算单元,所述存算单元包括多个不同输入长度的存储计算阵列,多个所述存储计算阵列用于部署与其输入长度相对应的卷积核。
进一步地,所述存储计算阵列上部署的卷积核是经过剪枝和聚类的。
进一步地,所述存算单元包括四个存储计算阵列,四个存储计算阵列的输入长度分别为1位、3位、6位、9位。
进一步地,所述1位的存储计算阵列用于部署1位参数的卷积核;
所述3位的存储计算阵列用于部署2位或3位参数的卷积核;
所述6位的存储计算阵列用于部署4位至6位参数的卷积核;
所述9位的存储计算阵列用于部署7位至9位参数的卷积核。
进一步地,每个所述存储计算阵列对应一个卷积核,多个所述存储计算阵列并行运算。
本发明另一方面提供一种加速神经网络推理的方法,基于权利要求1所述的用于神经网络推理的芯片,所述方法包括:
对卷积神经网络的各层卷积核参数进行剪枝和聚类;
将聚类后的卷积核分配到所述用于神经网络推理的芯片的与所述卷积核的参数位相对应的存储计算阵列。
进一步地,所述对卷积神经网络的各层卷积核参数进行剪枝和聚类,包括:对卷积神经网络的各层卷积核参数进行剪枝;对剪枝后的各层卷积核参数进行量化;对量化后的各层卷积核参数进行聚类。
进一步地,所述对卷积神经网络的各层卷积核参数进行剪枝,包括:
获取所述卷积神经网络的各层卷积核的参数值,将各层卷积核的小于预设阈值的参数剪掉。
进一步地,所述将聚类后的卷积核分配到所述用于神经网络推理的芯片的与所述卷积核的参数位相对应的存储计算阵列,包括:
将1位参数的卷积核分配到1位的存储计算阵列;
将2位或3位参数的卷积核分配到3位的存储计算阵列;
将4位至6位参数的卷积核分配到6位的存储计算阵列;
将7位至9位参数的卷积核分配到9位的存储计算阵列。
本发明还提供一种存储介质,其上存储有计算机程序指令,所述计算机程序指令被执行时实现上述的加速神经网络推理的方法。
本发明的用于神经网络推理的芯片,通过在存算单元中增设对应不同输入长度的存储计算阵列,以适配经过剪枝的卷积核,在降低功耗的同时最大化利用算力资源,可满足算力资源利用率和低功耗的需求。
本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:
图1是本发明实施方式提供的用于神经网络推理的芯片的存算单元的框图;
图2-5是本发明一种实施方式提供的用于神经网络推理的芯片的存储计算阵列的示例图;
图6是对应图2-5所示的存储计算阵列的卷积核的示例图;
图7是本发明一种实施方式提供的加速神经网络推理的方法的流程图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
通常,卷积神经网络(Convolutional Neural Networks,CNN)采用3x3卷积核来实现。为了加速神经网络算法的推理,采用最大化卷积核运算并行的方式来设计用于推理运算的芯片。然而,剪枝后的神经网络运算单元的输入维度不是固定的,因为不同卷积层的卷积核被剪掉的参数是不固定的(即卷积核的输入长度是不固定的),若针对每个卷积核都采用相同位数的运算单元来进行推理计算,不能最大化利用算力资源且增加功耗,推理效率也不高。
图1是本发明实施方式提供的用于神经网络推理的芯片的存算单元的框图。本发明实施方式提供一种用于神经网络推理的存算一体芯片,所述芯片包括存算单元。如图1所示,所述存算单元包括多个不同输入长度的存储计算阵列,多个所述存储计算阵列用于部署与其输入长度相对应的卷积核。其中,每个存储计算阵列上部署的卷积核均经过剪枝和聚类处理。本发明实施方式提供的芯片在降低功耗的同时最大化利用算力资源,满足算力资源利用率和低功耗的需求。
图2-5是本发明一种实施方式提供的用于神经网络推理的芯片的存储计算阵列的示例图。本实施方式的存算单元包括四个存储计算阵列,四个存储计算阵列的输入长度分别为1位、3位、6位、9位,如图2-5所示,图2是输入长度为1位的存储计算阵列,图3是输入长度为3位的存储计算阵列,图4是输入长度为6位的存储计算阵列,图5是输入长度为9位的存储计算阵列。其中,1位的存储计算阵列用于部署1位参数的卷积核;3位的存储计算阵列用于部署2位或3位参数的卷积核;6位的存储计算阵列用于部署4位至6位参数的卷积核;9位的存储计算阵列用于部署7位至9位参数的卷积核。图6是对应图2-5所示的存储计算阵列的卷积核的示例图。如图6所示,从左至右第一个卷积核对应图2所示的1位的存储计算阵列,第二个卷积核对应图3所示的3位的存储计算阵列,第三个卷积核对应图4所示的6位的存储计算阵列,第四个卷积核对应图5所示的9位的存储计算阵列。在卷积神经网络进行推理运算过程中,对剪枝、量化后的卷积核进行分配时,每个卷积核都将被分配到对应的存储计算阵列,即每个存储计算阵列对应一个卷积核,多个存储计算阵列并行运算。
本发明实施方式的用于神经网络推理的存算一体芯片,通过在存算单元中增设对应不同输入长度的存储计算阵列,以适配经过剪枝的卷积核,在降低功耗的同时最大化利用算力资源,可满足算力资源利用率和低功耗的需求。
图7是本发明一种实施方式提供的加速神经网络推理的方法的流程图。如图7所示,本实施方式提供的加速神经网络推理的方法,基于上述的用于神经网络推理的芯片,所述加速神经网络推理的方法包括以下步骤:
S1、对卷积神经网络的各层卷积核参数进行剪枝和聚类。
在一个具体的实施方式中,剪枝、聚类包括以下子步骤:
S11、对卷积神经网络的各层卷积核参数进行剪枝,例如获取所述卷积神经网络的各层卷积核的参数值,将各层卷积核的小于预设阈值的参数剪掉。
S12、对剪枝后的各层卷积核参数进行量化,例如对剪枝后保留的卷积核参数进行int8量化,将float 32bit的卷积操作(乘加指令)转换为int8的卷积操作,以减少计算量。
S13、对量化后的各层卷积核参数进行聚类,即对保留的参数逐个卷积层进行聚类,得到聚类簇cluster0、cluster1、cluster2、cluster3,其中cluster0的参数较少,cluster3的参数较多。
S2、将聚类后的卷积核分配到所述用于神经网络推理的芯片的与所述卷积核的参数位相对应的存储计算阵列。具体而言,将1位参数的卷积核分配到1位的存储计算阵列;将2位或3位参数的卷积核分配到3位的存储计算阵列;将4位至6位参数的卷积核分配到6位的存储计算阵列;将7位至9位参数的卷积核分配到9位的存储计算阵列。例如,将聚类簇cluster0、cluster1、cluster2、cluster3对应输入到1位、3位、6位、9位的存储计算阵列。
本发明实施方式的加速神经网络推理的方法,通过将剪枝、聚类后的卷积核部署到对应输入长度的存储计算阵列,最大化利用算力资源同时降低功耗,可加速神经网络算法推理。
本发明实施方式还提供一种机器可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被执行时实现上述的加速神经网络推理的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、系统和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
机译: 加速神经网络进行推理和训练的精确异质性的系统,装置,方法和体系结构
机译: 卷积神经网络推理的硬件加速方法及装置
机译: 用于神经网络模型的推理方法和装置,以及计算机设备和存储介质