CN108694441A - 一种网络处理器和网络运算方法 - Google Patents
一种网络处理器和网络运算方法 Download PDFInfo
- Publication number
- CN108694441A CN108694441A CN201710227493.6A CN201710227493A CN108694441A CN 108694441 A CN108694441 A CN 108694441A CN 201710227493 A CN201710227493 A CN 201710227493A CN 108694441 A CN108694441 A CN 108694441A
- Authority
- CN
- China
- Prior art keywords
- neural network
- core
- kernel
- private
- cache
- 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
- 238000000034 method Methods 0.000 title abstract description 10
- 238000012545 processing Methods 0.000 title abstract description 6
- 230000015654 memory Effects 0.000 claims abstract description 56
- 238000013528 artificial neural network Methods 0.000 claims description 128
- 230000001537 neural effect Effects 0.000 claims description 42
- 238000003062 neural network model Methods 0.000 claims description 25
- 238000004364 calculation method Methods 0.000 claims description 12
- 210000005036 nerve Anatomy 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 description 5
- 210000004218 nerve net Anatomy 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30083—Power or thermal control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种网络处理器和网络运算方法,采用存储器、高速缓存进行网络运算,存储器用于存储网络运算的数据和指令,高速缓存通过存储器总线与存储器连接,可以充分利用硬件实际的运算能力,降低成本,减少功耗开销,并充分利用网络的并行性,提高了网络运算的效率。
Description
技术领域
本公开涉及人工神经网络技术领域,更具体地涉及一种网络处理器和网络运算方法。
背景技术
人工神经网络(ANN)从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按照不同的连接方式组成不同的网络。目前,人工神经网络在很多领域都取得了很大的进展,在模式识别、智能机器人、自动控制、预测估计、生物、医学、经济等领域被广泛用以解决实际问题。
单核神经网络处理器作为一种新型专用处理器,采用专门的指令,充分利用神经网络运算的并行性来进行神经网络运算。但由于单核神经网络处理器需要兼容多数的神经网络模型,对于已有的不同类型的神经网络以及不同规模的神经网络运算都需要提供支持,这使得已有的单核神经网络处理器结构复杂、成本昂贵,且对于规模较小,结构简单的神经网络运算以及如脉冲神经网络(SNN)等简单神经网络模型的运算,也存在着浪费硬件资源和功耗开销过大的问题,同时,单核神经网络处理器没有针对神经网络运算过程中不同层之间的并行性进行加速,仍存在很大的优化空间。
由此,针对不同神经网络模型以及神经网络运算的规模,在充分利用神经网络运算过程中层内的并行性和不同层之间的并行性的条件下来完成神经网络运算和充分利用神经网络运算装置,减少功能部件冗余已经成为神经网络运算装置的改进方向。
发明内容
(一)要解决的技术问题
有鉴于此,本公开的主要目的在于提供一种网络处理器和网络运算方法,以克服上述现有技术的缺陷。
(二)技术方案
本公开提供了一种神经网络处理器,包括:存储器、高速缓存和异构内核;其中,所述存储器,用于存储神经网络运算的数据和指令;所述高速缓存,通过存储器总线与所述存储器连接;所述异构内核,通过高速缓存总线与所述高速缓存连接,通过高速缓存读取神经网络运算的数据和指令,完成神经网络运算,并将运算结果送回到高速缓存,控制高速缓存将运算结果写回到存储器。
优选地,所述异构内核包括:逻辑控制内核、通用内核和专用内核;所述专用内核执行神经网络运算或神经网络层运算,所述通用内核执行专用内核不支持的运算,所述逻辑控制内核根据神经网络运算的数据,决定由专用内核或通用内核执行神经网络运算或神经网络层运算。
优选地,所述高速缓存为多个高速缓存组成的非共享高速缓存;所述异构内核包括多个专用内核;逻辑控制内核、通用内核以及每一专用内核均通过高速缓存总线与一高速缓存对应连接;每一专用内核执行一种神经网络运算,通用内核执行超过专用内核所能支持的运算规模或者所有专用内核都不支持的神经网络运算。
优选地,所述高速缓存为共享高速缓存;所述异构内核包括多个通用内核和多个专用内核;每一专用内核执行一神经网络层运算,通用内核执行超过专用内核所能支持的运算规模或者所有专用内核都不支持的神经网络层运算。
本公开还提供了一种神经网络运算方法,利用上述任一种神经网络处理器进行神经网络运算,包括:异构内核中的逻辑控制内核通过高速缓存从存储器读取神经网络运算的数据和指令;以及异构内核中的逻辑控制内核根据数据中的神经网络模型的类型和参数,决定由专用内核和/或通用内核执行神经网络运算或神经网络层运算。
优选地,异构内核中的逻辑控制内核根据数据中的神经网络模型的类型和参数,决定由专用内核和/或通用内核执行神经网络运算或神经网络层运算包括:异构内核中的逻辑控制内核根据数据中的神经网络模型的类型和参数,判断是否存在符合条件的专用内核;如果专用内核m符合条件,则专用内核m作为目标内核,异构内核中的逻辑控制内核向目标内核发送信号,将神经网络运算的数据和指令对应的地址发送到目标内核;目标内核根据地址通过非共享高速缓存从存储器获取神经网络运算的数据和指令,进行神经网络运算,将运算结果通过非共享高速缓存输出到存储器,运算完成;如果不存在符合条件的专用内核,则异构内核中的逻辑控制内核向通用内核发送信号,将神经网络运算的数据和指令对应的地址发送到通用内核;通用内核根据地址通过非共享高速缓存从存储器获取神经网络运算的数据和指令,进行神经网络运算,将运算结果通过非共享高速缓存输出到存储器,运算完成。
优选地,所述符合条件的专用内核是指支持神经网络运算且能完成神经网络运算规模的专用内核。
优选地,异构内核中的逻辑控制内核根据数据中的神经网络模型的类型和参数,决定由专用内核和/或通用内核执行神经网络运算或神经网络层运算包括:异构内核中的逻辑控制内核对数据中的神经网络模型的类型和参数进行解析,对每一神经网络层分别判断是否存在符合条件的专用内核,并为每一神经网络层分配对应的通用内核或专用内核,得到与神经网络层对应的内核序列;异构内核中的逻辑控制内核将神经网络层运算的数据和指令对应的地址发送到神经网络层对应的专用内核或通用内核,并向神经网络层对应的专用内核或通用内核发送内核序列中下一个专用内核或通用内核的编号;神经网络层对应的专用内核和通用内核从地址读取神经网络层运算的数据和指令,进行神经网络层运算,将运算结果传送到共享高速缓存的指定地址;逻辑控制内核控制共享高速缓存将神经网络层的运算结果写回到存储器中,运算完成。
优选地,所述符合条件的专用内核是指支持神经网络层运算且能完成该神经网络层运算规模的专用内核。
优选地,所述神经网络运算包括脉冲神经网络运算;所述神经网络层运算包括神经网络层的卷积运算、全连接层、拼接运算、对位加/乘运算、Relu运算、池化运算和/或Batch Norm运算。
(三)有益效果
从上述技术方案可以看出,本公开的网络处理器和网络运算方法具有以下有益效果:
(1)采用异构内核进行神经网络运算,可以根据实际神经网络的类型和规模选用不同的内核进行运算,充分利用硬件实际的运算能力,降低成本,减少功耗开销。
(2)不同的内核进行不同层的运算,不同层之间并行运算,可以充分利用神经网络的并行性,提高了神经网络运算的效率。
附图说明
图1示意性示出了本公开第一实施例的异构多核神经网络处理器;
图2示意性示出了本公开第二实施例的异构多核神经网络处理器;
图3为本公开第三实施例的神经网络运算方法流程图;
图4为本公开第四实施例的神经网络运算方法流程图。
符号说明
11、21-存储器;12-非共享高速缓存;121-高速缓存;13、23-异构内核;22-共享高速缓存;131、231-逻辑控制内核;132、232-通用内核;133、233-专用内核。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
本公开第一实施例提出了一种异构多核神经网络处理器,参见图1,包括:存储器11、非共享高速缓存12和异构内核13。
存储器11,用于存储神经网络运算的数据和指令,数据包括偏置、权值、输入数据、输出数据、以及神经网络模型的类型和参数,指令包括神经网络运算对应的各种指令。存储器11中存储的数据和指令可以通过非共享高速缓存12传送到异构内核13中。
非共享高速缓存12,包括多个高速缓存121,每一高速缓存121均通过存储器总线与存储器11连接,通过高速缓存总线与异构内核13连接,实现异构内核13与非共享高速缓存12之间、非共享高速缓存12与存储器11之间的数据交换。当异构内核13所需的神经网络运算数据或指令未存储在非共享高速缓存12中时,非共享高速缓存12先通过存储器总线从存储器11中读取所需的数据或指令,然后将其通过高速缓存总线送入到异构内核13中。
异构内核13,包括一逻辑控制内核131、一通用内核132以及多个专用内核133,逻辑控制内核131、通用内核132以及每一专用内核133均通过高速缓存总线与一高速缓存121对应连接。
异构内核13用以从非共享高速缓存12中读取神经网络运算的指令和数据,完成神经网络运算,并将运算结果送回到非高速共享缓存12,控制非共享高速缓存12将运算结果写回到存储器11。
逻辑控制内核131从非共享高速缓存12中读入神经网络运算数据和指令,根据数据中的神经网络模型的类型和参数,判断是否存在支持该神经网络运算且能完成该神经网络运算规模的专用内核133,如果存在,则交由对应的专用内核133完成该神经网络运算,如果不存在,则交由通用内核132完成该神经网络运算。
每一专用内核133可以独立完成一种神经网络运算,例如脉冲神经网络(SNN)运算等相对简单的神经网络运算,并将运算结果写回到其对应连接的高速缓存121中,控制该高速缓存121将运算结果写回到存储器11。
通用内核132可以独立完成超过专用内核所能支持的运算规模的或者所有专用内核133都不支持的神经网络运算,并将运算结果写回到其对应连接的高速缓存121中,控制该高速缓存121将运算结果写回到存储器11。
本公开第二实施例提出了一种异构多核神经网络处理器,参见图2,包括:存储器21、共享高速缓存22和异构内核23。
存储器21,用于存储神经网络运算的数据和指令,数据包括偏置、权值、输入数据、输出数据、和神经网络模型的类型和参数,指令包括神经网络运算对应的各种指令。存储器中存储的数据和指令通过共享高速缓存22传送到异构内核23中。
共享高速缓存22,通过存储器总线与存储器21相连,通过共享高速缓存总线与异构内核23进行连接,实现异构内核23与共享高速缓存22之间、共享高速缓存22与存储器21之间的数据交换。
当异构内核23所需的神经网络运算数据或指令未存储在共享高速缓存22中时,共享高速缓存22先通过存储器总线从存储器21中读取所需的数据或指令,然后将其通过高速缓存总线送入到异构内核23中。
异构内核23,包括一逻辑控制内核231、多个通用内核232以及多个专用内核233,逻辑控制内核231、通用内核232以及专用内核233均通过高速缓存总线与共享高速缓存22连接。
异构内核23用以从共享高速缓存22中读取神经网络运算数据和指令,完成神经网络运算,并将运算结果送回到高速共享缓存22,控制共享高速缓存22将运算结果写回到存储器21。
另外当逻辑控制内核231与通用内核232之间、逻辑控制内核231与专用内核233之间、通用内核232之间以及专用内核233之间需要进行数据传输时,发送数据的内核可以将数据通过共享高速缓存总线先传输到共享高速缓存22,然后再将数据传输到接收数据的内核,而不需要经过存储器21。
对于神经网络运算来说,其神经网络模型一般包括多个神经网络层,每个神经网络层利用上一神经网络层的运算结果进行相应的运算,其运算结果输出给下一神经网络层,最后一个神经网络层的运算结果作为整个神经网络运算的结果。在本实施例异构多核神经网络处理器中,通用内核232和专用内核233均可以执行一个神经网络层的运算,利用逻辑控制内核231、通用内核232以及专用内核233共同完成神经网络运算,以下为了描述方便,将神经网络层简称为层。
其中,每一专用内核233可以独立执行一层运算,例如神经网络层的卷积运算、全连接层、拼接运算、对位加/乘运算、Relu运算、池化运算、Batch Norm运算等,且层的规模不能过大,该运算对层的神经元和突触的数量有限制,在层运算结束后,将运算结果写回到共享高速缓存22中。
通用内核232用于执行超过专用内核233所能支持的运算规模的或者所有专用内核都不支持的层运算,并将运算结果写回到共享高速缓存22中,控制共享高速缓存22将运算结果写回到存储器21。
进一步地,专用内核233和通用内核232将运算结果写回到存储器21后,会向执行下一层运算的专用内核或通用内核发送开始运算信号,通知执行下一层运算的专用内核或通用内核开始运算。
专用内核233和通用内核232在接收到执行上一层运算的专用内核或通用内核发送的开始运算信号,且当前无正在进行的层运算时开始运算,若当前正在进行层运算,则将当前层运算完成,并将运算结果写回到共享高速缓存22中后开始运算。
逻辑控制内核231从共享高速缓存22中读入神经网络运算数据,针对其中的神经网络模型的类型和参数,对神经网络模型的每个层进行解析,对于每一层,判断是否存在支持该层运算且能完成该层运算规模的专用内核233,如果存在,则将该层的运算交由对应的专用内核233运算,如果不存在,则将该层的运算交由通用内核232进行运算。逻辑控制内核231还设置通用内核232和专用内核233进行层运算所需的数据和指令的对应地址,通用内核232和专用内核233读取对应地址的数据和指令,执行层运算。
对于执行第一层运算的专用内核233和通用内核232,逻辑控制内核231会在运算开始时对该专用内核233或通用内核232发送开始运算信号,而在神经网络运算结束后,执行最后一层运算的专用内核233或通用内核232会对逻辑控制内核231发送开始运算信号,逻辑控制内核231在接收到开始运算信号后,控制共享高速缓存22将运算结果写回到存储器21中。
本公开第三实施例提供了一种利用第一实施例所述的异构多核神经网络处理器进行神经网络运算的方法,参见图3,步骤如下:
步骤S1:异构内核13中的逻辑控制内核131通过非共享高速缓存12从存储器11中读取神经网络运算的数据和指令;
步骤S2:异构内核13中的逻辑控制内核131根据数据中的神经网络模型的类型和参数,判断是否存在符合条件的专用内核,符合条件是指该专用内核支持该神经网络运算且能完成该神经网络运算规模。如果专用内核m符合条件,则专用内核m作为目标内核,并执行步骤S3,否则执行步骤S5,其中,m为专用内核编号,1≤m≤M,M为专用内核数量。
步骤S3:异构内核13中的逻辑控制内核131向目标内核发送信号,激活该目标内核,同时将所要进行的神经网络运算的数据和指令对应的地址发送到该目标内核。
步骤S4:目标内核根据获取的地址通过非共享高速缓存12从存储器11中获取神经网络运算的数据和指令,进行神经网络运算,然后将运算结果通过非共享高速缓存12输出到存储器11中,运算完成。
步骤S5:异构内核13中的逻辑控制内核131向通用内核132发送信号,激活通用内核132,同时将所要进行的神经网络运算的数据和指令对应的地址发送到通用内核132。
步骤S6:通用内核132根据获取的地址通过非共享高速缓存12从存储器11中获取神经网络运算的数据和指令,进行神经网络运算,然后将运算结果通过非共享高速缓存12输出到存储器中11,运算完成。
本公开第四实施例提供了一种利用第二实施例所述的异构多核神经网络处理器进行神经网络运算的方法,参见图4,步骤如下:
步骤S1:异构内核23中的逻辑控制内核231通过共享高速缓存22从存储器21中读取神经网络运算的数据和指令。
步骤S2:异构内核23中的逻辑控制内核231对数据中的神经网络模型的类型和参数进行解析,对于神经网络模型中第1到I层,分别判断是否存在符合条件的专用内核,I为神经网络模型的层数,符合条件是指该专用内核支持该层运算且能完成该层运算规模,并为每一层运算分配对应的通用内核或专用内核。
对于神经网络模型第i层运算,1≤i≤I,若专用内核m符合条件,则选择专用内核m执行神经网络模型第i层运算,m为专用内核编号,1≤m≤M,M为专用内核数量。如果没有专用内核符合条件,则选择通用内核M+n执行神经网络模型第i层运算,M+n为通用内核的编号,1≤n≤N,N为通用内核数量,其中专用内核233和通用内核232统一编号,最后得到与神经网络模型第1到I层运算对应的内核序列。即该内核序列共有I个元素,每一元素为一专用内核或通用内核,依序对应神经网络模型第1到I层运算。例如内核序列1a,2b,...,il,其中1、2、i表示神经网络层的编号,a、b、1表示专用内核或通用内核的编号。
步骤S3:异构内核23中的逻辑控制内核231将所要进行的层运算的数据和指令对应的地址发送到执行该层运算的专用内核或通用内核,并向执行该层运算的专用内核或通用内核发送内核序列中下一个专用内核或通用内核的编号,其中向执行最后一层运算的专用内核或通用内核发送的是逻辑控制内核的编号。
步骤S4:异构内核23中的逻辑控制内核231向内核序列中第一个内核发送开始运算信号。第一专用内核233或通用内核232在接收到开始运算信号之后,若当前存在未完成的运算,则继续完成运算,然后,继续从数据和指令对应的地址读取数据和指令,进行当前层运算。
步骤S5:第一专用内核233或通用内核232在完成当前层运算之后,将运算结果传送到共享高速缓存22的指定地址,同时,向内核序列中第二个内核发送开始运算信号。
步骤S6:以此类推,内核序列中每一内核接收到开始运算信号之后,若当前存在未完成的运算,则继续完成运算,然后,继续从数据和指令对应的地址读取数据和指令,进行其对应的层运算,将运算结果传送到共享高速缓存22的指定地址,同时,向内核序列中下一个内核发送开始运算信号。其中,内核序列最后一个内核是向逻辑控制内核231发送开始运算信号。
步骤S7:逻辑控制内核231接收到开始运算信号后,控制共享高速缓存22将各个神经网络层的运算结果写回到存储器21中,运算完成。
至此,已经结合附图对本公开实施例进行了详细描述。依据以上描述,本领域技术人员应当对本公开的一种异构多核神经网络处理器和神经网络运算方法有了清楚的认识。
需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件的定义并不仅限于实施例中提到的各种具体结构、形状,本领域普通技术人员可对其进行简单地更改或替换;本文可提供包含特定值的参数的示范,但这些参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应值;实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向,并非用来限制本公开的保护范围;上述实施例可基于设计及可靠度的考虑,彼此混合搭配使用或与其他实施例混合搭配使用,即不同实施例中的技术特征可以自由组合形成更多的实施例。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种神经网络处理器,其特征在于,包括:存储器、高速缓存和异构内核;其中,
所述存储器,用于存储神经网络运算的数据和指令;
所述高速缓存,通过存储器总线与所述存储器连接;
所述异构内核,通过高速缓存总线与所述高速缓存连接,通过高速缓存读取神经网络运算的数据和指令,完成神经网络运算,并将运算结果送回到高速缓存,控制高速缓存将运算结果写回到存储器。
2.如权利要求1所述的神经网络处理器,其特征在于,所述异构内核包括:逻辑控制内核、通用内核和专用内核;
所述专用内核执行神经网络运算或神经网络层运算,所述通用内核执行专用内核不支持的运算,所述逻辑控制内核根据神经网络运算的数据,决定由专用内核或通用内核执行神经网络运算或神经网络层运算。
3.如权利要求2所述的神经网络处理器,其特征在于,所述高速缓存为多个高速缓存组成的非共享高速缓存;
所述异构内核包括多个专用内核;
逻辑控制内核、通用内核以及每一专用内核均通过高速缓存总线与一高速缓存对应连接;
每一专用内核执行一种神经网络运算,通用内核执行超过专用内核所能支持的运算规模或者所有专用内核都不支持的神经网络运算。
4.如权利要求2所述的神经网络处理器,其特征在于,
所述高速缓存为共享高速缓存;
所述异构内核包括多个通用内核和多个专用内核;
每一专用内核执行一神经网络层运算,通用内核执行超过专用内核所能支持的运算规模或者所有专用内核都不支持的神经网络层运算。
5.一种神经网络运算方法,其特征在于,利用权利要求1至4中任一项所述的神经网络处理器进行神经网络运算,包括:
异构内核中的逻辑控制内核通过高速缓存从存储器读取神经网络运算的数据和指令;以及
异构内核中的逻辑控制内核根据数据中的神经网络模型的类型和参数,决定由专用内核和/或通用内核执行神经网络运算或神经网络层运算。
6.如权利要求5所述的神经网络运算方法,其特征在于,异构内核中的逻辑控制内核根据数据中的神经网络模型的类型和参数,决定由专用内核和/或通用内核执行神经网络运算或神经网络层运算包括:
异构内核中的逻辑控制内核根据数据中的神经网络模型的类型和参数,判断是否存在符合条件的专用内核;
如果专用内核m符合条件,则专用内核m作为目标内核,异构内核中的逻辑控制内核向目标内核发送信号,将神经网络运算的数据和指令对应的地址发送到目标内核;
目标内核根据地址通过非共享高速缓存从存储器获取神经网络运算的数据和指令,进行神经网络运算,将运算结果通过非共享高速缓存输出到存储器,运算完成;
如果不存在符合条件的专用内核,则异构内核中的逻辑控制内核向通用内核发送信号,将神经网络运算的数据和指令对应的地址发送到通用内核;
通用内核根据地址通过非共享高速缓存从存储器获取神经网络运算的数据和指令,进行神经网络运算,将运算结果通过非共享高速缓存输出到存储器,运算完成。
7.如权利要求6所述的神经网络运算方法,其特征在于,所述符合条件的专用内核是指支持神经网络运算且能完成神经网络运算规模的专用内核。
8.如权利要求5所述的神经网络运算方法,其特征在于,异构内核中的逻辑控制内核根据数据中的神经网络模型的类型和参数,决定由专用内核和/或通用内核执行神经网络运算或神经网络层运算包括:
异构内核中的逻辑控制内核对数据中的神经网络模型的类型和参数进行解析,对每一神经网络层分别判断是否存在符合条件的专用内核,并为每一神经网络层分配对应的通用内核或专用内核,得到与神经网络层对应的内核序列;
异构内核中的逻辑控制内核将神经网络层运算的数据和指令对应的地址发送到神经网络层对应的专用内核或通用内核,并向神经网络层对应的专用内核或通用内核发送内核序列中下一个专用内核或通用内核的编号;
神经网络层对应的专用内核和通用内核从地址读取神经网络层运算的数据和指令,进行神经网络层运算,将运算结果传送到共享高速缓存的指定地址;
逻辑控制内核控制共享高速缓存将神经网络层的运算结果写回到存储器中,运算完成。
9.如权利要求8所述的神经网络运算方法,其特征在于,所述符合条件的专用内核是指支持神经网络层运算且能完成该神经网络层运算规模的专用内核。
10.如权利要求5至9中任一项所述的神经网络运算方法,其特征在于,所述神经网络运算包括脉冲神经网络运算;所述神经网络层运算包括神经网络层的卷积运算、全连接层、拼接运算、对位加/乘运算、Relu运算、池化运算和/或Batch Norm运算。
Priority Applications (17)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710227493.6A CN108694441B (zh) | 2017-04-07 | 2017-04-07 | 一种网络处理器和网络运算方法 |
EP19199526.5A EP3633526A1 (en) | 2017-04-06 | 2018-04-04 | Computation device and method |
PCT/CN2018/081929 WO2018184570A1 (zh) | 2017-04-06 | 2018-04-04 | 运算装置和方法 |
CN201811413244.7A CN109344965A (zh) | 2017-04-06 | 2018-04-04 | 运算装置和方法 |
EP19199524.0A EP3627437B1 (en) | 2017-04-06 | 2018-04-04 | Data screening device and method |
CN201811423421.XA CN109359736A (zh) | 2017-04-06 | 2018-04-04 | 网络处理器和网络运算方法 |
CN201811423295.8A CN109409515B (zh) | 2017-04-06 | 2018-04-04 | 运算装置和方法 |
CN201880001242.9A CN109219821B (zh) | 2017-04-06 | 2018-04-04 | 运算装置和方法 |
EP18780474.5A EP3579150B1 (en) | 2017-04-06 | 2018-04-04 | Operation apparatus and method for a neural network |
EP19199521.6A EP3620992B1 (en) | 2017-04-06 | 2018-04-04 | Neural network processor and neural network computation method |
EP24168317.6A EP4372620A2 (en) | 2017-04-06 | 2018-04-04 | Neural network processor and neural network computation method |
EP19199528.1A EP3624018B1 (en) | 2017-04-06 | 2018-04-04 | Neural network computation device and method |
US16/283,711 US10896369B2 (en) | 2017-04-06 | 2019-02-22 | Power conversion in neural networks |
US16/520,041 US11551067B2 (en) | 2017-04-06 | 2019-07-23 | Neural network processor and neural network computation method |
US16/520,082 US11010338B2 (en) | 2017-04-06 | 2019-07-23 | Data screening device and method |
US16/520,615 US10671913B2 (en) | 2017-04-06 | 2019-07-24 | Computation device and method |
US16/520,654 US11049002B2 (en) | 2017-04-06 | 2019-07-24 | Neural network computation device and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710227493.6A CN108694441B (zh) | 2017-04-07 | 2017-04-07 | 一种网络处理器和网络运算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108694441A true CN108694441A (zh) | 2018-10-23 |
CN108694441B CN108694441B (zh) | 2022-08-09 |
Family
ID=63843176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710227493.6A Active CN108694441B (zh) | 2017-04-06 | 2017-04-07 | 一种网络处理器和网络运算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108694441B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109688395A (zh) * | 2018-12-29 | 2019-04-26 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN109697500A (zh) * | 2018-12-29 | 2019-04-30 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN109711367A (zh) * | 2018-12-29 | 2019-05-03 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN109740746A (zh) * | 2018-12-29 | 2019-05-10 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN109754072A (zh) * | 2018-12-29 | 2019-05-14 | 北京中科寒武纪科技有限公司 | 网络离线模型的处理方法、人工智能处理装置及相关产品 |
CN111930668A (zh) * | 2020-08-03 | 2020-11-13 | 中国科学院计算技术研究所 | 运算装置、方法、多核智能处理器及多核异构智能处理器 |
WO2022082463A1 (zh) * | 2020-10-20 | 2022-04-28 | 华为技术有限公司 | 通信方法、装置及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1242848A (zh) * | 1996-11-20 | 2000-01-26 | 罗伯特·J·詹恩阿罗尼 | 多内核神经网络并行学习、监视和预报系统 |
US20110087943A1 (en) * | 2009-10-12 | 2011-04-14 | Empire Technology Development Llc | Reliable communications in on-chip networks |
CN102445980A (zh) * | 2011-09-19 | 2012-05-09 | 浪潮电子信息产业股份有限公司 | 一种基于bp神经网络的节能控制系统 |
CN103744644A (zh) * | 2014-01-13 | 2014-04-23 | 上海交通大学 | 采用四核结构搭建的四核处理器系统及数据交换方法 |
CN104636800A (zh) * | 2013-11-06 | 2015-05-20 | 上海思控电气设备有限公司 | 基于最小二乘加权的冷冻站系统神经网络优化单元及其方法 |
WO2016099779A1 (en) * | 2014-12-19 | 2016-06-23 | Intel Corporation | Method and apparatus for distributed and cooperative computation in artificial neural networks |
CN105930902A (zh) * | 2016-04-18 | 2016-09-07 | 中国科学院计算技术研究所 | 一种神经网络的处理方法、系统 |
CN106250981A (zh) * | 2015-06-10 | 2016-12-21 | 三星电子株式会社 | 减少存储器访问和网络内带宽消耗的脉冲神经网络 |
CN106326985A (zh) * | 2016-08-18 | 2017-01-11 | 北京旷视科技有限公司 | 神经网络训练方法和装置及数据处理方法和装置 |
-
2017
- 2017-04-07 CN CN201710227493.6A patent/CN108694441B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1242848A (zh) * | 1996-11-20 | 2000-01-26 | 罗伯特·J·詹恩阿罗尼 | 多内核神经网络并行学习、监视和预报系统 |
US20110087943A1 (en) * | 2009-10-12 | 2011-04-14 | Empire Technology Development Llc | Reliable communications in on-chip networks |
CN102445980A (zh) * | 2011-09-19 | 2012-05-09 | 浪潮电子信息产业股份有限公司 | 一种基于bp神经网络的节能控制系统 |
CN104636800A (zh) * | 2013-11-06 | 2015-05-20 | 上海思控电气设备有限公司 | 基于最小二乘加权的冷冻站系统神经网络优化单元及其方法 |
CN103744644A (zh) * | 2014-01-13 | 2014-04-23 | 上海交通大学 | 采用四核结构搭建的四核处理器系统及数据交换方法 |
WO2016099779A1 (en) * | 2014-12-19 | 2016-06-23 | Intel Corporation | Method and apparatus for distributed and cooperative computation in artificial neural networks |
CN106250981A (zh) * | 2015-06-10 | 2016-12-21 | 三星电子株式会社 | 减少存储器访问和网络内带宽消耗的脉冲神经网络 |
CN105930902A (zh) * | 2016-04-18 | 2016-09-07 | 中国科学院计算技术研究所 | 一种神经网络的处理方法、系统 |
CN106326985A (zh) * | 2016-08-18 | 2017-01-11 | 北京旷视科技有限公司 | 神经网络训练方法和装置及数据处理方法和装置 |
Non-Patent Citations (2)
Title |
---|
安全等: "脉冲响应神经网络的构建", 《信息与控制》 * |
张小俊等: "机器人智能化研究的关键技术与发展展望", 《机械设计》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111193916A (zh) * | 2018-12-29 | 2020-05-22 | 中科寒武纪科技股份有限公司 | 运算方法、装置及相关产品 |
CN111694617A (zh) * | 2018-12-29 | 2020-09-22 | 中科寒武纪科技股份有限公司 | 网络离线模型的处理方法、人工智能处理装置及相关产品 |
CN109711367A (zh) * | 2018-12-29 | 2019-05-03 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN109740746A (zh) * | 2018-12-29 | 2019-05-10 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN109754072A (zh) * | 2018-12-29 | 2019-05-14 | 北京中科寒武纪科技有限公司 | 网络离线模型的处理方法、人工智能处理装置及相关产品 |
CN109740746B (zh) * | 2018-12-29 | 2020-01-31 | 中科寒武纪科技股份有限公司 | 运算方法、装置及相关产品 |
CN109697500A (zh) * | 2018-12-29 | 2019-04-30 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN109754072B (zh) * | 2018-12-29 | 2020-06-23 | 中科寒武纪科技股份有限公司 | 网络离线模型的处理方法、人工智能处理装置及相关产品 |
CN109688395A (zh) * | 2018-12-29 | 2019-04-26 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
US11699073B2 (en) | 2018-12-29 | 2023-07-11 | Cambricon Technologies Corporation Limited | Network off-line model processing method, artificial intelligence processing device and related products |
CN111193916B (zh) * | 2018-12-29 | 2022-03-29 | 中科寒武纪科技股份有限公司 | 运算方法 |
CN111694617B (zh) * | 2018-12-29 | 2023-05-02 | 中科寒武纪科技股份有限公司 | 网络离线模型的处理方法、人工智能处理装置及相关产品 |
CN111930668A (zh) * | 2020-08-03 | 2020-11-13 | 中国科学院计算技术研究所 | 运算装置、方法、多核智能处理器及多核异构智能处理器 |
CN111930668B (zh) * | 2020-08-03 | 2023-09-26 | 中国科学院计算技术研究所 | 运算装置、方法、多核智能处理器及多核异构智能处理器 |
WO2022082463A1 (zh) * | 2020-10-20 | 2022-04-28 | 华为技术有限公司 | 通信方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108694441B (zh) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108694441A (zh) | 一种网络处理器和网络运算方法 | |
CN107169563B (zh) | 应用于二值权重卷积网络的处理系统及方法 | |
CN105184366B (zh) | 一种时分复用的通用神经网络处理器 | |
CN106951395A (zh) | 面向压缩卷积神经网络的并行卷积运算方法及装置 | |
CN109359736A (zh) | 网络处理器和网络运算方法 | |
KR950008840B1 (ko) | 뉴로 칩(neuro chip) | |
CN109117184A (zh) | 人工智能处理器及使用处理器执行平面旋转指令的方法 | |
CN108416436A (zh) | 使用多核心处理模块进行神经网络划分的方法及其系统 | |
CN106991478A (zh) | 用于执行人工神经网络反向训练的装置和方法 | |
CN109376843A (zh) | 基于fpga的脑电信号快速分类方法、实现方法及装置 | |
CN107341541A (zh) | 一种用于执行全连接层神经网络训练的装置和方法 | |
CN105894087A (zh) | 用于神经网络中训练参数集的系统和方法 | |
CN106201651A (zh) | 神经形态芯片的模拟器 | |
CN104035751A (zh) | 基于多图形处理器的数据并行处理方法及装置 | |
CN105718996B (zh) | 细胞阵列计算系统以及其中的通信方法 | |
CN108196958A (zh) | 资源调度分配方法、计算机系统及超融合架构系统 | |
CN108509270A (zh) | 一种国产申威26010众核处理器上K-means算法的高性能并行实现方法 | |
CN104145281A (zh) | 神经网络计算装置和系统及其方法 | |
CN106557442A (zh) | 一种芯片系统 | |
CN108229687A (zh) | 数据处理方法、数据处理装置及电子设备 | |
CN107315563A (zh) | 一种用于执行向量比较运算的装置和方法 | |
CN109272110A (zh) | 基于光子神经网络芯片的光电融合智能信号处理系统 | |
CN107766935A (zh) | 多层人造神经网络 | |
CN108205704A (zh) | 一种神经网络芯片 | |
CN106909529A (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 |