CN109376852A - 运算装置及运算方法 - Google Patents
运算装置及运算方法 Download PDFInfo
- Publication number
- CN109376852A CN109376852A CN201811097653.0A CN201811097653A CN109376852A CN 109376852 A CN109376852 A CN 109376852A CN 201811097653 A CN201811097653 A CN 201811097653A CN 109376852 A CN109376852 A CN 109376852A
- Authority
- CN
- China
- Prior art keywords
- model
- data
- neural network
- input
- operational order
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Devices For Executing Special Programs (AREA)
- Machine Translation (AREA)
Abstract
本公开提供一种运算装置及运算方法。其中,运算装置包括:输入模块,用于存入输入数据;模型生成模块,根据输入数据确定离线模型;神经网络运算模块,依据离线模型确定运算指令,依据所述运算指令,对待处理数据进行运算得到运算结果以供输出。本公开的运算装置用于在生成离线模型之后,可根据离线模型直接进行运算,避免了运行包括深度学习框架在内的整个软件架构带来的额外开销。
Description
本申请是申请号为201880000923.3中国专利的分案申请,母案专利的内容皆引用于此。
技术领域
本公开涉及计算机领域,进一步涉及人工智能领域的运算装置和运算方法。
背景技术
随着大数据时代的来临,神经网络算法成为了近些年人工智能领域的一个研究热点,在模式识别、图像分析、智能机器人等方面都得到了广泛的应用。
深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习人物(例如,人脸识别或面部表情识别)。
至今已有数种深度学习架构,如深度神经网络、卷积神经网络和深度信念网络和递归神经网络已被应用于计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域,并获取了极好的效果。另外,深度学习已成为类似术语,或者说是神经网络的品牌重塑。
随着深度学习(神经网络)的大热,神经网络加速器也应运而生,通过专门的内存和运算模块设计,神经网络加速器在进行深度学习运算时可以获得相比较通用处理器几十倍甚是上百倍的加速比,并且面积更小,功耗更低。
发明内容
根据本公开的一方面,提供一种运算装置,包括:输入模块,用于存入输入数据;模型生成模块,根据输入数据确定离线模型;神经网络运算模块,依据离线模型确定运算指令,依据所述运算指令,对待处理数据进行运算得到运算结果以供输出。
在进一步的实施方案中,还包括:输出模块,用于输出所述运算结果。
在进一步的实施方案中,该输入数据包括待处理数据、网络结构和权值数据,或者该输入数据包括待处理数据离线模型数据。
在进一步的实施方案中,还包括:控制模块,用于检测输入数据类型并执行如下操作:
当输入数据包括待处理数据、网络结构和权值数据时,控制输入模块将网络结构和权值数据输入模型生成模块以构建离线模型,并控制神经网络运算模块基于模型生成模块输入的离线模型,对输入模块输入的待处理数据进行运算;
当输入数据包括待处理数据和离线模型时,控制输入模块将待处理数据和离线模型输入神经网络运算模块,并控制神经网络运算模块基于离线模型生成运算指令并缓存,并基于运算指令对待处理数据进行运算;
当输入数据仅包括待处理数据时,控制输入模块将待处理数据输入神经网络运算模块,并控制神经网络运算模块调用缓存的运算指令,对待处理数据进行运算。
在进一步的实施方案中,所述神经网络运算模块包括:模型解析单元,用于基于离线模型生成运算指令;神经网络处理器,用于缓存运算指令用于后续计算调用;或在输入数据中仅包括待处理数据时调用缓存的运算指令,并基于运算指令对待处理数据进行运算得到运算结果。
在进一步的实施方案中,所述神经网络运算模块还包括:指令缓存单元,用于缓存所述运算指令,供神经网络处理器调用;数据缓存单元,用于缓存所述输入数据。
在进一步的实施方案中,所述网络结构为神经网络结构,所述神经网络结构包括以下至少一种:AlexNet、GoogleNet、ResNet、VGG、R-CNN、GAN、ISTM、RNN和ResNe。
在进一步的实施方案中,所述离线模型为神经网络模型,所述神经网络模型包括以下至少一种:Cambricon_mode1、AlexNet_model、GoogleNet_model、VGG_model、R-CNN_model、GAN_model、LSTM_model、RNN_model和ResNet_model。
根据本公开的另一方面,提供一种神经网络的运算方法,包括步骤:
获取输入数据;
获取离线模型或根据输入数据确定离线模型;
依据离线模型确定运算指令,以供后续计算调用;
调用所述运算指令,对待处理数据进行运算得到运算结果以供输出。
在进一步的实施方案中,该输入数据包括待处理数据、网络结构和权值数据,或者该输入数据包括待处理数据离线模型数据。
在进一步的实施方案中,所述离线模型为已有模型,或者为根据输入数据后期构建的离线模型。
在进一步的实施方案中,调用所述运算指令包括:在输入数据仅包括待处理数据且不包含离线模型,根据运算指令进行网络运算;或者确定离线模型的数据情况下,根据运算指令进行网络运算。
在进一步的实施方案中,当输入数据包括待处理数据、网络结构和权值数据时,所述根据输入数据确定离线模型包括:根据网络结构和权值数据构建离线模型。
在进一步的实施方案中,所述网络结构为神经网络结构,所述神经网络结构包括以下至少一种:AlexNet、GoogleNet、ResNet、VGG、R-CNN、GAN、LSTM、RNN和ResNe。
在进一步的实施方案中,所述离线模型为神经网络模型,所述神经网络模型包括以下至少一种:Cambricon_model、AlexNet_model、GoogleNet_model、VGG_model、R-CNN_model、GAN_model、LSTM_model、RNN_model和ResNet_model。
根据本公开的又一方面,提供一种电子设备,包括以上任一所述的运算装置。
本公开的运算装置和运算方法在生成离线模型之后,可根据离线模型直接进行运算,避免了运行包括深度学习框架在内的整个软件架构带来的额外开销。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1是典型的编程框架图。
图2是本公开一实施例提出的运算方法的运算流程图。
图3是本公开另一实施例提出的运算装置的结构框架图。
具体实施方式
下面结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开的保护范围。
本公开提供一种包含构建离线模型的运算方法和运算装置,在生成离线模型之后,可根据离线模型直接进行运算,避免了运行包括深度学习框架在内的整个软件架构带来的额外开销,以下将结合具体实施例对该进行具体阐述。
在典型的应用场景中,神经网络加速器编程框架通常位于最上层,编程框架可以为Caffe,Tensorflow,Torch等,如图1所示,从底层到上层依次为神经网络处理器(用于神经网络运算的专用硬件),硬件驱动(用于软件调用神经网络处理器),神经网络处理器编程库(用于提供调用神经网络处理器的接口),神经网络处理器编程框架以及需要进行神经网络运算的高级应用。
本公开实施例的一方面,提供了一种神经网络的运算方法,包括步骤:
步骤1:获取输入数据;
步骤2:获取或根据输入数据确定离线模型,依据离线模型确定运算指令,以供后续计算调用;
步骤3:调用所述运算指令,对待处理数据进行运算得到运算结果以供输出。
其中,该输入数据包括待处理数据、网络结构和权值数据,或者该输入数据包括待处理数据离线模型数据。
其中,步骤2中的离线模型可以是已有的,或者是根据外部数据(例如网络结构或者权值数据)进行后期构建的。通过设置离线模型得到运算指令的方式,能够提高运算过程。
步骤3中的调用运算指令可以是在输入数据仅包括待处理数据不包含离线模型或者用于确定离线模型的数据情况下,仅根据运算指令进行网络运算。
在一些实施例中,当输入数据包括待处理数据、网络结构和权值数据时,执行如下步骤:
步骤11,获取输入数据;
步骤12,根据网络结构和权值数据构建离线模型;
步骤13,解析离线模型,得到运算指令并缓存,以供后续计算调用;
步骤14,根据运算指令,对待处理数据进行运算得到运算结果以供输出。
上述实施例中首先根据网络结构以及权值数据构建出离线模型,然后对离线模型极性解析后获取运算指令,这使得在不存储离线模型的低内存、实时性强的应用环境中能够充分发挥性能,运算过程更为简洁快速。
在一些实施例中,当输入数据包括待处理数据和离线模型时,执行如下步骤:
步骤21,获取输入数据;
步骤22,解析离线模型,得到运算指令并缓存,以供后续计算调用;
步骤23,根据运算指令,对待处理数据进行运算得到运算结果以供输出。
上述实施例中当输入数据包括离线模型时,当建立起离线模型后,运算时对离线模型进行解析后获取运算指令,从而避免了运行包括深度学习框架在内的整个软件架构带来的额外开销。
在一些实施例中,当输入数据仅包括待处理数据时,执行如下步骤:
步骤31,获取输入数据;
步骤32,调用缓存的运算指令,对待处理数据进行运算得到运算结果以供输出。
上述实施例当输入数据仅包括待处理数据而不含神经网络结构和权值数据时,则通过调取运算指令对待处理数据进行运算得到运算结果。
在一些实施例中,通过神经网络处理器,根据运算指令,对待处理数据进行运算得到运算结果;其中,神经网络处理器主要用于神经网络运算,接收指令、待处理数据和/或网络模型(例如离线模型)后进行运算;举例来说,对于多层神经网络来说,例如根据输入层数据,以及神经元、权值和偏置等数据,计算得到输出层数据。
在进一步的实施例中,该神经网络处理器具有指令缓存单元,用于对接收的运算指令进行缓存。
在一些实施例中,上述神经网络处理器还具有数据缓存单元,用于缓存所述待处理数据。待处理数据输入神经网络处理器后在该数据缓存单元中暂存,后续结合运算指令再进行运算。
基于上述运算方法,本公开实施例还提供了一种运算装置,包括:
输入模块,用于获取输入数据,该输入数据包括待处理数据、网络结构和权值数据,或者该输入数据包括待处理数据离线模型数据;
模型生成模块,用于根据输入的网络结构和权值数据构建离线模型;
神经网络运算模块,用于基于输入模块中的离线模型数据或者模型生成模块中构建的离线模型生成运算指令并缓存,以及基于运算指令对待处理数据进行运算得到运算结果;
输出模块,用于输出所述运算结果;
控制模块,用于检测输入数据类型并执行如下操作:
当输入数据包括待处理数据、网络结构和权值数据时,控制输入模块将网络结构和权值数据输入模型生成模块以构建离线模型,并控制神经网络运算模块基于模型生成模块输入的离线模型,对输入模块输入的待处理数据进行运算;
当输入数据包括待处理数据和离线模型时,控制输入模块将待处理数据和离线模型输入神经网络运算模块,并控制神经网络运算模块基于离线模型生成运算指令并缓存,并基于运算指令对待处理数据进行运算;
当输入数据仅包括待处理数据时,控制输入模块将待处理数据输入神经网络运算模块,并控制神经网络运算模块调用缓存的运算指令,对待处理数据进行运算。
上述神经网络运算模块包括模型解析单元和神经网络处理器,其中:
模型解析单元,用于基于离线模型生成运算指令;
神经网络处理器,用于缓存运算指令用于后续计算调用;或在输入数据中仅包括待处理数据时调用缓存的运算指令,并基于运算指令对待处理数据进行运算得到运算结果。
在一些实施例中,上述神经网络处理器具有指令缓存单元,用于缓存运算指令以供后续计算调用。
在一些实施例中,上述离线模型可以是一个按照特殊结构定义的文本文件,可以为各种神经网络模型,如可以为Cambricon_model、AlexNet_model、GoogleNet_model、VGG_model、R-CNN_model、GAN_model、LSTM_model、RNN_model、ResNet_model等模型,但并不只限于本实施例提出的这些模型。
离线模型可以包含原始网络中各个计算节点的网络权值以及指令数据等必要网络结构信息,其中,指令可以包括各个计算节点的计算属性以及各个计算节点之间的连接关系等信息,从而在处理器再次运行该原始网络时,可以直接运行该网络对应的离线模型,无需再次对同一网络进行编译等操作,从而缩短处理器运行该网络时的运行时间,提高处理器的处理效率。
可选地,处理器可以是通用处理器,如CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)或IPU(Intelligence ProcessingUnit,智能处理器),IPU为用于执行人工神经网络运算的处理器。
在一些实施例中,待处理数据为能用神经网络进行处理的输入,例如为连续的单张图片、语音或视频流中的至少一种。
在一些实施例中,上述网络结构可以为各种神经网络结构,例如可以为AlexNet、GoogleNet、ResNet、VGG、R-CNN、GAN、LSTM、RNN、ResNet等,但并不只限于本实施例提出的此些结构。需要指出的是,这里的网络结构与离线模型相互对应,例如当网络结构为RNN时,则离线模型为RNN_model,该模型包括RNN网络中各个节点的网络权值以及指令数据等必要RNN网络结构信息,其中,指令可以包括各个计算节点的计算属性以及各个计算节点之间的连接关系等信息。
具体地,根据输入模块输入数据的不同,本公开实施例的运算装置可以具有以下三种执行形式:
1、当输入模块输入的数据为网络结构、权值数据和待处理数据时,则控制模块控制输入模块将网络结构和权值数据传输至模型生成模块,将待处理数据传输至模型解析模块;控制模块控制模型生成模块根据具体的网络结构以及相应的权值数据生成离线模型(离线模型可以是一个按照预设的结构定义的文本文件,可以包含神经网络中各个计算节点的网络权值以及指令数据等必要网络结构信息,其中,指令可以包括各个计算节点的计算属性以及各个计算节点之间的连接关系等信息,例如可以根据相应的网络结构类型以及权值数据构建出该离线模型),并将该生成的离线模型传输至模型解析单元;控制模块控制模型解析单元对接收的离线模型进行解析,得到神经网络处理器可识别的运算指令(也就是说根据上述的离线模型的文本文件映射出相应的网络运算指令,而无需进行网络编译操作),并将运算指令和待处理数据传输至神经网络处理器;神经网络处理器根据接收的运算指令,对待处理数据进行运算,得到运算结果,并将该运算结果传输至输出模块以供输出。
2、当输入模块输入的数据为离线模型和待处理数据时,控制模块则控制输入模块将离线模型和待处理数据直接传输至模型解析单元,后续工作原理与第一种情况相同。
3、当输入模块输入的数据仅包含有待处理数据时,则控制模块控制输入模块将此待处理数据经模型解析单元传输至神经网络处理器,神经网络处理器根据缓存的运算指令对待处理数据进行运算得到运算结果。输入模块可以包括判断模块,用于判断输入数据的类型。可以理解的是,通常这种情况不会在首次使用神经网络处理器中出现,以确保指令缓存中已有确定的运算指令。
因此,在当前网络运算与上一次网络运算的离线模型不同时,输入模块输入的数据应包括网络结构、权值数据和待处理数据,通过模型生成模块生成新的离线模型后进行后续的网络运算;在当前网络运算事先已得到相应的离线模型时,输入模块输入的数据应包括离线模型和待处理数据;在当前网络运算与上一次网络运算的离线模型相同时,输入模块输入的数据仅包括待处理数据即可。
在本公开的一些实施例中,本公开描述的运算装置作为子模块集成到整个计算机系统的中央处理器模块当中。待处理数据和离线模型被中央处理器控制传送到运算装置中。模型解析单元会对传入的神经网络离线模型进行解析并生成运算指令。接着运算指令和待处理数据会被传入神经网络处理器中,通过运算处理得到运算结果,并将该运算结果返回到主存单元中。在后续计算过程中,网络结构不再改变,则只需要不断传入待处理数据即可完成神经网络计算,得到运算结果。
以下通过具体实施例对本公开提出的运算装置及方法进行详细描述。
如图2所示,本实施例提出一种运算方法,包括以下步骤:
当输入数据包括待处理数据、网络结构和权值数据时,执行如下步骤:
步骤11、获取输入数据;
步骤12、根据网络结构和权值数据构建离线模型;
步骤13、解析离线模型,得到运算指令并缓存,以供后续计算调用;
步骤14、根据运算指令,对待处理数据进行运算得到神经网络运算结果以供输出;
当输入数据包括待处理数据和离线模型时,执行如下步骤:
步骤21、获取输入数据;
步骤22、解析离线模型,得到运算指令并缓存,用于后续计算调用;
步骤23、根据运算指令,对待处理数据进行运算得到神经网络运算结果以供输出;
当输入数据仅包括待处理数据时,执行如下步骤:
步骤31、获取输入数据;
步骤32、调用缓存的运算指令,对待处理数据进行运算得到神经网络运算结果以供输出。
通过神经网络处理器,根据运算指令,对待处理数据进行处理得到运算结果;该神经网络处理器具有指令缓存单元和数据缓存单元,用于分别对接收的运算指令和待处理数据进行缓存。
本实施例中提出的输入的网络结构为AlexNet,权值数据为bvlc_alexnet.caffemodel,待处理数据为连续的单张图片,离线模型为Cambricon_model。对于已有的离线模型,可以对该离线模型Cambricon_model进行解析,从而生成一系列运算指令,随后将生成的运算指令传输到神经网络处理器307上的指令缓存单元中,将输入模块301传入的输入图片传输到神经网络处理器307上的数据缓存单元中。
综上所述,运用本实施例提出的方法,可以极大程度上简化使用神经网络处理器进行运算的流程,避免调用传统整套编程框架到来的额外内存和IO开销。运用本方法,能让神经网络加速器在低内存、实时性强的环境下充分发挥运算性能。
如图3所示,本实施例还提出一种运算装置,包括:输入模块301、模型生成模块302、神经网络运算模块303、输出模块304及控制模块305,其中,神经网络运算模块303包括模型解析单元306和神经网络处理器307。
该装置的关键词在于离线执行,是指生成离线模型后直接利用离线模型生成相关的运算指令并传入权值数据,对待处理数据进行处理运算。更具体的:
上述输入模块301,用于输入网络结构、权值数据和待处理数据的组合或者离线模型和待处理数据的组合。当输入为网络结构、权值数据和待处理数据时,则将网络结构和权值数据传入模型生成模块302,以生成离线模型用以执行下面运算。当输入为离线模型和待处理数据时,则将离线模型、待处理数据直接传入模型解析单元306,以执行下面运算。
上述输出模块304,用于输出根据特定网络结构和一组待处理数据产生的确定的运算数据。其中输出数据由神经网络处理器307运算得到。
上述模型生成模块302,用于根据输入的网络结构参数,权值数据生成用于可供下层使用的离线模型。
上述模型解析单元306,用于解析传入的离线模型,生成可以直接传入神经网络处理器307的运算指令,同时将输入模块301传入的待处理数据传到神经网络处理器307中。
上述神经网络处理器307,用于根据传入的运算指令和待处理数据进行运算,得到确定的运算结果传入到输出模块304中,具有指令缓存单元和数据缓存单元。
上述控制模块305,用于检测输入数据类型并执行如下操作:
当输入数据包括待处理数据、网络结构和权值数据时,控制输入模块301将网络结构和权值数据输入模型生成模块302以构建离线模型,并控制神经网络运算模块303基于模型生成模块302输入的离线模型,对输入模块301输入的待处理数据进行神经网络运算;
当输入数据包括待处理数据和离线模型时,控制输入模块301将待处理数据和离线模型输入神经网络运算模块303,并控制神经网络运算模块303基于离线模型生成运算指令并缓存,并基于运算指令对待处理数据进行神经网络运算;
当输入数据仅包括待处理数据时,控制输入模块301将待处理数据输入神经网络运算模块303,并控制神经网络运算模块303调用缓存的运算指令,对待处理数据进行神经网络运算。
本实施例中提出的输入的网络结构为AlexNet,权值数据为bvlc_alexnet.caffemodel,待处理数据为连续的单张图片。模型生成模块302根据输入的网络结构和权值数据生成新的离线模型Cambricon_model,生成的离线模型Cambricon_model也可以作为下次的输入单独使用;模型解析单元306可以解析离线模型Cambricon_model,从而生成一系列运算指令。模型解析单元306将生成的运算指令传输到神经网络处理器307上的指令缓存单元中,将输入模块2701传入的输入图片传输到神经网络处理器307上的数据缓存单元中。
在一些实施例中,还公开了一种芯片,其包括了上述运算装置。
在一些实施例中,还公开了一种芯片封装结构,其包括了上述芯片。
在一些实施例中,还公开了一种板卡,其包括了上述芯片封装结构。
在一个实施例中,还公开了一种电子设备,其包括了上述板卡。
电子设备可包括但不限于机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备交通工具、家用电器、和/或医疗设备。
所述交通工具可包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
本公开所提供的实施例中,应理解到,所揭露的相关装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述部分或模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个部分或模块可以结合或者可以集成到一个系统,或一些特征可以忽略或者不执行。
本公开中,术语“和/或”可能已被使用。如本文中所使用的,术语“和/或”意指一个或其他或两者(例如,A和/或B意指A或B或者A和B两者)。
在上面的描述中,出于说明目的,阐述了众多具体细节以便提供对本公开的各实施例的全面理解。然而,对本领域技术人员将显而易见的是,没有这些具体细节中的某些也可实施一个或多个其他实施例。所描述的具体实施例不是为了限制本公开而是为了说明。本公开的范围不是由上面所提供的具体示例确定,而是仅由下面的权利要求确定。在其他情况下,以框图形式,而不是详细地示出已知的电路、结构、设备,和操作以便不至于使对描述的理解变得模糊。在认为适宜之处,附图标记或附图标记的结尾部分在诸附图当中被重复以指示可选地具有类似特性或相同特征的对应或类似的要素,除非以其他方式来指定或显而易见。
已描述了各种操作和方法。已经以流程图方式以相对基础的方式对一些方法进行了描述,但这些操作可选择地被添加至这些方法和/或从这些方法中移去。另外,尽管流程图示出根据各示例实施例的操作的特定顺序,但可以理解,该特定顺序是示例性的。替换实施例可以可任选地以不同方式执行这些操作、组合某些操作、交错某些操作等。设备的此处所描述的组件、特征,以及特定可选细节还可以可任选地应用于此处所描述的方法,在各实施例中,这些方法可以由这样的设备执行和/或在这样的设备内执行。
本公开中各功能部分/单元/子单元/模块/子模块/部件都可以是硬件,比如该硬件可以是电路,包括数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管,忆阻器等等。所述计算装置中的计算模块可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如RRAM,DRAM,SRAM,EDRAM,HBM,HMC等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (16)
1.一种运算装置,其特征在于,包括:
输入模块,用于存入输入数据;
模型生成模块,根据所述输入数据确定离线模型;
神经网络运算模块,依据所述离线模型确定运算指令,依据所述运算指令,对待处理数据进行运算得到运算结果以供输出。
2.根据权利要求1所述的运算装置,其特征在于,还包括:
输出模块,用于输出所述运算结果。
3.根据权利要求1所述的运算装置,其特征在于,
该输入数据包括待处理数据、网络结构和权值数据,或者该输入数据包括待处理数据离线模型数据。
4.根据权利要求1所述的运算装置,其特征在于,还包括:
控制模块,用于检测所述输入数据类型并执行如下操作:
当所述输入数据包括待处理数据、网络结构和权值数据时,控制输入模块将网络结构和权值数据输入模型生成模块以构建离线模型,并控制神经网络运算模块基于模型生成模块输入的离线模型,对输入模块输入的待处理数据进行运算;
当所述输入数据包括待处理数据和离线模型时,控制输入模块将待处理数据和离线模型输入神经网络运算模块,并控制神经网络运算模块基于离线模型生成运算指令并缓存,并基于运算指令对待处理数据进行运算;
当所述输入数据仅包括待处理数据时,控制输入模块将待处理数据输入神经网络运算模块,并控制神经网络运算模块调用缓存的运算指令,对待处理数据进行运算。
5.根据权利要求1所述的运算装置,其特征在于,所述神经网络运算模块包括:
模型解析单元,用于基于离线模型生成运算指令;
神经网络处理器,用于缓存所述运算指令用于后续计算调用;或在所述输入数据中仅包括待处理数据时调用缓存的运算指令,并基于运算指令对待处理数据进行运算得到运算结果。
6.根据权利要求5所述的运算装置,其特征在于,所述神经网络运算模块还包括:
指令缓存单元,用于缓存所述运算指令,供神经网络处理器调用;
数据缓存单元,用于缓存所述输入数据。
7.根据权利要求3所述的运算装置,其特征在于,所述网络结构为神经网络结构,所述神经网络结构包括以下至少一种:
AlexNet、GoogleNet、ResNet、VGG、R-CNN、GAN、LSTM、RNN和ResNe。
8.根据权利要求1所述的运算装置,其特征在于,所述离线模型为神经网络模型,所述神经网络模型包括以下至少一种:
Cambricon_model、AlexNet_model、GoogleNet_model、VGG_model、R-CNN_model、GAN_model、LSTM_model、RNN_model和ResNet_model。
9.一种神经网络的运算方法,包括步骤:
获取输入数据;
获取离线模型或根据所述输入数据确定离线模型;
依据所述离线模型确定运算指令,以供后续计算调用;
调用所述运算指令,对待处理数据进行运算得到运算结果以供输出。
10.根据权利要求9所述的方法,其特征在于,该输入数据包括待处理数据、网络结构和权值数据,或者该输入数据包括待处理数据离线模型数据。
11.根据权利要求10所述的方法,其特征在于,所述离线模型为已有模型,或者为根据输入数据后期构建的离线模型。
12.根据权利要求9所述的方法,其特征在于,所述调用所述运算指令包括:
在输入数据仅包括待处理数据且不包含离线模型,根据运算指令进行网络运算;
或者确定离线模型的数据情况下,根据运算指令进行网络运算。
13.根据权利要求10所述的方法,其特征在于,当输入数据包括待处理数据、网络结构和权值数据时,所述根据输入数据确定离线模型包括:
根据网络结构和权值数据构建离线模型。
14.根据权利要求10所述的方法,其特征在于,所述网络结构为神经网络结构,所述神经网络结构包括以下至少一种:
AlexNet、GoogleNet、ResNet、VGG、R-CNN、GAN、LSTM、RNN和ResNe。
15.根据权利要求9所述的方法,其特征在于,所述离线模型为神经网络模型,所述神经网络模型包括以下至少一种:
Cambricon_model、AlexNet_model、GoogleNet_model、VGG_model、R-CNN_model、GAN_model、LSTM_model、RNN_model和ResNet_model。
16.一种电子设备,其特征在于包括权利要求1-8任一所述的运算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/697,727 US11698786B2 (en) | 2017-04-19 | 2019-11-27 | Processing apparatus and processing method |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710269049.0A CN108734288B (zh) | 2017-04-21 | 2017-04-21 | 一种运算方法及装置 |
CN2017102690490 | 2017-04-21 | ||
CN201880000923.3A CN109121435A (zh) | 2017-04-19 | 2018-04-17 | 处理装置和处理方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880000923.3A Division CN109121435A (zh) | 2017-04-19 | 2018-04-17 | 处理装置和处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109376852A true CN109376852A (zh) | 2019-02-22 |
CN109376852B CN109376852B (zh) | 2021-01-29 |
Family
ID=63934137
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710269049.0A Active CN108734288B (zh) | 2017-04-19 | 2017-04-21 | 一种运算方法及装置 |
CN201811097653.0A Active CN109376852B (zh) | 2017-04-19 | 2018-04-17 | 运算装置及运算方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710269049.0A Active CN108734288B (zh) | 2017-04-19 | 2017-04-21 | 一种运算方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN108734288B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613597A (zh) * | 2020-11-30 | 2021-04-06 | 河南汇祥通信设备有限公司 | 一种综合管廊风险自动识别卷积神经网络模型及构建方法 |
CN112947935A (zh) * | 2021-02-26 | 2021-06-11 | 上海商汤智能科技有限公司 | 运算方法及装置、电子设备和存储介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109685203B (zh) * | 2018-12-21 | 2020-01-17 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机系统及存储介质 |
CN109726797B (zh) * | 2018-12-21 | 2019-11-19 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置、计算机系统及存储介质 |
CN109697500B (zh) * | 2018-12-29 | 2020-06-09 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
US11983535B2 (en) | 2019-03-22 | 2024-05-14 | Cambricon Technologies Corporation Limited | Artificial intelligence computing device and related product |
CN110070176A (zh) * | 2019-04-18 | 2019-07-30 | 北京中科寒武纪科技有限公司 | 离线模型的处理方法、离线模型的处理装置及相关产品 |
CN111832738B (zh) * | 2019-04-18 | 2024-01-09 | 中科寒武纪科技股份有限公司 | 一种数据处理方法及相关产品 |
CN110309917B (zh) * | 2019-07-05 | 2020-12-18 | 安徽寒武纪信息科技有限公司 | 离线模型的验证方法及相关装置 |
CN116167422A (zh) * | 2019-07-31 | 2023-05-26 | 华为技术有限公司 | 一种集成芯片以及处理传感器数据的方法 |
CN111582459B (zh) * | 2020-05-18 | 2023-10-20 | Oppo广东移动通信有限公司 | 执行操作的方法、电子设备、装置及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104145281A (zh) * | 2012-02-03 | 2014-11-12 | 安秉益 | 神经网络计算装置和系统及其方法 |
CN105005911A (zh) * | 2015-06-26 | 2015-10-28 | 深圳市腾讯计算机系统有限公司 | 深度神经网络的运算系统及运算方法 |
CN105512723A (zh) * | 2016-01-20 | 2016-04-20 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
US20160162779A1 (en) * | 2014-12-05 | 2016-06-09 | RealMatch, Inc. | Device, system and method for generating a predictive model by machine learning |
US20160247066A1 (en) * | 2012-05-10 | 2016-08-25 | Yan M. Yufik | Systems and methods for a computer understanding multi modal data streams |
CN106529670A (zh) * | 2016-10-27 | 2017-03-22 | 中国科学院计算技术研究所 | 一种基于权重压缩的神经网络处理器、设计方法、芯片 |
CN106557332A (zh) * | 2016-11-30 | 2017-04-05 | 上海寒武纪信息科技有限公司 | 一种指令生成过程的复用方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3035249B1 (en) * | 2014-12-19 | 2019-11-27 | Intel Corporation | Method and apparatus for distributed and cooperative computation in artificial neural networks |
CN106485321B (zh) * | 2015-10-08 | 2019-02-12 | 上海兆芯集成电路有限公司 | 具有架构神经网络执行单元的处理器 |
CN108510064B (zh) * | 2016-04-18 | 2021-12-10 | 中国科学院计算技术研究所 | 包括多个核心处理模块的人工神经网络的处理系统及方法 |
CN106228238B (zh) * | 2016-07-27 | 2019-03-22 | 中国科学技术大学苏州研究院 | 现场可编程门阵列平台上加速深度学习算法的方法和系统 |
-
2017
- 2017-04-21 CN CN201710269049.0A patent/CN108734288B/zh active Active
-
2018
- 2018-04-17 CN CN201811097653.0A patent/CN109376852B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104145281A (zh) * | 2012-02-03 | 2014-11-12 | 安秉益 | 神经网络计算装置和系统及其方法 |
US20160247066A1 (en) * | 2012-05-10 | 2016-08-25 | Yan M. Yufik | Systems and methods for a computer understanding multi modal data streams |
US20160162779A1 (en) * | 2014-12-05 | 2016-06-09 | RealMatch, Inc. | Device, system and method for generating a predictive model by machine learning |
CN105005911A (zh) * | 2015-06-26 | 2015-10-28 | 深圳市腾讯计算机系统有限公司 | 深度神经网络的运算系统及运算方法 |
CN105512723A (zh) * | 2016-01-20 | 2016-04-20 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
CN106529670A (zh) * | 2016-10-27 | 2017-03-22 | 中国科学院计算技术研究所 | 一种基于权重压缩的神经网络处理器、设计方法、芯片 |
CN106557332A (zh) * | 2016-11-30 | 2017-04-05 | 上海寒武纪信息科技有限公司 | 一种指令生成过程的复用方法及装置 |
Non-Patent Citations (2)
Title |
---|
CHUNYI SU等: "Model-based, memory-centric performance and power optimization on NUMA multiprocessors", 《2012 IEEE INTERNATIONAL SYMPOSIUM ON WORKLOAD CHARACTERIZATION》 * |
王华利等: "基于深度卷积神经网络的快速图像分类算法", 《计算机工程与应用》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613597A (zh) * | 2020-11-30 | 2021-04-06 | 河南汇祥通信设备有限公司 | 一种综合管廊风险自动识别卷积神经网络模型及构建方法 |
CN112613597B (zh) * | 2020-11-30 | 2023-06-30 | 河南汇祥通信设备有限公司 | 一种综合管廊风险自动识别卷积神经网络模型及构建方法 |
CN112947935A (zh) * | 2021-02-26 | 2021-06-11 | 上海商汤智能科技有限公司 | 运算方法及装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108734288A (zh) | 2018-11-02 |
CN109376852B (zh) | 2021-01-29 |
CN108734288B (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109376852A (zh) | 运算装置及运算方法 | |
US11698786B2 (en) | Processing apparatus and processing method | |
Ferreira et al. | An approach to reservoir computing design and training | |
CN107918794A (zh) | 基于计算阵列的神经网络处理器 | |
CN111462137A (zh) | 一种基于知识蒸馏和语义融合的点云场景分割方法 | |
CN110991362A (zh) | 一种基于注意力机制的行人检测模型 | |
CN111176758B (zh) | 配置参数的推荐方法、装置、终端及存储介质 | |
CN109496294A (zh) | 人工智能处理装置的编译方法及系统、存储介质及终端 | |
CN108416327A (zh) | 一种目标检测方法、装置、计算机设备及可读存储介质 | |
CN109472356A (zh) | 一种可重构神经网络算法的加速装置及方法 | |
CN107341542A (zh) | 用于执行循环神经网络和lstm运算的装置和方法 | |
CN109902548A (zh) | 一种对象属性识别方法、装置、计算设备及系统 | |
CN106447033A (zh) | 神经元突触电路及神经元电路 | |
CN110222717A (zh) | 图像处理方法和装置 | |
WO2022078334A1 (zh) | 利用神经元模型及网络处理信号的处理方法、介质、设备 | |
CN109597965A (zh) | 基于深度神经网络的数据处理方法、系统、终端及介质 | |
CN108320018A (zh) | 一种人工神经网络运算的装置及方法 | |
CN109272110A (zh) | 基于光子神经网络芯片的光电融合智能信号处理系统 | |
US20240129236A1 (en) | Dqn-based distributed computing network coordinate flow scheduling system and method | |
CN112121419B (zh) | 虚拟对象控制方法、装置、电子设备以及存储介质 | |
CN108985449A (zh) | 一种对卷积神经网络处理器的控制方法及装置 | |
CN109643336A (zh) | 人工智能处理装置设计模型建立方法、系统、存储介质、终端 | |
Zhu et al. | Tri-HGNN: Learning triple policies fused hierarchical graph neural networks for pedestrian trajectory prediction | |
CN108470212A (zh) | 一种能利用事件持续时间的高效lstm设计方法 | |
CN110276413A (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 |