CN111325321A - 基于多神经网络融合的类脑计算系统及指令集的执行方法 - Google Patents
基于多神经网络融合的类脑计算系统及指令集的执行方法 Download PDFInfo
- Publication number
- CN111325321A CN111325321A CN202010091024.8A CN202010091024A CN111325321A CN 111325321 A CN111325321 A CN 111325321A CN 202010091024 A CN202010091024 A CN 202010091024A CN 111325321 A CN111325321 A CN 111325321A
- Authority
- CN
- China
- Prior art keywords
- instruction
- data
- brain
- computing
- computing system
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000004927 fusion Effects 0.000 title claims abstract description 37
- 239000000872 buffer Substances 0.000 claims description 73
- 210000002569 neuron Anatomy 0.000 claims description 67
- 238000004364 calculation method Methods 0.000 claims description 44
- 238000013507 mapping Methods 0.000 claims description 33
- 239000011159 matrix material Substances 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 25
- 210000004556 brain Anatomy 0.000 claims description 20
- 210000000225 synapse Anatomy 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 10
- 210000005056 cell body Anatomy 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims description 7
- 239000002245 particle Substances 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 7
- 210000003050 axon Anatomy 0.000 claims description 6
- 210000001787 dendrite Anatomy 0.000 claims description 6
- 230000008878 coupling Effects 0.000 claims description 4
- 238000010168 coupling process Methods 0.000 claims description 4
- 238000005859 coupling reaction Methods 0.000 claims description 4
- 230000003993 interaction Effects 0.000 claims description 3
- 238000009825 accumulation Methods 0.000 claims description 2
- 238000012421 spiking Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training 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/045—Combinations of 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
-
- 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
Abstract
本发明属于类脑计算领域,具体涉及一种基于多神经网络融合的类脑计算系统及指令集的执行方法,旨在解决现有类脑计算系统无法实现深度神经网络和脉冲神经网络并行融合计算的问题。本系统用于对深度神经网络、脉冲神经网络进行并行运算,其包括局部紧耦合计算簇、PCIE接口、内部数据总线;各局部紧耦合计算簇之间通过内部数据总线电性连接,用于对深度神经网络或脉冲神经网络进行运算,由N×N个神经元引擎NE组成,各NE共用一个神经元缓冲区;NE用于对神经元模型数据进行矩阵运算和向量运行算;PCIE接口与计算机主板PCIE插槽匹配,用于类脑计算系统与外部设备的数据交互。本发明实现了深度神经网络和脉冲神经网络的并行运算。
Description
技术领域
本发明属于类脑计算技术领域,具体涉及一种基于多神经网络融合的类脑计算系统及指令集的执行方法。
背景技术
人工智能算法的演进加速了对芯片高计算能力、低功耗的需求,不断涌出针对人工智能的新架构、新器件和新的解决方案。在这其中,出现了一类类脑芯片受到了广泛关注,例如IBM于2014年发布的百万级神经元的TrueNorth芯片、Intel于2017年发布的13.1万个神经元的Loihi芯片、曼切斯特大学的SpiNNaker和海德堡大学的BrainScaleS。但这类芯片基本不具有在线学习能力,在人工智能方面还没有展现出与深度学习相比拟的性能及应用场景。
同时,随着神经网络规模不断变大,种类不断变多,针对神经网络运算的加速方式和加速软硬件不断增加。随之产生众多支撑神经网络运算加速的指令集架构,如寒武纪神经网络处理器Cambricon的指令集,其采用RISC设计思想,可以有效简化指令译码器负担,更适合采用标准处理器流水线结构,但其编写代码量大,对程序编译器要求高。Google公司的张量处理器Tensor Processing Units(TPU)采用CISC类型指令,每条指令可以执行连续的多个操作,极大减少指令数量和主控处理器的调度需求,提升人工神经网络处理器的执行性能。而且受脑启发构建的脉冲神经网络的生物特性逐渐受到关注,对当前人工神经网络的构建和发展具有重要意义,但当前的多种神经网络融合和运算的类脑计算还不完整。
因此,需要有一种高能效比、高计算能力的、动态重构的类脑芯片及多神经网络融合的类脑计算指令集,不仅能够支持SNN,还能够支持深度神经网络,如CNN、RNN、LSTM等模型,进而支持现在以及部分未来出现各种算法,从而获得更高的类脑计算性能。
发明内容
为了解决现有技术中的上述问题,即为了解决现有类脑计算系统无法实现深度神经网络和脉冲神经网络并行融合计算的问题,本发明第一方面,提出了一种基于多神经网络融合的类脑计算系统,该系统用于对深度神经网络、脉冲神经网络进行并行运算,其包括局部紧耦合计算簇、PCIE接口、内部数据总线;各局部紧耦合计算簇之间通过所述内部数据总线电性连接;
所述局部紧耦合计算簇用于对深度神经网络或脉冲神经网络进行运算,其由N×N个神经元引擎NE组成,各NE共用一个神经元缓冲区;
NE包括突触计算阵列SCA、胞体计算行SCR、树突与轴突DAA;
DAA通过所述内部数据总线与所述神经元缓冲区连接,用于对神经元模型数据的输入输出及缓存;
SCA用于读取DAA缓存的神经元模型数据,进行矩阵运算;
SCR用于对SCA输出的数据进行向量运算,并发送所述神经元缓冲区;
所述PCIE接口与计算机主板PCIE插槽匹配,用于所述类脑计算系统与外部设备的数据交互。
在一些优选的实施方式中,所述神经元缓冲区由DDR控制器及外置DDR存储颗粒组成。
在一些优选的实施方式中,所述树突与轴突包括第一缓冲区、第二缓冲区、第三缓冲区;
所述第一缓冲区、所述第二缓冲区与SCA连接;
所述第一缓冲区,用于存储压缩编码后的稀疏化权重数据;
所述第二缓冲区,用于存储输入层及隐层中间计算的神经元模型数据。
在一些优选的实施方式中,所述神经元引擎还包括标量计算单元、DMA、第三缓冲区、调度状态机FSM;
DMA用于通过内部数据总线将外置DDR存储颗粒的权重数据、待处理的神经元模型数据、网络映射指令分别传输至所述第一缓冲区、所述第二缓存区、所述第三缓冲区;
所述标量计算单元与所述神经元缓冲区连接,用于读取神经元模型数据进行算数运算和/或关系运算和/或跳转运算;
所述第三缓冲区用于缓存网络映射指令;
FSM与所述第三缓冲区连接,用于读取网络映射指令进行译码,并根据译码结果将将网络映射指令发送至相应的运算单元执行相应的运算操作;所述相应的运算单元包括SCA、SCR、标量计算单元。
在一些优选的实施方式中,所述突触计算阵列由MxM个积分计算单元ICU组成,每个ICU由乘累加器、寄存器、结果缓冲区组成;所述结果缓冲区用于存储ICU计算的结果。
在一些优选的实施方式中,所述突触计算阵列在进行运算时,脉冲神经网络的列通路采用全局广播、列广播的计算模式,行通路采用行广播的计算模式;深度神经网络的列通路采用全局广播、列广播、脉动阵列的计算模式,行通路采用行广播、点对点传输的计算模式。
在一些优选的实施方式中,所述胞体计算行由累加单元ACC、M个交叉计算单元CCU组成;CCU用于通过CORDIC算法和微分方程求解方法对神经元模型数据进行计算;ACC用于累加CCU的计算结果。
本发明的第二方面,提出了一种基于多神经网络融合的类脑计算系统指令集的执行方法,基于上述的基于多神经网络融合的类脑计算系统,该系统包括;
步骤S100,获取待执行的网络映射指令;所述网络映射指令由前缀码字段、操作码字段、差异性辅助字段构成;所述差异性辅助字段包括目的地址、源地址、所运算数据的长度、立即数;
步骤S200,基于所述网络映射指令其构成的各字段,分别通过所述FSM的译码电路获取指令类型、指令功能及寻址方式,作为译码结果;
步骤S300,基于所述译码结果,将所述网络映射指令发送至对应的运算单元执行操作,执行完成后,重复执行步骤S100-步骤S200。
在一些优选的实施方式中,所述指令类型为类脑计算系统指令集中矩阵运算指令、向量运算指令、标量运算指令、数据传输指令的任一种。
在一些优选的实施方式中,所述类脑计算系统指令集采用CISC结构。
在一些优选的实施方式中,所述矩阵运算指令包括:矩阵乘矩阵指令、矩阵乘向量指令、矩阵相加指令、矩阵相减指令、卷积操作指令。
在一些优选的实施方式中,所述向量运算指令包括:Sigmoid函数运算指令、Tanh函数运算指令、指数函数运算指令、对数函数运算指令、倒数运算指令、横向求和指令、Hodgkin-Huxley神经元模型指令、Izhikevich神经元模型指令、LIF神经元模型指令。
在一些优选的实施方式中,所述数据传输指令包括:数据加载指令和数据存储指令。
在一些优选的实施方式中,所述数据加载指令其源存储器包括:外部存储器、局部权重存储器、脑区内共享神经元数据存储器和相邻脑区数据存储器;所述数据加载指令其目的存储器包括:局部权重存储器和权重、数据分发缓存队列。
在一些优选的实施方式中,所述数据存储指令其源存储器包括:局部权重存储器和脑区共享数据存储器;所述数据存储指令其目的存储器包括:外部存储器、局部权重缓存队列和脑区共享数据存储队列。
在一些优选的实施方式中,所述标量计算指令包括:加法指令、减法指令、乘法指令、除法指令、比较指令、跳转指令
本发明的第三方面,提出了一种存储装置,其中存储有多条程序,所述程序应用由处理器加载并执行以实现上述的基于多神经网络融合的类脑计算系统指令集的执行方法。
本发明的第四方面,提出了一种处理装置,包括处理器、存储装置;处理器,适用于执行各条程序;存储装置,适用于存储多条程序;所述程序适用于由处理器加载并执行以实现上述的基于多神经网络融合的类脑计算系统指令集的执行方法。
本发明的有益效果:
本发明实现了深度神经网络和脉冲神经网络的并行运算。本发明中的多神经网络融合的类脑计算系统由多个神经元引擎组成,每个神经元引擎都可以独立完成一个完整的脑区功能和算法模型。每相邻NxN个神经元引擎组成局部紧耦合计算簇,支持深度神经网络或脉冲神经网络的运算,簇内的数据共享,降低信息传递带来的功耗和带宽开销,从而能实现一种高能效比、高计算能力、动态可重构的类脑计算系统。
本发明优化了突触计算和胞体计算,支持基于反向传播和梯度下降的训练算法,实现神经网络的在线学习,并可以基于PCIE组成更大规模的神经网络。
同时,本发明为多神经网络融合的类脑计算系统构建了一套CISC结构的指令集,该架构灵活适配各种神经网络模型和算法,实现类脑计算系统的在线学习和智能演进,进而支持现在以及部分未来出现的各种算法,获得更高的类脑计算性能。
附图说明
通过阅读参照以下附图所做的对非限制性实施例所做的详细描述,本申请的其他特征、目的和优点将会变得更明显。
图1是本发明一种实施例的基于多神经网络融合的类脑计算系统的框架示意图;
图2是本发明一种实施例的神经元引擎NE的框架示意图;
图3是本发明一种实施例的积分计算单元ICU的框架示意图;
图4是本发明一种实施例的交叉计算单元CCU的框架示意图;
图5是本发明一种实施例的基于多神经网络融合的类脑计算系统指令集的执行方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明的一种基于多神经网络融合的类脑计算系统,该系统用于对深度神经网络、脉冲神经网络进行并行运算,其包括局部紧耦合计算簇、PCIE接口、内部数据总线;各局部紧耦合计算簇之间通过所述内部数据总线电性连接;
所述局部紧耦合计算簇用于对深度神经网络或脉冲神经网络进行运算,其由N×N个神经元引擎NE组成,各NE共用一个神经元缓冲区;
NE包括突触计算阵列SCA、胞体计算行SCR、树突与轴突DAA;
DAA通过所述内部数据总线与所述神经元缓冲区连接,用于对神经元模型数据的输入输出及缓存;
SCA用于读取DAA缓存的神经元模型数据,进行矩阵运算;
SCR用于对SCA输出的数据进行向量运算,并发送所述神经元缓冲区;
所述PCIE接口与计算机主板PCIE插槽匹配,用于所述类脑计算系统与外部设备的数据交互。
为了更清晰地对本发明基于多神经网络融合的类脑计算系统进行说明,下面结合附图对本发明系统一种实施例中各模块进行展开详述。
本发明的一种基于多神经网络融合的类脑计算系统,该系统用于对深度神经网络、脉冲神经网络进行并行运算,其包括局部紧耦合计算簇、PCIE接口、内部数据总线;各局部紧耦合计算簇之间通过所述内部数据总线电性连接;如图1所示,其中PCIE即PCIE接口,外置DDR存储颗粒在下述过程中描述。
所述局部紧耦合计算簇用于对深度神经网络或脉冲神经网络进行运算,其由N×N个神经元引擎NE组成,各NE共用一个神经元缓冲区。
在本实施例中,N优选为4,即类脑计算系统由4×4个NE(Neuromorphic Engine)组成的神经元引擎(NE)阵列提供必要的计算能力,强大的计算能力可以使得每个NE独立完成一个完整的脑区功能或算法模型。芯片又划分为4个局部紧耦合的计算簇,每个计算簇由相邻的2×2NE组成,支持更复杂的脑区功能,使得类脑计算系统可以同时支持SNN和DNN。计算簇内共用一个DDR控制器及外置DDR存储颗粒,本发明优选为64bit的DDR4-3200内存,共采用4组,可提供102.4GBps的数据带宽,满足高数据吞吐的需求,使得神经元缓冲区完全共享,进一步加强脑区内部的数据共享以及脑区模型的独立性,降低信息传递带来的功耗和带宽开销。另外,类脑计算系统(也称为类脑芯片)上配置20MB的SRAM,作为本地的大容量数据缓冲区。
其中,PCIE接口是芯片和外部交互信息的唯一通道,芯片的重构信息、网络模型、感知信息及权重参数通过PCIE接口输入,其中权重参数也可以通过自主在线学习的方式获得。
神经元引擎NE,如图2所示,主要由突触计算阵列(SCA:Synapse Compute Array)、胞体计算行(SCR:Soma Compute Row)、树突与轴突(DAA:Dendrite And Axon)组成,还包括标量计算单元、DMA、第三缓冲区、调度状态机FSM。
DAA提供数据输入输出和缓存,包括第一缓冲区、第二缓冲区。
左侧为第一缓冲区,即权重缓冲区,用于存储压缩编码后的稀疏化权重数据;
上侧为第二缓冲区,即数据缓冲区,通过空间复用方式提供单输入层及多隐层数据信息,即输入层及隐层中间计算的神经元模型数据;
在本实施例中,第一缓冲区、第二缓冲区大小分别优选为1MB、256KB。由于DAA与SCA阵列规模相匹配,上侧设置了16个1K×16bit的数据缓冲区,左侧设置了16个1K×256bit的权重缓冲区,这2个缓冲区提供了阵列计算时所需的数据。缓冲区的数据从内部SRAM获得,在进入缓冲区之前会进行原始数据的初步处理,以匹配SCA阵列的操作模式。权重缓冲区SRAM中存放的是进行了压缩编码的稀疏化权重数据,解压缩后送入权重缓冲区;神经元缓冲区中存放神经元模型数据,将根据不同的网络模型进行变换后送入数据缓冲区。
突触计算阵列SCA由MxM个积分计算单元组成(ICU:Integral CalculationUnit),本实施例中优选为16,每个ICU有一个乘累加器进行突触计算,累加器及寄存器进行积分计算并保存结果,结构如图3所示。对于任意一个ICU,都对应一个独立的神经元,持续进行MAC操作直至完成该神经元所有突触的积分计算。SCA每个cycle(周期)完成256个突触计算,对应256个神经元分别完成一次突触计算。利用神经网络结构以及矩阵运算的特点,通过权值及输入数据的复用减少存储器的访问,SCA配置为对矩阵乘矩阵及矩阵乘向量的优化计算模式:列通路上采用了全局广播(矩阵乘向量)、列广播(矩阵乘矩阵)和脉动阵列(DNN),即脉冲神经网络的列通路采用全局广播、列广播的计算模式,深度神经网络的列通路采用全局广播、列广播、脉动阵列的计算模式。其中,全局广播使得所有的ICU都接收到相同的输入层数据,将输入数据访问次数降低到1/256;列广播模式使得每列的ICU接收到相同的输入层数据,将输入数据访问次数降低到1/16;脉动模式使得数据按行逐次传输,主要用于DNN。行通路采用了行广播(矩阵乘矩阵)和点对点传输(矩阵乘向量、DNN),即脉冲神经网络的行通路采用行广播的计算模式,深度神经网络的行通路采用行广播、点对点传输的计算模式。其中,行广播模式使得每行的ICU接收到相同的权重数据,将权重的访问次数降低到1/16,点对点传输可使得256个ICU都接收到不同的权重数据。为了进一步提高效率,ICU中设置一个结果缓冲区,计算结束后会将结果存入该缓冲区等待读出,每一列的数据将以串行移位的模式读出,以节省芯片的布线资源。在读出数据的同时,ICU可以开启新的计算,考虑到DNN的加速计算模式,数据读出会影响后续的计算(3×3的kernel会阻塞计算),需要提高输出带宽或减少数据。因此,本发明采用池化操作减少数据,相邻两列进行池化,奇数行的池化结果数据在奇数列输出,偶数行的数据在偶数列输出(只得到两列数据之间的池化操作,需要增加一个两行之间的池化操作)。即图3中的MUX&POOL(多路复用与池化)。
SCR与SCA并行运算,用于对突触的积分结果进行进一步的处理,完成一个完整的神经元模型计算。SCR配置16个交叉计算单元(CCU:Cross Compute Unit)和一个累加单元(ACC),CCU结构如图4所示。CCU工作于循环迭代模式,通过CORDIC算法,实现sigmoid、tanh、指数、对数、除法等函数,以及微分方程求解HH、Izhikevich等神经元模型;利用查找表方式实现CORDIC算法的旋转角度值,如图4中旋转表,由符号位sign确定每个循环中的旋转方向。ACC用于横向累加神经元的输出,该累加结果可用于进行向量归一化、范数等计算。
标量计算主要处理简单、少量的数据或无需并行计算的数据,监管脑区模型计算流程,与其他模块独立运行。即用于读取神经元模型数据进行算数运算和/或关系运算和/或跳转运算。
DMA用于通过内部数据总线将外置DDR存储颗粒的权重数据、待处理的神经元模型数据、网络映射指令分别传输至所述第一缓冲区、所述第二缓存区、所述第三缓冲区。
第三缓冲区,用于缓存网络映射指令。
FSM用于读取网络映射指令进行译码,并根据译码结果将将网络映射指令发送至相应的运算单元执行相应的运算,实现指令分析、运算部分执行控制、与外部存储通信控制等网络映射操作;所述相应的运算单元包括SCA、SCR、标量计算单元。
需要说明的是,上述实施例提供的基于多神经网络融合的类脑计算系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。
本发明第二实施例的一种基于多神经网络融合的类脑计算系统指令集的执行方法,基于上述的基于多神经网络融合的类脑计算系统,如图5所示,包括以下步骤:
步骤S100,获取待执行的网络映射指令;所述网络映射指令由前缀码字段、操作码字段、差异性辅助字段构成;所述差异性辅助字段包括目的地址、源地址、所运算数据的长度、立即数;
步骤S200,基于所述网络映射指令其构成的各字段,分别通过所述FSM的译码电路获取指令类型、指令功能及寻址方式,作为译码结果;
步骤S300,基于所述译码结果,将所述网络映射指令发送至对应的运算单元执行操作,执行完成后,重复执行步骤S100-步骤S200。
为了更清晰地对本发明基于多神经网络融合的类脑计算系统指令集的执行方法进行说明,下面结合附图对本发明方法一种实施例中各步骤进行展开详述。
步骤S100,获取待执行的网络映射指令;所述网络映射指令由前缀码字段、操作码字段、差异性辅助字段构成;所述差异性辅助字段包括目的地址、源地址、所运算数据的长度、立即数。
对于一个多神经网络融合计算的类脑计算系统,需要有相应的控制方法来重构数据流通路、同步运算过程、调度计算流程,控制方法即为指令。本实施例中,指令即网络映射指令,由前缀码字段、操作码字段、差异性辅助字段构成;差异性辅助字段包括目的地址、源地址、所运算数据的长度、立即数。网络映射指令由调度状态机进行读取、译码和分配。
步骤S200,基于所述网络映射指令其构成的各字段,分别通过所述FSM的译码电路获取指令类型、指令功能及寻址方式,作为译码结果。
本实施例中,根据网络映射指令前缀码字段、操作码字段、差异性辅助字段,分别通过调度状态机FSM的译码电路进行译码,获取指令类型、指令功能及寻址方式。本实施例中,前缀码字段优选设置为3-bit,操作码字段设置为4-bit,差异性辅助字段长度不固定,根据实际需要而设定。因此差异性辅助字段在译码前先确定其长度。
其中,指令类型为类脑计算系统指令集中矩阵运算指令、向量运算指令、标量运算指令、数据传输指令的任一种。本发明中,指令集采用CISC结构,共4类22条指令。
矩阵运算指令包括:矩阵乘矩阵指令、矩阵乘向量指令、矩阵相加指令、矩阵相减指令、卷积操作指令。
向量运算指令包括:Sigmoid函数运算指令、Tanh函数运算指令、指数函数运算指令、对数函数运算指令、倒数运算指令、横向求和指令、Hodgkin-Huxley神经元模型指令、Izhikevich神经元模型指令、LIF神经元模型指令。
数据传输指令包括:数据加载指令和数据存储指令;
加载指令的源存储器包括:外部存储器、局部权重存储器、脑区内共享神经元数据存储器和相邻脑区数据存储器;加载指令的目的存储器包括:局部权重存储器和权重、数据分发缓存队列。
存储指令的源存储器包括:局部权重存储器和脑区共享数据存储器;存储指令的目的存储器包括:外部存储器、局部权重缓存队列和脑区共享数据存储队列。
标量计算指令包括:加法指令、减法指令、乘法指令、除法指令、比较指令、跳转指令。
各指令具体如表1所示:
表1
矩阵运算在突触计算阵列(SCA:Synapse Compute Array)中完成,指令设置好输入输出信息后,自动从SRAM中加载数据到缓存队列,启动SCA的计算,并自动维护计算流程。
向量运算不能单独执行,必须与矩阵运算并行执行,形式如:MMV||SIGMOID,表示一组激活函数为sigmoid的神经元计算。向量运算可以通过组合多条基本运算实现复杂的激活函数,如sigmoid由指数运算和倒数运算来实现。
数据传输实现SRAM与DDR、相邻2×2脑区共享神经元缓冲区的访问,以及与其余脑区的数据的接收与发放。
步骤S300,基于所述译码结果,将所述网络映射指令发送至对应的运算单元执行操作,执行完成后,重复执行步骤S100-步骤S200。
在本实施例中,根据FSM的译码结果,将网络映射指令发送至相应的运算单元,例如SCA、SCR等,执行相应的操作。执行完成后继续读取新的指令。
本发明第三实施例的一种存储装置,其中存储有多条程序,所述程序适用于由处理器加载并实现上述的基于多神经网络融合的类脑计算系统指令集的执行方法。
本发明第四实施例的一种处理装置,包括处理器、存储装置;处理器,适于执行各条程序;存储装置,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述的基于多神经网络融合的类脑计算系统指令集的执行方法。
所述技术领域的技术人员可以清楚的了解到,未描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实例中的对应过程,在此不再赘述。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的模块、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件模块、方法步骤对应的程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。
术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (18)
1.一种基于多神经网络融合的类脑计算系统,其特征在于,该系统用于对深度神经网络、脉冲神经网络进行并行运算,其包括局部紧耦合计算簇、PCIE接口、内部数据总线;各局部紧耦合计算簇之间通过所述内部数据总线电性连接;
所述局部紧耦合计算簇用于对深度神经网络或脉冲神经网络进行运算,其由N×N个神经元引擎NE组成,各NE共用一个神经元缓冲区;
NE包括突触计算阵列SCA、胞体计算行SCR、树突与轴突DAA;
DAA通过所述内部数据总线与所述神经元缓冲区连接,用于对神经元模型数据的输入输出及缓存;
SCA用于读取DAA缓存的神经元模型数据,进行矩阵运算;
SCR用于对SCA输出的数据进行向量运算,并发送所述神经元缓冲区;
所述PCIE接口与计算机主板PCIE插槽匹配,用于所述类脑计算系统与外部设备的数据交互。
2.根据权利要求1所述的基于多神经网络融合的类脑计算系统,其特征在于,所述神经元缓冲区由DDR控制器及外置DDR存储颗粒组成。
3.根据权利要求1所述的基于多神经网络融合的类脑计算系统,其特征在于,所述树突与轴突包括第一缓冲区、第二缓冲区;
所述第一缓冲区、所述第二缓冲区与SCA连接;
所述第一缓冲区,用于存储压缩编码后的稀疏化权重数据;
所述第二缓冲区,用于存储输入层及隐层中间计算的神经元模型数据。
4.根据权利要求3所述的基于多神经网络融合的类脑计算系统,其特征在于,所述神经元引擎还包括标量计算单元、DMA、第三缓冲区、调度状态机FSM;
DMA用于通过内部数据总线将外置DDR存储颗粒的权重数据、待处理的神经元模型数据、网络映射指令分别传输至所述第一缓冲区、所述第二缓存区、所述第三缓冲区;
所述标量计算单元与所述神经元缓冲区连接,用于读取神经元模型数据进行算数运算和/或关系运算和/或跳转运算;
所述第三缓冲区用于缓存网络映射指令;
FSM与所述第三缓冲区连接,用于读取网络映射指令进行译码,并根据译码结果将将网络映射指令发送至相应的运算单元执行相应的运算操作;所述相应的运算单元包括SCA、SCR、标量计算单元。
5.根据权利要求1所述的基于多神经网络融合的类脑计算系统,其特征在于,所述突触计算阵列由MxM个积分计算单元ICU组成,每个ICU由乘累加器、寄存器、结果缓冲区组成;所述结果缓冲区用于存储ICU计算的结果。
6.根据权利要求5所述的基于多神经网络融合的类脑计算系统,其特征在于,所述突触计算阵列在进行运算时,脉冲神经网络的列通路采用全局广播、列广播的计算模式,行通路采用行广播的计算模式;深度神经网络的列通路采用全局广播、列广播、脉动阵列的计算模式,行通路采用行广播、点对点传输的计算模式。
7.根据权利要求1所述的基于多神经网络融合的类脑计算系统,其特征在于,所述胞体计算行由累加单元ACC、M个交叉计算单元CCU组成;CCU用于通过CORDIC算法和微分方程求解方法对神经元模型数据进行计算;ACC用于累加CCU的计算结果。
8.一种基于多神经网络融合的类脑计算系统指令集的执行方法,其特征在于,基于权利要求1-7任一项所述的基于多神经网络融合的类脑计算系统,包括以下步骤:
步骤S100,获取待执行的网络映射指令;所述网络映射指令由前缀码字段、操作码字段、差异性辅助字段构成;所述差异性辅助字段包括目的地址、源地址、所运算数据的长度、立即数;
步骤S200,基于所述网络映射指令其构成的各字段,分别通过调度状态机FSM的译码电路获取指令类型、指令功能及寻址方式,作为译码结果;
步骤S300,基于所述译码结果,将所述网络映射指令发送至对应的运算单元执行操作,执行完成后,重复执行步骤S100-步骤S200。
9.根据权利要求8所述的基于多神经网络融合的类脑计算系统指令集的执行方法,其特征在于,所述指令类型为类脑计算系统指令集中矩阵运算指令、向量运算指令、标量运算指令、数据传输指令的任一种。
10.根据权利要求9所述的基于多神经网络融合的类脑计算系统指令集的执行方法,其特征在于,所述类脑计算系统指令集采用CISC结构。
11.根据权利要求9所述的基于多神经网络融合的类脑计算系统指令集的执行方法,其特征在于,所述矩阵运算指令包括:矩阵乘矩阵指令、矩阵乘向量指令、矩阵相加指令、矩阵相减指令、卷积操作指令。
12.根据权利要求9所述的基于多神经网络融合的类脑计算系统指令集的执行方法,其特征在于,所述向量运算指令包括:Sigmoid函数运算指令、Tanh函数运算指令、指数函数运算指令、对数函数运算指令、倒数运算指令、横向求和指令、Hodgkin-Huxley神经元模型指令、Izhikevich神经元模型指令、LIF神经元模型指令。
13.根据权利要求9所述的基于多神经网络融合的类脑计算系统指令集的执行方法,其特征在于,所述数据传输指令包括:数据加载指令和数据存储指令。
14.根据权利要求13所述的基于多神经网络融合的类脑计算系统指令集的执行方法,其特征在于,所述数据加载指令其源存储器包括:外部存储器、局部权重存储器、脑区内共享神经元数据存储器和相邻脑区数据存储器;所述数据加载指令其目的存储器包括:局部权重存储器和权重、数据分发缓存队列。
15.根据权利要求13所述的基于多神经网络融合的类脑计算系统指令集的执行方法,其特征在于,所述数据存储指令其源存储器包括:局部权重存储器和脑区共享数据存储器;所述数据存储指令其目的存储器包括:外部存储器、局部权重缓存队列和脑区共享数据存储队列。
16.根据权利要求9所述的基于多神经网络融合的类脑计算系统指令集的执行方法,其特征在于,所述标量计算指令包括:加法指令、减法指令、乘法指令、除法指令、比较指令、跳转指令。
17.一种存储装置,其中存储有多条程序,其特征在于,所述程序应用由处理器加载并执行以实现权利要求8-16任一项所述的基于多神经网络融合的类脑计算系统指令集的执行方法。
18.一种处理装置,包括处理器、存储装置;处理器,适用于执行各条程序;存储装置,适用于存储多条程序;其特征在于,所述程序适用于由处理器加载并执行以实现权利要求8-16任一项所述的基于多神经网络融合的类脑计算系统指令集的执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010091024.8A CN111325321B (zh) | 2020-02-13 | 2020-02-13 | 基于多神经网络融合的类脑计算系统及指令集的执行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010091024.8A CN111325321B (zh) | 2020-02-13 | 2020-02-13 | 基于多神经网络融合的类脑计算系统及指令集的执行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111325321A true CN111325321A (zh) | 2020-06-23 |
CN111325321B CN111325321B (zh) | 2023-08-29 |
Family
ID=71172638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010091024.8A Active CN111325321B (zh) | 2020-02-13 | 2020-02-13 | 基于多神经网络融合的类脑计算系统及指令集的执行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111325321B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112257843A (zh) * | 2020-09-23 | 2021-01-22 | 浙江大学 | 一种基于MobileNetV1网络推理任务的扩展指令集的系统 |
CN112269606A (zh) * | 2020-11-12 | 2021-01-26 | 浙江大学 | 一种类脑计算机操作系统的应用处理程序动态加载方法 |
CN112436957A (zh) * | 2020-11-03 | 2021-03-02 | 深圳市永达电子信息股份有限公司 | 基于云计算的pdrr网络安全保障模型并行实现系统 |
CN112651504A (zh) * | 2020-12-16 | 2021-04-13 | 中山大学 | 一种基于并行化的类脑仿真编译的加速方法 |
CN113269317A (zh) * | 2021-04-14 | 2021-08-17 | 南京大学 | 一种脉冲神经网络计算阵列 |
CN113515468A (zh) * | 2021-09-14 | 2021-10-19 | 成都时识科技有限公司 | 数据更新方法和存储空间设置方法及装置、芯片、设备 |
CN113543045A (zh) * | 2021-05-28 | 2021-10-22 | 平头哥(上海)半导体技术有限公司 | 处理单元、相关装置和张量运算方法 |
CN114399033A (zh) * | 2022-03-25 | 2022-04-26 | 浙江大学 | 基于神经元指令编码的类脑计算系统和计算方法 |
CN114548390A (zh) * | 2022-02-25 | 2022-05-27 | 电子科技大学 | 一种基于risc-v和神经形态计算的异构架构处理系统 |
CN114781633A (zh) * | 2022-06-17 | 2022-07-22 | 电子科技大学 | 一种融合人工神经网络与脉冲神经网络的处理器 |
US11423292B2 (en) * | 2020-02-15 | 2022-08-23 | Industrial Technology Research Institute | Convolutional neural-network calculating apparatus and operation methods thereof |
CN115392443A (zh) * | 2022-10-27 | 2022-11-25 | 之江实验室 | 类脑计算机操作系统的脉冲神经网络应用表示方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017185418A1 (zh) * | 2016-04-29 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法 |
CN108009640A (zh) * | 2017-12-25 | 2018-05-08 | 清华大学 | 基于忆阻器的神经网络的训练装置及其训练方法 |
CN109858620A (zh) * | 2018-12-29 | 2019-06-07 | 北京灵汐科技有限公司 | 一种类脑计算系统 |
-
2020
- 2020-02-13 CN CN202010091024.8A patent/CN111325321B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017185418A1 (zh) * | 2016-04-29 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法 |
CN108009640A (zh) * | 2017-12-25 | 2018-05-08 | 清华大学 | 基于忆阻器的神经网络的训练装置及其训练方法 |
CN109858620A (zh) * | 2018-12-29 | 2019-06-07 | 北京灵汐科技有限公司 | 一种类脑计算系统 |
Non-Patent Citations (1)
Title |
---|
顾险峰;: "人工智能的历史回顾和发展现状" * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11423292B2 (en) * | 2020-02-15 | 2022-08-23 | Industrial Technology Research Institute | Convolutional neural-network calculating apparatus and operation methods thereof |
CN112257843B (zh) * | 2020-09-23 | 2022-06-28 | 浙江大学 | 一种基于MobileNetV1网络推理任务的扩展指令集的系统 |
CN112257843A (zh) * | 2020-09-23 | 2021-01-22 | 浙江大学 | 一种基于MobileNetV1网络推理任务的扩展指令集的系统 |
CN112436957A (zh) * | 2020-11-03 | 2021-03-02 | 深圳市永达电子信息股份有限公司 | 基于云计算的pdrr网络安全保障模型并行实现系统 |
CN112436957B (zh) * | 2020-11-03 | 2023-03-14 | 深圳市永达电子信息股份有限公司 | 基于云计算的pdrr网络安全保障模型并行实现系统 |
CN112269606A (zh) * | 2020-11-12 | 2021-01-26 | 浙江大学 | 一种类脑计算机操作系统的应用处理程序动态加载方法 |
CN112651504B (zh) * | 2020-12-16 | 2023-08-25 | 中山大学 | 一种基于并行化的类脑仿真编译的加速方法 |
CN112651504A (zh) * | 2020-12-16 | 2021-04-13 | 中山大学 | 一种基于并行化的类脑仿真编译的加速方法 |
CN113269317A (zh) * | 2021-04-14 | 2021-08-17 | 南京大学 | 一种脉冲神经网络计算阵列 |
CN113543045B (zh) * | 2021-05-28 | 2022-04-26 | 平头哥(上海)半导体技术有限公司 | 处理单元、相关装置和张量运算方法 |
CN113543045A (zh) * | 2021-05-28 | 2021-10-22 | 平头哥(上海)半导体技术有限公司 | 处理单元、相关装置和张量运算方法 |
CN113515468B (zh) * | 2021-09-14 | 2021-11-30 | 成都时识科技有限公司 | 数据更新方法和存储空间设置方法及装置、芯片、设备 |
CN113515468A (zh) * | 2021-09-14 | 2021-10-19 | 成都时识科技有限公司 | 数据更新方法和存储空间设置方法及装置、芯片、设备 |
CN114548390A (zh) * | 2022-02-25 | 2022-05-27 | 电子科技大学 | 一种基于risc-v和神经形态计算的异构架构处理系统 |
CN114399033B (zh) * | 2022-03-25 | 2022-07-19 | 浙江大学 | 基于神经元指令编码的类脑计算系统和计算方法 |
CN114399033A (zh) * | 2022-03-25 | 2022-04-26 | 浙江大学 | 基于神经元指令编码的类脑计算系统和计算方法 |
CN114781633A (zh) * | 2022-06-17 | 2022-07-22 | 电子科技大学 | 一种融合人工神经网络与脉冲神经网络的处理器 |
CN114781633B (zh) * | 2022-06-17 | 2022-10-14 | 电子科技大学 | 一种融合人工神经网络与脉冲神经网络的处理器 |
CN115392443A (zh) * | 2022-10-27 | 2022-11-25 | 之江实验室 | 类脑计算机操作系统的脉冲神经网络应用表示方法及装置 |
CN115392443B (zh) * | 2022-10-27 | 2023-03-10 | 之江实验室 | 类脑计算机操作系统的脉冲神经网络应用表示方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111325321B (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111325321A (zh) | 基于多神经网络融合的类脑计算系统及指令集的执行方法 | |
CN109104876B (zh) | 一种运算装置及相关产品 | |
CN107609642B (zh) | 计算装置和方法 | |
CN112840356B (zh) | 运算加速器、处理方法及相关设备 | |
CN110326003A (zh) | 用于神经网络处理的具有位置依赖存储器的硬件节点 | |
CN110036369A (zh) | 一种计算方法及相关产品 | |
CN110998570A (zh) | 具有带有块浮点处理的矩阵矢量单元的硬件节点 | |
US20140258689A1 (en) | Processor for large graph algorithm computations and matrix operations | |
CN109409510B (zh) | 神经元电路、芯片、系统及其方法、存储介质 | |
CN112219209A (zh) | 具有有可重配置的核级和向量级并行度的并行计算架构 | |
CN110321997B (zh) | 高并行度计算平台、系统及计算实现方法 | |
CN108170640B (zh) | 神经网络运算装置及应用其进行运算的方法 | |
CN111626403B (zh) | 一种基于cpu-fpga内存共享的卷积神经网络加速器 | |
US11544542B2 (en) | Computing device and method | |
CN110383300A (zh) | 一种计算装置及方法 | |
CN110163359A (zh) | 一种计算装置及方法 | |
CN110543939A (zh) | 一种基于fpga的卷积神经网络后向训练的硬件加速实现架构 | |
CN111860773B (zh) | 处理装置和用于信息处理的方法 | |
CN110276447A (zh) | 一种计算装置及方法 | |
CN108491924B (zh) | 一种面向人工智能计算的神经网络数据串行流水处理装置 | |
Shahshahani et al. | Memory optimization techniques for fpga based cnn implementations | |
CN111047045A (zh) | 机器学习运算的分配系统及方法 | |
CN117032807A (zh) | 基于risc-v指令集的ai加速处理器架构 | |
CN113762493A (zh) | 神经网络模型的压缩方法、装置、加速单元和计算系统 | |
CN114626516A (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 |