CN113396425B - 加速方法、装置和片上系统 - Google Patents

加速方法、装置和片上系统 Download PDF

Info

Publication number
CN113396425B
CN113396425B CN201980091542.5A CN201980091542A CN113396425B CN 113396425 B CN113396425 B CN 113396425B CN 201980091542 A CN201980091542 A CN 201980091542A CN 113396425 B CN113396425 B CN 113396425B
Authority
CN
China
Prior art keywords
nth
accelerator
layer
calculation result
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980091542.5A
Other languages
English (en)
Other versions
CN113396425A (zh
Inventor
何晓飞
悉达多·卡维利帕蒂
阮航
马宇飞
胡金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Fabu Technology Co Ltd
Original Assignee
Hangzhou Fabu Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Fabu Technology Co Ltd filed Critical Hangzhou Fabu Technology Co Ltd
Publication of CN113396425A publication Critical patent/CN113396425A/zh
Application granted granted Critical
Publication of CN113396425B publication Critical patent/CN113396425B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

提供了一种加速方法、装置和片上系统。该加速方法包括:加速器从控制器接收第N层的第N个参数信息,其中,深度神经网络的M个层对应于该加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M;根据第N个参数信息执行第N层的计算;以及向该控制器发送第N层的第N个计算结果信息,该第N个计算结果信息指示第N层的计算完成,该计算结果信息包括第N层的计算结果。然后可以实现硬件加速器的ASIC实现的完全灵活性,可以支持任何一种基于DNN的算法,提高加速器的通用性。

Description

加速方法、装置和片上系统
技术领域
本申请涉及深度神经网络的加速的技术领域,尤其涉及一种加速方法、装置和片上系统(system on chip,SoC)。
背景技术
随着人工智能(artificial intelligence,AI)的发展,AI中的一些计算可以通过设置在片上系统(system on chip,SoC)上的各种组件来完成,例如,AI中的一些计算可以通过使用AI加速器来加速。
目前,深度神经网络(deep neural network,DNN)在AI加速器上运行,最流行的DNN是卷积神经网络(Convolution neural network,CNN)。CNN是一系列层,其在深度学习算法(deep learning algorithm)中堆叠以形成任务图形。随着用于自动驾驶的深度学习算法的出现,CNN通过向网络添加更多层以提高准确性而变得越来越深层。每一层都是一组数学运算,其将一个三维输入数据转换为另一个三维输入数据。每层的特征都由一组超参数定义,这些超参数通常作为可编程寄存器存储在硬件(hardware,HW)中。
专用集成电路(Alication specific integrated circuit,ASIC)在设计早期需要完整的深度学习算法知识,这限制了开发后期(或流片后)算法变更的灵活性。现场可编程门阵列(Field-programmable gate array,FPGA)/图形处理单元(graphics processingunit,GPU)灵活但耗电,只能用于训练,不能用于大规模部署。
提供该背景信息以揭示申请人认为可能与本申请相关的信息。无须承认,也不应解释为,任何前述信息构成针对本申请的现有技术。
发明内容
鉴于上述内容,为了克服上述问题,本申请提供了一种加速方法、装置和片上系统。
前述和其他目的通过独立权利要求的主题实现。从从属权利要求、说明书和附图,进一步的实施形式是显而易见的。
本申请的第一方面涉及一种加速方法,所述方法包括:运行深度神经网络的加速器从控制器接收第N层的第N个参数信息,其中,所述深度神经网络的M个层对应于所述加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M;所述加速器根据所述第N个参数信息执行所述第N层的计算;所述加速器向所述控制器发送所述第N层的第N个计算结果,所述第N个计算结果信息指示所述第N层的计算完成,其中,所述计算结果信息包括所述第N层的计算结果。
本申请的第二方面涉及一种加速方法,所述方法包括:控制器为深度神经网络中的第N层生成第N个参数信息;所述控制器向运行所述深度神经网络的加速器发送所述第N个参数信息,其中,所述深度神经网络的M个层对应于所述加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M;所述控制器从所述加速器接收所述第N层的第N个计算结果信息,所述第N个计算结果信息指示所述第N层的计算完成,其中,所述计算结果信息包括所述第N层的计算结果。
本申请的第三方面涉及一种运行深度神经网络的加速器,所述加速器包括接收单元、执行单元和发送单元。所述接收单元用于从控制器接收第N层的第N个参数信息,其中,所述深度神经网络的M个层对应于所述加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M。所述执行单元用于根据所述第N个参数信息执行所述第N层的计算。所述发送单元用于向所述控制器发送所述第N层的第N个计算结果,所述第N个计算结果信息指示所述第N层的计算完成,其中,所述计算结果信息包括所述第N层的计算结果。
本申请的第四方面涉及一种控制器,所述控制器包括生成单元、发送单元和接收单元。所述生成单元用于为深度神经网络中的第N层生成第N个参数信息。所述发送单元用于向运行所述深度神经网络的加速器发送所述第N个参数信息,其中,所述深度神经网络的M个层对应于所述加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M。所述接收单元用于从所述加速器接收所述第N层的第N个计算结果信息,所述第N个计算结果信息指示第N层的计算完成,其中,所述计算结果信息包括所述第N层的计算结果。
本申请的第五方面涉及一种运行深度神经网络的加速器,所述加速器包括接口装置和处理器装置。所述接口装置用于从控制器接收第N层的第N个参数信息,其中,所述深度神经网络的M个层对应于所述加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M。所述处理器装置用于根据所述第N个参数信息执行所述第N层的计算。所述接口装置还用于向所述控制器发送所述第N层的第N个计算结果信息,所述第N个计算结果信息指示所述第N层的计算完成,其中,所述计算结果信息包括所述第N层的计算结果。
本申请的第六方面涉及一种控制器,所述控制器包括接口装置和处理器装置。所述处理器装置用于为深度神经网络中的第N层生成第N个参数信息。所述接口装置用于向运行所述深度神经网络的加速器发送所述第N个参数信息,其中,所述深度神经网络的M个层对应于所述加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M。所述接口装置还用于从所述加速器接收所述第N层的第N个计算结果信息,所述第N个计算结果信息指示第N层的计算完成,其中,所述计算结果信息包括所述第N层的计算结果。
本申请的第七方面涉及一种片上系统,所述片上系统包括根据第三方面或第五方面的所述加速器以及根据第四方面或第六方面的所述控制器。
通过在本申请中提供的所述加速方法、装置和片上系统,可以实现硬件加速器的ASIC实现的完全灵活性,可以支持任何一种基于DNN的算法,提高加速器的通用性。
附图说明
附图用于提供对本申请的进一步理解,其构成说明书的一部分,并与以下具体实施例一起用于解释本申请,但不应理解为对本申请的限制。
图1是深度学习加速器(deep learning accelerator,DLA)的示意图;
图2是本申请实施例的第一加速方法的流程示意图;
图3是根据本申请实施例的第二加速方法的流程示意图;
图4是根据本申请实施例的第三加速方法的流程示意图;
图5是根据本申请实施例的第四加速方法的流程示意图;
图6是根据本申请实施例的第五加速方法的流程示意图;
图7是根据本申请实施例的运行深度神经网络的第一加速器的结构视图;
图8是根据本申请实施例的第一控制器的结构视图;
图9是根据本申请实施例的第二控制器的结构视图;
图10是根据本申请实施例的第二加速器的结构视图;
图11是根据本申请实施例的第三控制器的结构视图;以及
图12是根据本申请实施例的片上系统1200的结构视图。
具体实施方式
在以下描述中,参考了附图,这些附图构成本公开的一部分,并且通过示例方式示出了本申请的实施例的特定方面或其中可以使用本申请的实施例的特定方面。应当理解,本申请的实施例可以用于其他方面并且包括图中未描绘的结构或逻辑变化。因此,以下详细描述不应被视为限制性的,并且本申请的范围由权利要求限定。
例如,应当理解,与所描述的方法相关的公开也可以适用于用于执行该方法的相应设备或系统,反之亦然。例如,如果描述了一个或多个具体的方法步骤,即使这样的一个或更多个单元没有在图中明确描述或说明,对应的设备可以包括一个或多个单元(例如功能单元)以执行所描述的一个或多个方法步骤(例如执行该一个或多个步骤的一个单元,或各自执行多个步骤中的一个或更多个的多个单元)。另一方面,例如,如果基于一个或多个单元(例如功能单元)来描述具体的装置,即使这样的一个或多个步骤没有在图中明确描述或说明,相应的方法可以包括一个步骤以执行一个或多个单元的功能(例如执行该一个或更多个单元的功能的一个步骤,或各自执行多个单元中的一个或更多个单元的功能的多个步骤)。此外,应当理解,除非另外特别说明,否则本文描述的各种示例性实施例和/或方面的特征可以彼此组合。
图1是DLA的示意图。如图1所示,DLA由硬件基元块组成,其中,硬件基元块共享硬件资源,如乘法器和累加器(multiplier and accumulator,MAC)单元、内存缓冲区、加法器等。DLA在硬件基元块上实现DNN图形。DNN图形是多层(如卷积、最大池化、全连接等)的组合,硬件实现这些硬件基元,全局控制逻辑实现状态机以执行基于可编程寄存器的图形,该寄存器存储称为代表每一层输入的超参数的图形信息,以及存储层的行为(如步幅、填充、应用整流线性单元(rectified linear unit,RELU)/偏置设置等)。
在本申请中提供的DLA的设计中,图1中所示的每个基元是神经网络层,该神经网络层可以单独编程以构建整个图形。图1所示的每个基元块对应于ASIC。即,图1所示的硬件实现的每个基元块是ASIC。DLA算法需要按顺序执行,因为它们依赖于来自先前层的激活,因此一次只有一个基元处于激活状态,并且可以由一组保存称为超参数的网络信息的可编程寄存器激活。因而,对于如图1所示的硬件实现每个基元块是ASIC的架构,控制器与DLA一起设置在片上系统上,该控制器可以是CPU协处理器(通常是FPU支持的ARM内核,如A53,其具有编译器),以从网络图形计算每一层所需的超参数,以及使用可编程寄存器激活加速器中的硬件基元,其中编译器可以是基于C的网络。除非另有说明,本申请实施例对此不作限制。
需要注意的是,控制器既可以是已经存在于片上系统上的、并进一步用于从网络图形中计算每层所需的超参数并激活加速器中硬件基元的CPU,也可以是新添加的CPU以从网络图形中计算每层所需的超参数并激活加速器中的硬件基元。除非另有说明,本申请实施例对此不作限定。
基于上述的设计和配置,本申请打破了在设计早期对知晓算法的依赖性,允许ASIC具有FPGA的可扩展性和GPU的性能,同时带来来自ASIC的功耗低和占面小的优势。上述的设计和配置为硬件加速器的ASIC实现提供了完全灵活性,并且具有支持任何基于DNN的算法(使用基元块)的优势,而无需在设计早期知晓网络图形。
下面将详细描述加速器与控制器的设计、配置以及两者之间的交互,以更清楚地介绍本申请的技术方案。
图2是本申请实施例的第一加速方法的流程示意图。图2示出了由运行DNN的加速器执行的方法。需要说明的是,DNN可以是任一深度神经网络,例如CNN。除非另有说明,本申请实施例对此不作限定。
如图2所示,该方法包括以下步骤:
S201:加速器从控制器接收第N层的第N个参数信息,其中,深度神经网络的M个层对应于该加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M。
例如,如果DNN中有16层,则加速器中有16个ASIC。在由加速器实现DNN的过程中,该16层从第一层到第十六层依次执行。
S202:该加速器根据第N个参数信息执行第N层的计算。
在一种可能的实现方式中,参数信息包括块(tiling)信息、核(kernel)尺寸、填充(padding)尺寸、偏置(bias)和整流线性单元(rectified linear unit,ReLu)设置。一旦加速器从控制器接收到第N层的第N个参数信息后,该加速器根据该第N个参数信息执行该第N层的计算。
S203:该加速器向该控制器发送第N层的第N个计算结果信息,该第N个计算结果信息指示第N层的计算完成,该计算结果信息包括第N层的计算结果。
具体的,在第N层的计算完成后,加速器发送第N层的第N个计算结果信息,该第N个计算结果信息指示第N层的计算完成,并且第N层的计算结果包含在该第N个计算结果信息中。该计算结果可以包括下一层的参数。
本申请提供一种加速方法,其中,加速器从控制器接收第N层的第N个参数信息,其中,深度神经网络的M个层对应于该加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M;根据第N个参数信息执行第N层的计算;向该控制器发送第N层的第N个计算结果信息,该第N个计算结果信息指示第N层的计算完成,该计算结果信息包括第N层的计算结果。然后可以实现硬件加速器ASIC实现的完全灵活性,并且可以支持任何基于DNN的算法,提高加速器的通用性。
图3是根据本申请实施例的第二加速方法的流程示意图。该方法由加速器执行。
如图3所示,该方法包括以下步骤:
S301:加速器从控制器接收第N层的第N个参数信息,其中,深度神经网络的M个层对应于该加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M。
S302:该加速器从该控制器接收第N个激活消息,其中,该第N个激活消息用于指示该加速器开始第N层的计算。
S303:该加速器根据第N个参数信息执行第N层的计算。
S304:该加速器向该控制器发送第N层的第N个计算结果信息,该第N个计算结果信息指示第N层的计算完成,该计算结果信息包括第N层的计算结果。
在本实施例中,第N层的计算由来自控制器的第N个激活消息激活,增加了第N层的计算的可靠性。
图4是根据本申请实施例的第三加速方法的流程示意图。该方法由控制器执行。
如图4所示,该方法包括以下步骤:
S401:控制器为深度神经网络中的第N层生成第N个参数信息。
S402:该控制器向运行该深度神经网络的加速器发送第N个参数信息,其中,该深度神经网络的M个层对应于该加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M。
S403:该控制器从该加速器接收第N层的第N个计算结果信息,该第N个计算结果信息指示该第N层的计算完成,其中该计算结果信息包括该第N层的计算结果。
在一种可能的实现方式中,参数信息包括块信息、核尺寸、填充尺寸、偏置和整流线性单元(ReLu)设置。
本申请提供一种加速方法,其中,控制器为深度神经网络中的第N层生成第N个参数信息;向运行该深度神经网络的加速器发送第N个参数信息,其中,该深度神经网络的M个层对应于该加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M;从该加速器接收第N层的第N个计算结果信息,该第N个计算结果信息指示该第N层的计算完成,其中该计算结果信息包括该第N层的计算结果。然后可以实现硬件加速器的ASIC实现的完全灵活性,可以支持任何一种基于DNN的算法,提高加速器的通用性。
图5是根据本申请实施例的第四加速方法的流程示意图。该方法由控制器执行。
如图5所示,该方法包括以下步骤:
S501:控制器为深度神经网络中的第N层生成第N个参数信息。
在一种可能的实现方式中,N≥2,S501包括:控制器根据第N-1层的计算结果为第N层生成第N个参数信息。
由于DNN的特性,除了第一层之外,DNN的层的执行都是基于当前层的先前层的计算结果。
S502:该控制器向运行该深度神经网络的加速器发送第N个参数信息,其中,该深度神经网络的M个层对应于该加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M。
S503:该控制器向该加速器发送第N个激活消息,其中,该第N个激活消息用于指示该加速器开始第N层的计算。
S504:该控制器从该加速器接收第N层的第N个计算结果信息,该第N个计算结果信息指示该第N层的计算完成,其中,该计算结果信息包括该第N层的计算结果。
S505:当接收到第M层的第M个计算结果信息时,该控制器确定该深度神经网络的计算完成。
使用图5中所示的实施例,可以实现硬件加速器的ASIC实现的完全灵活性,可以支持任何一种基于DNN的算法,提高加速器的通用性。
图6是根据本申请实施例的第五加速方法的流程示意图。下面结合图6描述加速器是运行DNN(如DLA)的AI加速器并且控制器为CPU的示例场景。
该方法包括以下步骤:
S601:CPU将DNN图形中第1层的参数加载到DLA中。
S602:CPU向DLA发送开始(START)消息。
该START消息用于指示加速器开始第1层的计算。
S603:DLA向CPU发送已完成层(DONE LAYER)消息。
DONE LAYER消息指示第1层的计算完成,并且第1层的计算结果包含在DONE LAYER消息中。
S604:CPU将DNN图形中第2层的参数加载到DLA中。
S605:CPU向DLA发送START消息。
该START消息用于指示加速器开始第2层的计算。
S606:DLA向CPU发送DONE LAYER消息。
DONE LAYER消息指示第2层的计算完成,并且第2层的计算结果包含在DONE LAYER消息中。
S607:CPU将DNN图形中第M层的参数加载到DLA中。
S608:CPU向DLA发送START消息。
该START消息用于指示加速器开始第M层的计算。
S609:DLA向CPU发送DONE LAYER消息。
DONE LAYER消息指示第M层的计算完成,并且第M层的计算结果包含在DONE LAYER消息中。
S610:CPU确定深度神经网络的计算完成。
使用图6中所示的实施例,可以实现硬件加速器的ASIC实现的完全灵活性,可以支持任何一种基于DNN的算法,提高加速器的通用性。
图7是根据本申请实施例的运行深度神经网络的第一加速器的结构视图。如图7所示,其中加速器包括接收单元701、执行单元702以及发送单元703。
接收单元701用于从控制器接收第N层的第N个参数信息,其中,深度神经网络的M个层对应于加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M。
执行单元702用于根据第N个参数信息执行第N层的计算。
发送单元703用于向控制器发送第N层的第N个计算结果,该第N个计算结果信息指示第N层的计算完成,其中,该计算结果信息包括第N层的计算结果。
本申请提供了一种运行深度神经网络的加速器,其中,接收单元701用于从控制器接收第N层的第N个参数信息,其中,深度神经网络的M个层对应于加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M;执行单元702用于根据第N个参数信息执行第N层的计算;以及发送单元703用于向控制器发送第N层的第N个计算结果,该第N个计算结果信息指示第N层的计算完成,其中,该计算结果信息包括第N层的计算结果。然后可以实现硬件加速器的ASIC实现的完全灵活性,可以支持任何一种基于DNN的算法,提高加速器的通用性。
在一种可能的实现方式中,接收单元701还用于在执行单元702执行第N层的计算之前从控制器接收第N个激活消息,其中,该第N个激活消息用于指示该加速器开始第N层的计算。
在一种可能的实现方式中,参数信息包括块信息、核尺寸、填充尺寸、偏置和整流线性单元(ReLu)设置。
图8是根据本申请实施例的第一控制器的结构视图。如图8所示,该控制器包括:生成单元801、发送单元802和接收单元803。
生成单元801用于为深度神经网络中的第N层生成第N个参数信息。
在一实施例中,生成单元801可以是由控制器实现的编译器。
发送单元802用于向运行深度神经网络的加速器发送第N个参数信息,其中,该深度神经网络的M个层对应于该加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M。
接收单元803用于从加速器接收第N层的第N个计算结果信息,该第N个计算结果信息指示第N层的计算完成,其中该计算结果信息包括该第N层的计算结果。
在一种可能的实现方式中,发送单元802还用于在向加速器发送第N个参数信息后,向加速器发送第N个激活消息,其中,该第N个激活消息用于指示该加速器开始第N层的计算。
在一种可能的实现方式中,参数信息包括块信息、核尺寸、填充尺寸、偏置和整流线性单元(ReLu)设置。
在一种可能的实现方式中,N≥2,并且该生成单元801还用于根据第N-1层的计算结果为第N层生成第N个参数信息。
图9是根据本申请实施例的第二控制器的结构视图。如图9所示,在图8的基础上,控制器还包括确定单元804,确定单元804用于在接收单元803接收到第M层的第M个计算结果信息时,确定深度神经网络的计算完成。
图10是根据本申请实施例的第二加速器的结构视图。如图10所示,其中加速器包括:接口装置1001和处理器装置1002。
接口装置1001用于从控制器接收第N层的第N个参数信息,其中,深度神经网络的M个层对应于加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M;
处理器装置1002用于根据第N个参数信息执行第N层的计算;
接口装置1001还用于向控制器发送第N层的第N个计算结果信息,该第N个计算结果信息指示第N层的计算完成,其中该计算结果信息包括第N层的计算结果。
在一种可能的实现方式中,接口装置1001还用于在处理器装置1002执行第N层的计算之前从控制器接收第N个激活消息,其中该第N个激活消息用于指示该加速器开始第N层的计算。
在一种可能的实现方式中,参数信息包括块信息、核尺寸、填充尺寸、偏置和整流线性单元(ReLu)设置。
图11是根据本申请实施例的第三控制器的结构视图。如图11所示,控制器包括:接口装置1101和处理器装置1102。
处理器装置1102用于为深度神经网络中的第N层生成第N个参数信息。
接口装置1101用于向运行深度神经网络的加速器发送第N个参数信息,其中,该深度神经网络的M个层对应于该加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M。
接口装置1101还用于从加速器接收第N层的第N个计算结果信息,该第N个计算结果信息指示第N层的计算完成,其中该计算结果信息包括该第N层的计算结果。
在一种可能的实现方式中,接口装置1101还用于在向加速器发送第N个参数信息后,向加速器发送第N个激活消息,其中,该第N个激活消息用于指示该加速器开始第N层的计算。
在一种可能的实现方式中,参数信息包括块信息、核尺寸、填充尺寸、偏置和整流线性单元(ReLu)设置。
在一种可能的实现方式中,N≥2,并且处理器装置1102还用于根据第N-1层的计算结果为第N层生成第N个参数信息。
在一种可能的实现方式中,处理器装置1102还用于在接口装置1101接收到第M层的第M个计算结果信息时,确定深度神经网络的计算完成。
图12是根据本申请实施例的片上系统1200的结构视图。如图12所示,片上系统包括:加速器1201和控制器1202。加速器可以是上述任何一种加速器,控制器可以是上述任何一种控制器。
本申请的说明书和权利要求书以及上述附图中的“第一”、“第二”等术语,旨在区分不同的对象,并不旨在限定特定的顺序。
本申请实施例中的“和/或”等术语仅用于描述关联对象之间的关联,其表示可能存在三种关系,例如A和/或B可以表示仅存在A、存在A和B以及仅存在B。
术语“一个”或“一种”(“a”or“an”)并非旨在指定一个或单个元件,而是在适当的情况下可用于表示多个元素的存在。
将进一步理解,术语“包括”、“包含”、“具有”及其变体在本说明书中使用时,指定所述的特征、步骤、操作、元件和/或组件的存在,但不排除一个或更多个其他特征、步骤、操作、元件、组件和/或它们的组群的存在或添加。相反,术语“由……组成”在本说明书中使用时,指定所述的特征、步骤、操作、元件和/或组件,并且排除附加的特征、步骤、操作、元件和/或组件。
在本申请实施例中,“示例性”或“例如”等表述用于表示示例或范例的说明。在本申请实施例中,任何描述为“示例性”或“例如”的实施例或设计方案不应被解释为优选的或优于其他实施例或设计方案的。特别地,“示例性”或“例如”的使用目的在于以特定方式呈现相关概念。
在一个或更多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实现。如果以软件实现,则这些功能可以作为一个或更多个指令或代码存储在或传输在计算机可读介质上并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质,或者通信介质(其包括便于将计算机程序,例如根据通信协议,从一个地方转移到另一个地方的任何介质)。以此方式,计算机可读介质通常可以对应于(1)非暂时性有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一台或更多台计算机或一个或更多个处理器访问,以检索用于实现本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,此类计算机可读存储介质可以包括随机存取存储器(randomaccess memory,RAM)、只读存储器(read-only memory,ROM)、电可擦除可编程ROM(electrically erasable programmable ROM,EEPROM)、压缩盘ROM(compact disc ROM,CD-ROM)或其他光盘存储、磁盘存储或其他磁存储设备、闪存或任何其他可用于以指令的形式或数据结构的形式存储所需程序代码并可由计算机访问的介质。此外,任何连接都被恰当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线(twisted pair)、数字用户线(digital subscriber line,DSL)或无线技术(如红外线、无线电和微波)从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(如红外线、无线电和微波)都包含在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬态介质,而是指非瞬态的、有形的存储介质。此处使用的磁盘和光盘包括压缩盘(compact disc,CD)、激光盘、光盘、数字多功能盘(digitalversatile disc,DVD)、软盘和蓝光光盘(Blu-ray disc),其中磁盘通常以磁性方式再现数据,而盘则使用激光以光学方式再现数据。上述的组合也应包括在计算机可读介质的范围内。
本公开的技术可以在多种设备或装置中实现,包括无线手机、集成电路(integrated circuit,IC)或一组IC(例如,芯片组)。本公开中描述了各种组件、模块或单元以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同的硬件单元来实现。相反,如上所述,各种单元可以结合在编解码器硬件单元中或由包括如上所述的一个或更多个处理器的互操作(inter-operative)硬件单元的集合连同合适的软件和/或固件一起提供。
应当理解,当元件或组件在本文中被提到“连接到”或“耦接到”另一个元件或组件时,它可以连接或耦接到(或者也存在中间的元件或组件)另一个元件或组件。相反,当元件或组件被提到“直接连接到”或“直接耦接到”另一个元件或组件时,它们之间不存在中间元件或组件。
虽然本文参考说明性实施例描述了本发明,但是本说明书不旨在被解释为限制性的。相反,说明性实施例的目的是使本领域技术人员更好地理解本发明的精神。为了不使本发明的范围模糊,省略了众所周知的工艺和制造技术的许多细节。在参考说明书的情况下,说明性实施例以及其他实施例的各种修改对于本领域技术人员来说将是显而易见的。因此,权利要求旨在涵盖任何此类修改。
此外,本发明的优选实施例的一些特征可以在没有其他特征的相应使用的情况下被有利地使用。因此,上述说明书应被认为仅是对本发明原理的说明,而不是对其进行限制。本领域技术人员将理解落入本发明范围内的上述实施例的变体。因此,本发明不限于以上讨论的特定实施例和说明,而是由权利要求及其等效物限制。

Claims (19)

1.一种加速方法,所述方法包括:
运行深度神经网络的加速器从控制器接收第N层的第N个参数信息,其中,所述深度神经网络的M个层对应于所述加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M;
所述加速器根据所述第N个参数信息执行所述第N层的计算;
所述加速器向所述控制器发送所述第N层的第N个计算结果信息,所述第N个计算结果信息指示所述第N层的计算完成,其中,所述计算结果信息包括所述第N层的计算结果;
其中,在所述加速器根据所述第N个参数信息执行所述第N层的计算之前,所述方法还包括:所述加速器从所述控制器接收第N个激活消息,其中,所述第N个激活消息用于指示所述加速器开始所述第N层的计算。
2.根据权利要求1所述的方法,其中,所述参数信息包括块信息、核尺寸、填充尺寸、偏置和整流线性单元ReLu设置。
3.一种加速方法,包括:
控制器为深度神经网络中的第N层生成第N个参数信息;
所述控制器向运行所述深度神经网络的加速器发送所述第N个参数信息,其中,所述深度神经网络的M个层对应于所述加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M;
所述控制器从所述加速器接收所述第N层的第N个计算结果信息,所述第N个计算结果信息指示所述第N层的计算完成,其中,所述计算结果信息包括所述第N层的计算结果;
其中,在所述控制器向所述加速器发送所述第N个参数信息之后,所述方法还包括:所述控制器向所述加速器发送第N个激活消息,其中,所述第N个激活消息用于指示所述加速器开始所述第N层的计算。
4.根据权利要求3所述的方法,其中,所述参数信息包括块信息、核尺寸、填充尺寸、偏置和整流线性单元ReLu设置。
5.根据权利要求3或4所述的方法,其中,N≥2,并且所述控制器为所述深度神经网络中的所述第N层生成所述第N个参数信息包括:
所述控制器根据第N-1层的计算结果为所述第N层生成所述第N个参数信息。
6.根据权利要求3或4所述的方法,还包括:
当接收到第M层的第M个计算结果信息时,所述控制器确定所述深度神经网络的计算完成。
7.一种运行深度神经网络的加速器,包括:
接收单元,用于从控制器接收第N层的第N个参数信息,其中,所述深度神经网络的M个层对应于所述加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M;
执行单元,用于根据所述第N个参数信息执行所述第N层的计算;
发送单元,用于向所述控制器发送所述第N层的第N个计算结果信息,所述第N个计算结果信息指示所述第N层的计算完成,其中,所述计算结果信息包括所述第N层的计算结果;
其中,所述接收单元还用于在所述执行单元执行所述第N层的计算之前从所述控制器接收第N个激活消息,其中,所述第N个激活消息用于指示所述加速器开始所述第N层的计算。
8.根据权利要求7所述的加速器,其中,所述参数信息包括块信息、核尺寸、填充尺寸、偏置和整流线性单元ReLu设置。
9.一种控制器,所述控制器包括:
生成单元,用于为深度神经网络中的第N层生成第N个参数信息;
发送单元,用于向运行所述深度神经网络的加速器发送所述第N个参数信息,其中,所述深度神经网络的M个层对应于所述加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M;
接收单元,用于从所述加速器接收所述第N层的第N个计算结果信息,所述第N个计算结果信息指示所述第N层的计算完成,其中,所述计算结果信息包括所述第N层的计算结果;
其中,所述发送单元还用于在向所述加速器发送所述第N个参数信息后,向所述加速器发送第N个激活消息,其中,所述第N个激活消息用于指示所述加速器开始所述第N层的计算。
10.根据权利要求9所述的控制器,其中,所述参数信息包括块信息、核尺寸、填充尺寸、偏置和整流线性单元ReLu设置。
11.根据权利要求9或10所述的控制器,其中,N≥2,并且所述生成单元还用于根据第N-1层的计算结果为所述第N层生成所述第N个参数信息。
12.根据权利要求9或10所述的控制器,还包括:
确定单元,用于当所述接收单元接收到第M层的第M个计算结果信息时,确定所述深度神经网络的计算完成。
13.一种运行深度神经网络的加速器,包括接口装置和处理器装置:
所述接口装置用于从控制器接收第N层的第N个参数信息,其中,所述深度神经网络的M个层对应于所述加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M;
所述处理器装置用于根据所述第N个参数信息执行所述第N层的计算;
其中,所述接口装置还用于向所述控制器发送所述第N层的第N个计算结果信息,所述第N个计算结果信息指示所述第N层的计算完成,其中,所述计算结果信息包括所述第N层的计算结果;
所述接口装置还用于在所述处理器装置执行所述第N层的计算之前从所述控制器接收第N个激活消息,其中,所述第N个激活消息用于指示所述加速器开始所述第N层的计算。
14.根据权利要求13所述的加速器,其中,所述参数信息包括块信息、核尺寸、填充尺寸、偏置和整流线性单元ReLu设置。
15.一种控制器,所述控制器包括接口装置和处理器装置:
所述处理器装置用于为深度神经网络中的第N层生成第N个参数信息;
所述接口装置用于向运行所述深度神经网络的加速器发送所述第N个参数信息,其中,所述深度神经网络的M个层对应于所述加速器中的M个专用集成电路,其中,M和N为正整数,M≥2,1≤N≤M;
其中,所述接口装置还用于从所述加速器接收所述第N层的第N个计算结果信息,所述第N个计算结果信息指示所述第N层的计算完成,其中,所述计算结果信息包括所述第N层的计算结果;
所述接口装置还用于在向所述加速器发送所述第N个参数信息后,向所述加速器发送第N个激活消息,其中,所述第N个激活消息用于指示所述加速器开始所述第N层的计算。
16.根据权利要求15所述的控制器,其中,所述参数信息包括块信息、核尺寸、填充尺寸、偏置和整流线性单元ReLu设置。
17.根据权利要求15或16所述的控制器,其中,N≥2,并且所述处理器装置还用于根据第N-1层的计算结果为所述第N层生成所述第N个参数信息。
18.根据权利要求15或16所述的控制器,其中,所述处理器装置还用于当所述接口装置接收到第M层的第M个计算结果信息时,确定所述深度神经网络的计算完成。
19.一种片上系统,包括如权利要求7-8或13-14中任一项所述的加速器,以及如权利要求9-12或15-18中任一项所述的控制器。
CN201980091542.5A 2019-03-25 2019-03-25 加速方法、装置和片上系统 Active CN113396425B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/079494 WO2020191573A1 (en) 2019-03-25 2019-03-25 Acceleration method, apparatus and system on chip

Publications (2)

Publication Number Publication Date
CN113396425A CN113396425A (zh) 2021-09-14
CN113396425B true CN113396425B (zh) 2023-08-22

Family

ID=72606322

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980091542.5A Active CN113396425B (zh) 2019-03-25 2019-03-25 加速方法、装置和片上系统

Country Status (3)

Country Link
US (1) US20200311526A1 (zh)
CN (1) CN113396425B (zh)
WO (1) WO2020191573A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106156781A (zh) * 2016-07-12 2016-11-23 北京航空航天大学 排序卷积神经网络构建方法及其图像处理方法与装置
CN107710237A (zh) * 2015-06-29 2018-02-16 微软技术许可有限责任公司 服务器上深度神经网络划分
CN108256644A (zh) * 2018-01-05 2018-07-06 上海兆芯集成电路有限公司 微处理器电路以及执行神经网络运算的方法
CN108268943A (zh) * 2017-01-04 2018-07-10 意法半导体股份有限公司 硬件加速器引擎
WO2018193361A1 (en) * 2017-04-17 2018-10-25 Cerebras Systems Inc. Microthreading for accelerated deep learning

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150596B (zh) * 2013-02-22 2015-12-23 百度在线网络技术(北京)有限公司 一种反向传播神经网络dnn的训练系统
US20160358069A1 (en) * 2015-06-03 2016-12-08 Samsung Electronics Co., Ltd. Neural network suppression
US10726328B2 (en) * 2015-10-09 2020-07-28 Altera Corporation Method and apparatus for designing and implementing a convolution neural net accelerator
CN109086877B (zh) * 2016-04-29 2020-05-08 中科寒武纪科技股份有限公司 一种用于执行卷积神经网络正向运算的装置和方法
US11373088B2 (en) * 2017-12-30 2022-06-28 Intel Corporation Machine learning accelerator mechanism

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107710237A (zh) * 2015-06-29 2018-02-16 微软技术许可有限责任公司 服务器上深度神经网络划分
CN106156781A (zh) * 2016-07-12 2016-11-23 北京航空航天大学 排序卷积神经网络构建方法及其图像处理方法与装置
CN108268943A (zh) * 2017-01-04 2018-07-10 意法半导体股份有限公司 硬件加速器引擎
WO2018193361A1 (en) * 2017-04-17 2018-10-25 Cerebras Systems Inc. Microthreading for accelerated deep learning
CN108256644A (zh) * 2018-01-05 2018-07-06 上海兆芯集成电路有限公司 微处理器电路以及执行神经网络运算的方法

Also Published As

Publication number Publication date
CN113396425A (zh) 2021-09-14
WO2020191573A1 (en) 2020-10-01
US20200311526A1 (en) 2020-10-01

Similar Documents

Publication Publication Date Title
KR102610083B1 (ko) 신경망 프로세서에서의 배치 프로세싱
KR102413522B1 (ko) 신경망 프로세서에서 사용하기 위한 가중치들의 프리페칭
KR102127524B1 (ko) 신경망 프로세서의 벡터 컴퓨테이션 유닛
CN110163368B (zh) 基于混合精度的深度学习模型训练方法、装置及系统
WO2018102240A1 (en) Joint language understanding and dialogue management
TW202318227A (zh) 矩陣向量處理系統及用於執行向量縮減之方法
US10931512B2 (en) Computer readable media, methods, and computer apparatuses for network service continuity management
CN111752879B (zh) 一种基于卷积神经网络的加速系统、方法及存储介质
CN113454607A (zh) 调试方法、装置及片上系统
KR102499517B1 (ko) 최적 파라미터 결정 방법 및 시스템
CN113396425B (zh) 加速方法、装置和片上系统
JP2022117866A (ja) ニューラルネットワーク生成装置、ニューラルネットワーク演算装置、エッジデバイス、ニューラルネットワーク制御方法およびソフトウェア生成プログラム
TWI758223B (zh) 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體
EP3857384B1 (en) Processing sequential inputs using neural network accelerators
CN109598344B (zh) 模型生成方法和装置
KR101825880B1 (ko) 소프트웨어 컴포넌트 기반 로봇 시스템을 위한 입/출력 기반 테스트 케이스 생성 방법 및 이를 수행하는 장치
CN115099398A (zh) 硬件加速器运行优化方法、装置、电子设备及存储介质
US10997277B1 (en) Multinomial distribution on an integrated circuit
CN117130664B (zh) 用于芯片检测任务的人工智能芯片计算方法、装置及芯片
TWI764456B (zh) 區塊運算方法、裝置、電腦裝置及儲存介質
CN107707383A (zh) 放通处理方法、装置、第一网元及第二网元
CN116187434A (zh) 面向深度学习的粗粒度可重构阵列仿真器系统和计算方法
CN116484157A (zh) 矩阵乘计算核选取方法和矩阵乘运算的确定方法
CN117667662A (zh) 模型中算子的异常检测方法、装置、芯片、设备及系统
CN116594763A (zh) 针对动态计算图提前调度的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant