CN116402102A - 神经网络处理器和电子设备 - Google Patents
神经网络处理器和电子设备 Download PDFInfo
- Publication number
- CN116402102A CN116402102A CN202310340766.3A CN202310340766A CN116402102A CN 116402102 A CN116402102 A CN 116402102A CN 202310340766 A CN202310340766 A CN 202310340766A CN 116402102 A CN116402102 A CN 116402102A
- Authority
- CN
- China
- Prior art keywords
- unit
- data
- processing
- instruction
- buffer module
- 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.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 87
- 238000012545 processing Methods 0.000 claims abstract description 263
- 238000000034 method Methods 0.000 claims abstract description 18
- 230000008569 process Effects 0.000 claims abstract description 16
- 239000000872 buffer Substances 0.000 claims description 160
- 230000003139 buffering effect Effects 0.000 claims description 40
- 238000011176 pooling Methods 0.000 claims description 27
- 239000011159 matrix material Substances 0.000 claims description 24
- 238000004891 communication Methods 0.000 claims description 13
- 230000001360 synchronised effect Effects 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 53
- 238000010586 diagram Methods 0.000 description 14
- 230000015654 memory Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Advance Control (AREA)
Abstract
本申请涉及处理器技术领域,尤其涉及一种神经网络处理器和电子设备,神经网络处理器包括:第一配置管理单元、第一缓存单元以及多个簇单元;第一配置管理单元,用于将第一待处理指令分发给簇单元以及对簇单元进行信息同步管理;簇单元,用于对分发的第一待处理指令进行处理,并将处理后的第一处理结果输出给第一缓存单元;第一缓存单元,用于对第一处理结果进行缓存并存储在外部存储单元中。依据本申请提供的神经网络处理器,可以设置多个簇单元,这样在对复杂神经网络算法进行处理时,第一配置管理单元可以算法分切为多个第一待处理指令,并合理分配给多个簇单元,多个簇单元可以同时进行任务处理,以提高处理效率。
Description
技术领域
本申请涉及处理器技术领域,尤其涉及一种神经网络处理器和电子设备。
背景技术
神经网络及深度学习算法已经获得了非常成功的应用,并处于迅速发展的过程中。业界普遍预期这种新的计算方式有助于实现更为普遍和更为复杂的智能应用。神经网络及深度学习算法近年来在图像识别应用领域取得了非常突出的成就,因此业界对神经网络及深度学习算法的优化及高效率实现开始关注并重视,目前许多硬件设备(例如手机、电动车等)都配备有独立的神经网络处理器中,以针对神经网络算法进行高效的处理。
现有的神经网络处理器架构针对复杂神经网络算法的处理效率较低,因此现有技术中急缺一种专门针对神经网络算法的高性能处理器。
发明内容
本申请提供一种神经网络处理器和电子设备,用以解决现有技术中的神经网络处理器的处理效率较低的技术问题。
一方面,本申请提供一种神经网络处理器,包括:第一配置管理单元、第一缓存单元以及多个簇单元;
所述第一配置管理单元,用于将第一待处理指令分发给所述簇单元以及对所述簇单元进行信息同步管理;所述簇单元,用于对分发的所述第一待处理指令进行处理,并将处理后的第一处理结果输出给所述第一缓存单元;所述第一缓存单元,用于对所述第一处理结果进行缓存并存储在外部存储单元中。
根据本申请提供的一种神经网络处理器,所述簇单元包括第二配置管理单元、第二缓存单元以及至少一个处理核;
所述第二配置管理单元,用于根据所述第一待处理指令,将第二待处理指令分发给所述处理核以及对所述处理核进行信息同步管理;所述处理核,用于对分发的所述第二待处理指令进行处理,并将处理后的第二处理结果输出给所述第二缓存单元;所述第二缓存单元,用于将对所述第二处理结果进行缓存并将所述第二处理结果发送给所述第二缓存单元。
根据本申请提供的一种神经网络处理器,所述簇单元还包括第一数字处理单元;
所述第二配置管理单元,用于根据所述第二待处理指令,将第三待处理指令分发给所述第一数字处理单元;所述第一数字处理单元,用于对分发的所述第三待处理指令进行处理,并将处理后的第三处理结果输出给所述第二缓存单元;所述第二缓存单元,用于对所述第三处理结果进行缓存并将所述第三处理结果发送给所述第一缓存单元。
根据本申请提供的一种神经网络处理器,所述处理核包括第三配置管理单元、卷积处理单元、矩阵处理单元、池化处理单元、查表运算单元、向量运算单元、标量运算单元和第二数字处理单元;
所述第三配置管理单元,用于根据所述第二待处理指令,将第四待处理指令分配给所述卷积处理单元、矩阵处理单元、池化处理单元、查表运算单元、向量运算单元、标量运算单元和第二数字处理单元中的一个或多个;
所述卷积处理单元、矩阵处理单元、池化处理单元、查表运算单元、向量运算单元、标量运算单元和第二数字处理单元中的一个或多个,用于对分配的所述第四待处理指令进行处理,得到第四处理结果;
其中,所述卷积处理单元用于进行卷积运算;所述矩阵处理单元用于进行矩阵运算;所述池化处理单元用于进行池化运算;所述查表运算单元用于进行查表运算;所述向量运算单元用于进行向量运算;所述标量运算单元用于进行标量运算;所述第二数字处理单元用于进行算子运算。
根据本申请提供的一种神经网络处理器,所述处理核还包括第一数据搬运单元、第二数据搬运单元、第三数据搬运单元和数据暂存单元;
所述第三配置管理单元,还用于向所述第一数据搬运单元、第二数据搬运单元和第三数据搬运单元分配数据读取指令;所述第一数据搬运单元,用于根据所述数据读取指令从所述外部存储单元中读取目标数据,并将所述目标数据发送给所述第一缓存单元;所述第二数据搬运单元,用于根据所述数据读取指令从所述第一缓存单元中读取所述目标数据,并将所述目标数据发送给所述第二缓存单元;所述第三数据搬运单元,用于根据所述数据读取指令从所述第二缓存单元中读取所述目标数据,并将所述目标数据发送给所述数据暂存单元;
所述卷积处理单元、矩阵处理单元、池化处理单元、查表运算单元、向量运算单元、标量运算单元和第二数字处理单元中的一个或多个,用于根据分配的第四待处理指令和所述目标数据进行处理,得到所述第四处理结果,并将所述第四处理结果发送给所述数据暂存单元。
根据本申请提供的一种神经网络处理器,所述所述处理核还包括数据自动搬运单元;
所述第三配置管理单元,还用于向所述数据自动搬运单元分配数据读取指令,所述数据自动搬运单元,用于从所述第二缓存单元中读取目标数据;
所述卷积处理单元、矩阵处理单元、池化处理单元、查表运算单元、向量运算单元、标量运算单元和第二数字处理单元中的一个或多个,用于根据分配的第四待处理指令和所述目标数据进行处理,得到所述第四处理结果,并将所述第四处理结果发送给所述数据暂存单元。
根据本申请提供的一种神经网络处理器,所述处理核还包括指令获取单元;
所述指令获取单元,用于从所述第二配置管理单元中获取所述第四待处理指令,并将所述第四待处理指令发送给所述第三配置管理单元。
根据本申请提供的一种神经网络处理器,所述卷积处理单元包括第一输入缓存模块、第一权重缓存模块和第一输出缓存模块,所述第一输入缓存模块用于对输入数据进行缓存,所述第一权重缓存模块用于对权重数据进行缓存,所述第一输出缓存模块用于对输出数据进行缓存;
所述矩阵处理单元包括第二输入缓存模块、第二权重缓存模块和第二输出缓存模块,所述第二输入缓存模块用于对输入数据进行缓存,所述第二权重缓存模块用于对权重数据进行缓存,所述第二输出缓存模块用于对输出数据进行缓存;
所述池化处理单元包括第三输入缓存模块和第三输出缓存模块,所述第三输入缓存模块用于对输入数据进行缓存,所述第三输出缓存模块用于对输出数据进行缓存;
所述查表运算单元包括第四输入缓存模块和第四输出缓存模块,所述第四输入缓存模块用于对输入数据进行缓存,所述第四输出缓存模块用于对输出数据进行缓存;
所述向量运算单元包括第五输入缓存模块、第五权重缓存模块和第五输出缓存模块,所述第五输入缓存模块用于对输入数据进行缓存,所述第五权重缓存模块用于对权重数据进行缓存,所述第五输出缓存模块用于对输出数据进行缓存;
所述标量运算单元包括数据寄存模块,所述数据寄存模块用于对数据进行暂存;
所述第二数字处理单元包括第六输入缓存模块、第六权重缓存模块和第六输出缓存模块,所述第六输入缓存模块用于对输入数据进行缓存,所述第六权重缓存模块用于对权重数据进行缓存,所述第六输出缓存模块用于对输出数据进行缓存。
根据本申请提供的一种神经网络处理器,所述第二配置管理单元包括指令分配模块和信息同步模块;
所述指令分配模块,用于将所述第二待处理指令分配给各个所述处理核进行处理;所述信息同步模块,用于控制各所述处理核的处理进程保持一致。
另一方面,本申请还提供一种电子设备,包括如上述任一项所述的神经网络处理器;
还包括中央处理器、存储控制单元、通信总线和至少一个外部存储单元;
所述神经网络处理器和存储控制单元均通过所述通信总线与所述中央处理器通信连接;所述存储控制单元与所述外部存储单元通信连接,以管理所述外部存储单元的读取和写入。
本申请提供的神经网络处理器,其包括:第一配置管理单元、第一缓存单元以及多个簇单元;第一配置管理单元,用于将第一待处理指令分发给簇单元以及对簇单元进行信息同步管理;簇单元,用于对分发的第一待处理指令进行处理,并将处理后的第一处理结果输出给第一缓存单元;第一缓存单元,用于对第一处理结果进行缓存并存储在外部存储单元中。依据本申请提供的神经网络处理器,可以设置多个簇单元,这样在对复杂神经网络算法进行处理时,第一配置管理单元可以算法分切为多个第一待处理指令,并合理分配给多个簇单元,多个簇单元可以同时进行任务处理,以提高处理效率。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的神经网络处理器的结构示意图;
图2为本申请实施例提供的簇单元结构示意图;
图3为本申请实施例提供的处理核结构示意图之一;
图4为本申请实施例提供的处理核结构示意图之二;
图5为本申请实施例提供的卷积处理单元的结构示意图;
图6为本申请实施例提供的一种电子设备结构示意图;
图7为本申请实施例提供的神经网络处理器内部数据计算流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有技术中的神经网络处理器架构一般为单核处理器,这种单核架构使得处理器处理指令时无法做到多核并行处理,导致处理效率较低。另外现有的单核架构也方便处理器处理核心数量的扩展,因此在一些需要多核并行处理的应用场景中,现有的神经网络处理器架构受到限制,无法适用。
本申请中为了解决现有的神经网络处理器存在的技术缺陷,提出了一种神经网络处理器,该神经网络处理器包括:第一配置管理单元、第一缓存单元以及多个簇单元;第一配置管理单元,用于将第一待处理指令分发给簇单元以及对簇单元进行信息同步管理;簇单元,用于对分发的第一待处理指令进行处理,并将处理后的第一处理结果输出给第一缓存单元;第一缓存单元,用于对第一处理结果进行缓存并存储在外部存储单元中。可以看出,本申请提供的神经网络处理器设置多个簇单元,这样在对复杂神经网络算法进行处理时,第一配置管理单元可以将神经网络算法分切为多个第一待处理指令,并合理分配给多个簇单元,多个簇单元可以同时进行任务处理,以提高处理效率。并且,本申请提供的神经网络处理器,可以根据需要设置多个簇单元,以适用各种应用场景,并且可以通过第一配置管理单元对多个簇单元进行统一配置和管理,方便了在适用该神经网络处理器时的可编程性。
下面结合图1-图5描述本申请提供的神经网络处理器。
图1为本申请实施例提供的神经网络处理器的结构示意图,请参考图1所示,该神经网络处理器10包括:第一配置管理单元101、第一缓存单元103以及多个簇单元102;
其中,第一配置管理单元101与各个簇单元102通过通信总线通信连接,各个簇单元102与第一缓存单元103也通过通信总线通信连接。
第一配置管理单元101,用于将第一待处理指令分发给簇单元102以及对簇单元102进行信息同步管理;例如,本实施例的神经网络处理器设置五个簇单元102,当第一配置管理单元101获取到多条第一待处理指令时,第一配置管理单元101将该多条第一待处理指令合理的分配给五个簇单元102。簇单元102,用于对分发的第一待处理指令进行处理,并将处理后的第一处理结果输出给第一缓存单元103;第一缓存单元103,用于对第一处理结果进行缓存并存储在外部存储单元中。
示例的,由于在实际工作场景中,神经网络处理器一般是作为协处理器工作,其用于接收CPU(Central Processing Unit,中央处理器)分配的第一待处理指令,第一待处理指令一般是针对神经网络的相关运算指令,神经网络处理器根据第一待处理指令进行相关运算后,将得到的第一处理结果输出给第一缓存单元103;第一缓存单元103对第一处理结果进行缓存并存储在外部存储单元中,CPU从外部存储单元中读取处理得到的第一处理结果,然后统一进行数据处理。
本申请提供的神经网络处理器设置多个簇单元,这样在对复杂神经网络算法进行处理时,第一配置管理单元可以算法分切为多个第一待处理指令,并合理分配给多个簇单元,多个簇单元可以同时进行任务处理,以提高处理效率。并且,本申请提供的神经网络处理器,可以根据需要多个簇单元,以适用大部分应用场景,并且可以通过第一配置管理单元对多个簇单元进行统一配置和管理,方便了在适用该神经网络处理器时的可编程性。
示例的,第一配置管理单元101可以根据各个簇单元102的当前处理状态(剩余处理内存),将该多个第一待处理指令合理的分配给五个簇单元102。
示例的,本实施例的神经网络处理器的架构采用SCMT(Single ConfigurationMulti Thread,单配置多线程)。本实施例中的每个簇单元102可以看作是神经网络处理器中的一个线程,多个线程组成一个NPU(Neural network Processing Unit,神经网络处理器)。其中,单配置指的是本实施例中每个簇单元102的架构和配置均相同,每个线程映射到硬件上是一个物理的Core(核心),通过第一配置管理单元101对多个簇单元102进行统一相同的配置,这样大大降低了硬件配置所带来的开销。
同时,在使用本实施例提供的神经网络处理器时,方便技术人员针对本实施例的神经网络处理器进行编程,由于各个簇单元102的架构和配置均相同,因此技术人员只需要关注单个簇单元102的架构和逻辑,即可设计出编程模型以完成软件编程,因此对于技术人员来说降低了工作量。
同时,本实施例的神经网络处理器采用的SCMT架构,SCMT架构是一个可扩展架构,通过扩展簇单元102的数量即可增强处理器的算力,同时可以保证编程模型的稳定性,即整个编程架构不会发生大的改变,只需要技术人员在原来的编程架构上进行对应的扩展即可,这样也方便了处理器的扩展,使得该神经网络处理器可以适用大部分应用场景。
图2为本申请实施例提供的簇单元结构示意图,请参考图2所示,该簇单元102包括第二配置管理单元201、第二缓存单元203以及至少一个处理核202。
其中,第二配置管理单元201通过通信总线与处理核202通信连接,每个处理核202也通过通信总线与第二缓存单元203通信连接。
其中,第二配置管理单元201,用于根据第一待处理指令,将第二待处理指令分发给处理核以及对处理核进行信息同步管理;处理核202,用于对分发的第二待处理指令进行处理,并将处理后的第二处理结果输出给第二缓存单元203;第二缓存单元203,用于将对第二处理结果进行缓存并将第二处理结果发送给第二缓存单元203。
需要说明的是,第一待处理指令为CPU分配给神经网络处理器中第一配置管理单元101的需要处理的指令,第二待处理指令为第一配置管理单元101对第一待处理指令进行合理分配,分发给每个簇单元102的需要处理的指令。
其中,每个簇单元102由多个处理核202组成,多个处理核202共享第二缓存单元203,多个处理核202可以对第二待处理指令并行处理,以提高处理效率,且根据算力的需要,处理核202的个数也可以扩展,由于每个处理核202的架构相同,因此可以通过第二配置管理单元201对多个处理核202进行统一配置,以提高配置效率。
示例的,第二配置管理单元201包括指令分配模块和信息同步模块;指令分配模块,用于将第二待处理指令分配给各个处理核进行处理;信息同步模块,用于管理各处理核的处理进程保持一致,以保证多个处理核202数据的完整性。
可选的,信息同步模块可以为sync(Synchronica)单元,sync单元采用信息同步机制,sync单元可以控制多个处理核202的处理进程使得保持一致,这样保证多个处理核202在时钟信号下输出的信息是完整的。
可选的,簇单元102还可以包括第一数字处理单元204,第一数字处理单元204主要用于针对数字信号进行处理,例如标量数据的加减乘除算子或者其他复杂的数学算子进行处理,可以提高这类指令的处理效率。工作时,第二配置管理单元201,用于根据第二待处理指令,将第三待处理指令分发给第一数字处理单元,该第三待处理指令主要是针对数字运算的需要处理的指令;第一数字处理单元204,用于对分发的第三待处理指令进行处理,并将处理后的第三处理结果输出给第二缓存单元203;第二缓存单元203,用于对第三处理结果进行缓存并将第三处理结果发送给第一缓存单元103。
可选的,第一缓存单元103和第二缓存单元203可以采用SRAM(Static Random-Access Memory,静态随机存取存储器)技术和DMA(Direct Memory Access,直接内存访问)技术实现,例如第一缓存单元103包括SRAM模块和DMA模块,以实现数据的访问、存储和缓存。
图3为本申请实施例提供的处理核结构示意图之一,如图3所示,该处理核202包括第三配置管理单元301、卷积处理单元302、矩阵处理单元303、池化处理单元304、查表运算单元305、向量运算单元306、标量运算单元307和第二数字处理单元308。
其中,第三配置管理单元301,用于根据第二待处理指令,将第四待处理指令分配给上述各个神经网络处理单元,具体的,第三配置管理单元301接收到第二待处理指令后,将第二待处理指令后分解为多个第四待处理指令,然后根据第四待处理指令后中需要处理的指令的类型,第三配置管理单元301将第四待处理指令分配给卷积处理单元302、矩阵处理单元303、池化处理单元304、查表运算单元305、向量运算单元306、标量运算单元307和第二数字处理单元308中的一个或多个。例如,第四待处理指令包括卷积处理指令和池化处理指令,则第三配置管理单元301分别将括卷积处理指令和池化处理指令分配给卷积处理单元302和池化处理单元304。
卷积处理单元302、矩阵处理单元303、池化处理单元304、查表运算单元305、向量运算单元306、标量运算单元307和第二数字处理单元308中的一个或多个,用于对分配的第四待处理指令进行处理,得到第四处理结果。
其中,卷积处理单元302用于根据指令进行卷积运算;矩阵处理单元303用于根据指令进行矩阵运算;池化处理单元304用于进行池化运算;查表运算单元305用于进行查表运算;向量运算单元306用于进行向量运算;标量运算单元307用于进行标量运算;第二数字处理单元用于进行数学算子运算。
本实施例的处理核202包括多个针对不同的神经网络运算的处理模块,第三配置管理单元301可以根据第四待处理指令的类型,将不同类型的待处理指令分配给对应的处理单元,这样可以提高每个处理单元的处理效率,进而使得神经网络处理器的处理效率更高。
进一步的,请继续参考图3所示,处理核202还包括第一数据搬运单元309、第二数据搬运单元3010、第三数据搬运单元3011和数据暂存单元3012。
一般的,处理核202对指令进行处理时,不仅需要根据指令信息,还需要结合需要处理的目标数据,而目标数据一般都是存储在外部存储单元中,处理器可以通过内部的缓存单元(第一缓存单元103和第二缓存单元203)从外部存储单元中读取目标数据。
可以理解的是,第一缓存单元103可以理解为处理器内部的L3级缓存,第二缓存单元203可以理解为L2级缓存,第三数据搬运单元3011和数据暂存单元3012可以理解为L1级缓存。第一缓存单元103和第二缓存单元203均具有数据的读取、存入和缓存的功能,而该数据暂存单元3012仅仅具有数据暂存的功能,因此需要借助第一数据搬运单元309、第二数据搬运单元3010、第三数据搬运单元3011完成从外部存储单元中读取目标数据的任务。
示例的,工作时,第一数据搬运单元309,用于根据第三配置管理单元301分配的数据读取指令从外部存储单元中读取目标数据,并将目标数据发送给第一缓存单元103;第二数据搬运单元3010,用于根据数据读取指令从第一缓存单元103中读取目标数据,并将目标数据发送给第二缓存单元203;第三数据搬运单元3011,用于根据数据读取指令从第二缓存单元203中读取目标数据,并将目标数据发送给数据暂存单元3012;然后各个处理单元根据对应的处理指令去数据暂存单元3012读取对应的目标数据,以完成对应的指令运算。
即卷积处理单元302、矩阵处理单元303、池化处理单元304、查表运算单元305、向量运算单元306、标量运算单元307和第二数字处理单元308中的一个或多个,用于根据分配的第四待处理指令和目标数据进行处理,得到第四处理结果,并将第四处理结果发送给数据暂存单元3012。然后再通过第一数据搬运单元309、第二数据搬运单元3010、第三数据搬运单元3011将第四处理结果一级一级搬运,直到将数据存入外部存储单元中。
其中,第一数据搬运单元309、第二数据搬运单元3010、第三数据搬运单元3011相当于采用手动搬运的方式,逐级搬运数据。
可选的,图4为本申请实施例提供的处理核结构示意图之二,如图4所示,在一种实施例中,该处理核202可以包括数据自动搬运单元3014;第三配置管理单元,还用于向数据自动搬运单元3014分配数据读取指令,数据自动搬运单元3014,用于根据数据读取指令从第二缓存单元203中读取目标数据,该过程相当于自动搬运数据。
需要说明的是,一般的处理核202可以选择上述自动搬运数据和手动搬运数据的一种形式进行设计。
可选的,处理核202还包括指令获取单元3013;指令获取单元3013,用于从第二配置管理单元201中获取第四待处理指令,并将第四待处理指令发送给第三配置管理单元301。
示例的,图5为本申请实施例提供的卷积处理单元的结构示意图,如图5所示,该卷积处理单元302包括第一输入缓存模块3021、第一权重缓存模块3022和第一输出缓存模块3023,第一输入缓存模块3021用于对输入数据进行缓存,第一权重缓存模块3022用于对权重数据进行缓存,第一输出缓存模块3023用于对输出数据进行缓存。这样,在卷积处理单元302进行卷积运算时,输入数据、输出数据以及权重数据都可暂时存储在内部对应的模块中,随时内部调用,以保证数据的读取速度快,保证较高的数据处理效率。
示例的,卷积处理单元302进行卷积计算时,支持Depthwise(深度卷积运算)、winograd卷积运算、Deconv卷积和Dialation Conv卷积运算。
示例的,矩阵处理单元303包括第二输入缓存模块、第二权重缓存模块和第二输出缓存模块,第二输入缓存模块用于对输入数据进行缓存,所述第二权重缓存模块用于对权重数据进行缓存,所述第二输出缓存模块用于对输出数据进行缓存。可见,第二输入缓存模块、第二权重缓存模块和第二输出缓存模块的作用和上述卷积处理单元302种的第一输入缓存模块3021、第一权重缓存模块3022和第一输出缓存模块3023的作用相同,此处不再赘述。
示例的,池化处理单元304包括第三输入缓存模块和第三输出缓存模块,第三输入缓存模块用于对输入数据进行缓存,第三输出缓存模块用于对输出数据进行缓存。
示例的,查表运算单元305包括第四输入缓存模块和第四输出缓存模块,第四输入缓存模块用于对输入数据进行缓存,第四输出缓存模块用于对输出数据进行缓存。
示例的,向量运算单元306包括第五输入缓存模块、第五权重缓存模块和第五输出缓存模块,第五输入缓存模块用于对输入数据进行缓存,所述第五权重缓存模块用于对权重数据进行缓存,所述第五输出缓存模块用于对输出数据进行缓存。
示例的,标量运算单元307包括数据寄存模块(即数据寄存器),数据寄存模块用于对数据进行暂存。
示例的,第二数字处理单元308包括第六输入缓存模块、第六权重缓存模块和第六输出缓存模块,第六输入缓存模块用于对输入数据进行缓存,第六权重缓存模块用于对权重数据进行缓存,第六输出缓存模块用于对输出数据进行缓存。
可以看出,第三配置管理单元301负责对各个处理单元分配任务以及维护各个处理单元的同步关系,卷积处理单元302、矩阵处理单元303、池化处理单元304、查表运算单元305、向量运算单元306、标量运算单元307和第二数字处理单元308相当于都有独立的内置寄存器,第一数据搬运单元309负责根据内置寄存器和配置指示的地址从第二缓存单元203中搬运数据到数据暂存单元3012中。数据暂存单元3012可以为SRAM模块。
图6为本申请实施例提供的一种电子设备结构示意图,该电子设备包括如上述实施例提供的神经网络处理器10,对于该神经网络处理器10的结构本实施例中不再赘述。
另外,该电子设备还包括中央处理器70、存储控制单元50、通信总线40和至少一个外部存储单元60。
神经网络处理器10和存储控制单元50均通过通信总线40与中央处理器70通信连接;存储控制单元50与外部存储单元60通信连接,以管理外部存储单元60的读取和写入。
工作时,神经网络处理器10作为协处理器,中央处理器70作为主处理器,外部存储单元60用于所有的数据存储。中央处理器70将神经网络相关的待处理指令分配给神经网络处理器10进行处理,得到的处理结果反馈给中央处理器70。
依据本实施例提供的电子设备,可以快速的处理神经网络的相关运算,且可以根据算力需求扩展神经网络处理器10的结构,以满足算力需求。
示例的,外部存储单元60采用DDR(Double Data Rate,双倍速率同步动态随机存储器)。
图7为本申请实施例提供的神经网络处理器内部数据计算流程示意图,如图7所示,DDR表示Double Data Rate,双倍速率同步动态随机存储器;上述的,第一缓存单元103可以简称为NSRAM,第二缓存单元简称为CSRAM,数据暂存单元3012表示为PSRAM,OP表示一条完整的计算流程,*代表OP的数量≥0。其中,D2N表示数据流从DDR流向NSRAM,N2C表示数据流从NSRAM流向CSRAM,C2P表示数据流从CSRAM流向PSRAM,P2C表示数据流从PSRAM流向CSRAM,C2N表示数据流从CSRAM流向NSRAM,N2D表示数据流从NSRAM流向DDR。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种神经网络处理器,其特征在于,包括:第一配置管理单元、第一缓存单元以及多个簇单元;
所述第一配置管理单元,用于将第一待处理指令分发给所述簇单元以及对所述簇单元进行信息同步管理;
所述簇单元,用于对分发的所述第一待处理指令进行处理,并将处理后的第一处理结果输出给所述第一缓存单元;
所述第一缓存单元,用于对所述第一处理结果进行缓存并存储在外部存储单元中。
2.根据权利要求1所述的神经网络处理器,其特征在于,所述簇单元包括第二配置管理单元、第二缓存单元以及至少一个处理核;
所述第二配置管理单元,用于根据所述第一待处理指令,将第二待处理指令分发给所述处理核以及对所述处理核进行信息同步管理;
所述处理核,用于对分发的所述第二待处理指令进行处理,并将处理后的第二处理结果输出给所述第二缓存单元;
所述第二缓存单元,用于将对所述第二处理结果进行缓存并将所述第二处理结果发送给所述第二缓存单元。
3.根据权利要求2所述的神经网络处理器,其特征在于,所述簇单元还包括第一数字处理单元;
所述第二配置管理单元,用于根据所述第二待处理指令,将第三待处理指令分发给所述第一数字处理单元;
所述第一数字处理单元,用于对分发的所述第三待处理指令进行处理,并将处理后的第三处理结果输出给所述第二缓存单元;
所述第二缓存单元,用于对所述第三处理结果进行缓存并将所述第三处理结果发送给所述第一缓存单元。
4.根据权利要求3所述的神经网络处理器,其特征在于,所述处理核包括第三配置管理单元、卷积处理单元、矩阵处理单元、池化处理单元、查表运算单元、向量运算单元、标量运算单元和第二数字处理单元;
所述第三配置管理单元,用于根据所述第二待处理指令,将第四待处理指令分配给所述卷积处理单元、所述矩阵处理单元、所述池化处理单元、所述查表运算单元、所述向量运算单元、所述标量运算单元和所述第二数字处理单元中的一个或多个;
所述卷积处理单元、所述矩阵处理单元、所述池化处理单元、所述查表运算单元、所述向量运算单元、所述标量运算单元和所述第二数字处理单元中的一个或多个,用于对分配的所述第四待处理指令进行处理,得到第四处理结果;
其中,所述卷积处理单元用于进行卷积运算;所述矩阵处理单元用于进行矩阵运算;所述池化处理单元用于进行池化运算;所述查表运算单元用于进行查表运算;所述向量运算单元用于进行向量运算;所述标量运算单元用于进行标量运算;所述第二数字处理单元用于进行算子运算。
5.根据权利要求4所述的神经网络处理器,其特征在于,所述处理核还包括第一数据搬运单元、第二数据搬运单元、第三数据搬运单元和数据暂存单元;
所述第三配置管理单元,还用于向所述第一数据搬运单元、所述第二数据搬运单元和所述第三数据搬运单元分配数据读取指令;
所述第一数据搬运单元,用于根据所述数据读取指令从所述外部存储单元中读取目标数据,并将所述目标数据发送给所述第一缓存单元;
所述第二数据搬运单元,用于根据所述数据读取指令从所述第一缓存单元中读取所述目标数据,并将所述目标数据发送给所述第二缓存单元;
所述第三数据搬运单元,用于根据所述数据读取指令从所述第二缓存单元中读取所述目标数据,并将所述目标数据发送给所述数据暂存单元;
所述卷积处理单元、所述矩阵处理单元、所述池化处理单元、所述查表运算单元、所述向量运算单元、所述标量运算单元和所述第二数字处理单元中的一个或多个,用于根据分配的第四待处理指令和所述目标数据进行处理,得到所述第四处理结果,并将所述第四处理结果发送给所述数据暂存单元。
6.根据权利要求4所述的神经网络处理器,其特征在于,所述处理核还包括数据自动搬运单元;
所述第三配置管理单元,还用于向所述数据自动搬运单元分配数据读取指令,所述数据自动搬运单元,用于从所述第二缓存单元中读取目标数据;
所述卷积处理单元、所述矩阵处理单元、所述池化处理单元、所述查表运算单元、所述向量运算单元、所述标量运算单元和所述第二数字处理单元中的一个或多个,用于根据分配的所述第四待处理指令和所述目标数据进行处理,得到所述第四处理结果,并将所述第四处理结果发送给所述数据暂存单元。
7.根据权利要求5所述的神经网络处理器,其特征在于,所述处理核还包括指令获取单元;
所述指令获取单元,用于从所述第二配置管理单元中获取所述第四待处理指令,并将所述第四待处理指令发送给所述第三配置管理单元。
8.根据权利要求4所述的神经网络处理器,其特征在于,
所述卷积处理单元包括第一输入缓存模块、第一权重缓存模块和第一输出缓存模块,所述第一输入缓存模块用于对输入数据进行缓存,所述第一权重缓存模块用于对权重数据进行缓存,所述第一输出缓存模块用于对输出数据进行缓存;
所述矩阵处理单元包括第二输入缓存模块、第二权重缓存模块和第二输出缓存模块,所述第二输入缓存模块用于对输入数据进行缓存,所述第二权重缓存模块用于对权重数据进行缓存,所述第二输出缓存模块用于对输出数据进行缓存;
所述池化处理单元包括第三输入缓存模块和第三输出缓存模块,所述第三输入缓存模块用于对输入数据进行缓存,所述第三输出缓存模块用于对输出数据进行缓存;
所述查表运算单元包括第四输入缓存模块和第四输出缓存模块,所述第四输入缓存模块用于对输入数据进行缓存,所述第四输出缓存模块用于对输出数据进行缓存;
所述向量运算单元包括第五输入缓存模块、第五权重缓存模块和第五输出缓存模块,所述第五输入缓存模块用于对输入数据进行缓存,所述第五权重缓存模块用于对权重数据进行缓存,所述第五输出缓存模块用于对输出数据进行缓存;
所述标量运算单元包括数据寄存模块,所述数据寄存模块用于对数据进行暂存;
所述第二数字处理单元包括第六输入缓存模块、第六权重缓存模块和第六输出缓存模块,所述第六输入缓存模块用于对输入数据进行缓存,所述第六权重缓存模块用于对权重数据进行缓存,所述第六输出缓存模块用于对输出数据进行缓存。
9.根据权利要求2所述的神经网络处理器,其特征在于,所述第二配置管理单元包括指令分配模块和信息同步模块;
所述指令分配模块,用于将所述第二待处理指令分配给各个所述处理核进行处理;所述信息同步模块,用于控制各所述处理核的处理进程保持一致。
10.一种电子设备,其特征在于,包括如权利要求1-9任一项所述的神经网络处理器;
还包括中央处理器、存储控制单元、通信总线和至少一个外部存储单元;
所述神经网络处理器和存储控制单元均通过所述通信总线与所述中央处理器通信连接;所述存储控制单元与所述外部存储单元通信连接,以管理所述外部存储单元的读取和写入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310340766.3A CN116402102A (zh) | 2023-03-31 | 2023-03-31 | 神经网络处理器和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310340766.3A CN116402102A (zh) | 2023-03-31 | 2023-03-31 | 神经网络处理器和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116402102A true CN116402102A (zh) | 2023-07-07 |
Family
ID=87009776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310340766.3A Pending CN116402102A (zh) | 2023-03-31 | 2023-03-31 | 神经网络处理器和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116402102A (zh) |
-
2023
- 2023-03-31 CN CN202310340766.3A patent/CN116402102A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102906726B (zh) | 协处理加速方法、装置及系统 | |
US8766996B2 (en) | Unified virtual addressed register file | |
US7937567B1 (en) | Methods for scalably exploiting parallelism in a parallel processing system | |
CN1983196B (zh) | 用于将执行线程分组的系统和方法 | |
US9378533B2 (en) | Central processing unit, GPU simulation method thereof, and computing system including the same | |
CN111488114B (zh) | 一种可重构的处理器架构及计算设备 | |
CN103885893A (zh) | 用于访问内容寻址存储器的技术 | |
US11940915B2 (en) | Cache allocation method and device, storage medium, and electronic device | |
CN114579929B (zh) | 加速器执行的方法和电子设备 | |
CN112799726A (zh) | 数据处理装置、方法及相关产品 | |
CN115880132A (zh) | 图形处理器、矩阵乘法任务处理方法、装置及存储介质 | |
CN103885903A (zh) | 用于经由纹理硬件实施存储器访问操作的技术 | |
CN112416433A (zh) | 一种数据处理装置、数据处理方法及相关产品 | |
US8151095B1 (en) | System and method for context migration across CPU threads | |
CN117271392A (zh) | 用于缓存一致性的可重构的缓存架构及方法 | |
JP2023078204A (ja) | 複数計算における高スループットのためのシステムおよび方法 | |
CN117271136A (zh) | 数据处理方法、装置、设备和存储介质 | |
US20220188380A1 (en) | Data processing method and apparatus applied to graphics processing unit, and electronic device | |
CN115860080A (zh) | 计算核、加速器、计算方法、装置、设备、介质及系统 | |
CN116402102A (zh) | 神经网络处理器和电子设备 | |
US11609785B2 (en) | Matrix data broadcast architecture | |
US10620958B1 (en) | Crossbar between clients and a cache | |
CN116483536B (zh) | 数据调度方法、计算芯片及电子设备 | |
CN117785480B (zh) | 处理器、归约计算方法及电子设备 | |
US20230195651A1 (en) | Host device performing near data processing function and accelerator system including the same |
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 |