CN117648956B - 脉冲神经网络模型资源映射方法、装置和存储介质 - Google Patents
脉冲神经网络模型资源映射方法、装置和存储介质 Download PDFInfo
- Publication number
- CN117648956B CN117648956B CN202410118627.0A CN202410118627A CN117648956B CN 117648956 B CN117648956 B CN 117648956B CN 202410118627 A CN202410118627 A CN 202410118627A CN 117648956 B CN117648956 B CN 117648956B
- Authority
- CN
- China
- Prior art keywords
- idle
- nerve
- mimicry
- neuron
- neural network
- 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
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 86
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013507 mapping Methods 0.000 title claims abstract description 38
- 238000003860 storage Methods 0.000 title claims abstract description 10
- 210000002569 neuron Anatomy 0.000 claims abstract description 221
- 210000005036 nerve Anatomy 0.000 claims abstract description 99
- 102000008297 Nuclear Matrix-Associated Proteins Human genes 0.000 claims abstract description 8
- 108010035916 Nuclear Matrix-Associated Proteins Proteins 0.000 claims abstract description 8
- 210000000299 nuclear matrix Anatomy 0.000 claims abstract description 8
- 238000004891 communication Methods 0.000 claims description 30
- 239000011159 matrix material Substances 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 14
- 238000009826 distribution Methods 0.000 claims description 10
- 210000002364 input neuron Anatomy 0.000 claims description 7
- 210000004205 output neuron Anatomy 0.000 claims description 5
- 210000004940 nucleus Anatomy 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 15
- 238000013528 artificial neural network Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 210000003050 axon Anatomy 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 210000004556 brain Anatomy 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000005094 computer simulation Methods 0.000 description 2
- 210000001787 dendrite Anatomy 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 210000000225 synapse Anatomy 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 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/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Feedback Control In General (AREA)
Abstract
本申请涉及一种脉冲神经网络模型资源映射方法、装置和存储介质,其中,该脉冲神经网络模型资源映射方法包括:根据脉冲神经网络模型中各神经元簇的步长,对脉冲神经网络模型中各神经元簇进行分层,得到各层神经元簇集合;将各层神经元簇集合部署至类脑芯片的神经拟态核矩阵的各空闲神经拟态核列中;其中,层数越大的神经元簇集合,部署于列序号越大的空闲神经拟态核列中;根据各空闲神经拟态核列中分配资源的初始位置,以及各空闲神经拟态核列中其他位置与初始位置的距离,为各空闲神经拟态核列中部署的神经元簇集合分配类脑芯片的空闲神经拟态核,提高了神经拟态核利用率和类脑模型的运算速度。
Description
技术领域
本申请涉及类脑计算机操作***技术领域,特别是涉及脉冲神经网络模型资源映射方法、装置和存储介质。
背景技术
近年来,人工智能领域快速发展,应用于人工智能的专用硬件逐步出现,其中类脑计算机是人工智能领域的一个重要研究方向。类脑计算机是类脑计算硬件芯片、类脑计算软件、神经网络算法模型融合的新型计算机模型,能够适配并高效模拟大脑神经网络运行。神经网络模型是模仿生物大脑运行机理,以大量神经元,以及连接神经元的轴突、树突构建而成。神经网络模型分为人工神经网络和脉冲神经网络,人工神经网络中神经元之间传递数值,脉冲神经网络中神经元之间传递脉冲。
类脑芯片由大量神经拟态核(以下简称核心)组成,在一个芯片上,大量核心以二维矩阵的形态排布,多个类脑芯片可以通过互连线接连,构成了一个更大的二维核心矩阵。每个核心可以模拟大量神经元和突触的行为,但每个核心的信息承载量是有限的,对于大规模的脉冲神经网络模型,需要由多个核心,甚至多个类脑芯片来承载,不同核心上承载的神经元之间的通信,通过核心之间的通信实现,但是受硬件约束,核心与核心之间的通信存在距离限制,需要通过配置中继核心,由中继核心进行信息传递,越靠近内部的核心与外界通信需要越多的中继核心,需要跟外界通信的只有输入层和输出层的神经元,中间层神经元只需要相互之间通信而不需要跟外界通信,若一个核心配置为中继核心,则将无法再参与脉冲神经网络中的计算,设置过多的中继核心会导致脉冲神经网络的计算速度下降。目前,往往是通过最小化通信代价来提高类脑模型的运算速度,并不能对核心的使用率进行优化。
针对相关技术中存在全局神经拟态核使用率较低,且类脑模型的运算速度较低的问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种脉冲神经网络模型资源映射方法、装置和存储介质,以解决相关技术中全局神经拟态核使用率较低,且类脑模型的运算速度较低的问题。
第一个方面,在本实施例中提供了一种脉冲神经网络模型资源映射方法,包括:
根据脉冲神经网络模型中各神经元簇的步长,对脉冲神经网络模型中各神经元簇进行分层,得到各层神经元簇集合;
将各层神经元簇集合部署至类脑芯片的神经拟态核矩阵的各空闲神经拟态核列中;其中,层数越大的神经元簇集合,部署于列序号越大的空闲神经拟态核列中;
根据各空闲神经拟态核列中分配资源的初始位置,以及各空闲神经拟态核列中其他位置与初始位置的距离,为各空闲神经拟态核列中部署的神经元簇集合分配类脑芯片的空闲神经拟态核。
在其中的一些实施例中,在根据脉冲神经网络模型中各神经元簇的步长,对脉冲神经网络模型中各神经元簇进行分层,得到各层神经元簇集合之前,还包括:
对脉冲神经网络模型中的各神经元簇进行遍历得到各神经元簇的步长。
在其中的一些实施例中,对脉冲神经网络模型中的各神经元簇进行遍历得到各神经元簇的步长,包括:
根据各神经元簇之间的连接关系,先正向向后遍历每一条连接关系,依次记录每一个神经元簇的正向步长,取每一个神经元簇中最小正向步长作为每一个神经元簇的目标正向步长;反向向前遍历每一条连接关系,依次记录每一个神经元簇的反向步长,取每一个神经元簇中最小反向步长作为每一个神经元簇的目标反向步长;根据每一个神经元簇的目标正向步长和目标反向步长,得到每一个神经元簇的最小值步长;根据每一个神经元簇的最小值步长对神经元簇进行分层。
在其中的一些实施例中,初始位置由多项式曲线拟合空闲神经拟态核的分布情况得到,其中,多项式曲线由各空闲神经拟态核列中每一行最远离通信边缘的空闲神经拟态核的坐标信息构成。
在其中的一些实施例中,在初始位置由多项式曲线拟合空闲神经拟态核的分布情况得到之前,还包括:
对各空闲神经拟态核列中的多项式曲线加权叠加后拟合得到叠加拟合曲线,根据叠加拟合曲线确定初始位置。
在其中的一些实施例中,根据各空闲神经拟态核列中分配资源的初始位置,以及各空闲神经拟态核列中其他位置与初始位置的距离,为各空闲神经拟态核列中部署的神经元簇集合分配类脑芯片的空闲神经拟态核,包括:
根据初始位置,计算空闲神经拟态核列中其他位置与初始位置的曼哈顿距离;按照曼哈顿距离从小到大的顺序,将配置在空闲神经拟态核列中的各神经元簇与各空闲神经元拟态核建立映射关系,完成类脑芯片的空闲神经拟态核的分配。
在其中的一些实施例中,基于类脑芯片的空闲神经拟态核的分配,对输入神经元和输出神经元所在的神经元簇分配所需的脉冲中继神经拟态核。
第二个方面,在本实施例中提供了一种脉冲神经网络模型资源映射装置,包括:分层模块,部署模块以及分配模块,其中:
分层模块,用于根据脉冲神经网络模型中各神经元簇的步长,对脉冲神经网络模型中各神经元簇进行分层,得到各层神经元簇集合;
部署模块,用于将各层神经元簇集合部署至类脑芯片的神经拟态核矩阵的各空闲神经拟态核列中;其中,层数越大的神经元簇集合,部署于列序号越大的空闲神经拟态核列中;
分配模块,用于根据各空闲神经拟态核列中分配资源的初始位置,以及各空闲神经拟态核列中其他位置与初始位置的距离,为各空闲神经拟态核列中部署的神经元簇集合分配类脑芯片的空闲神经拟态核。
第三个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述第一个方面的脉冲神经网络模型资源映射方法。
第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面的脉冲神经网络模型资源映射方法。
与相关技术相比,在本实施例中提供的脉冲神经网络模型资源映射方法,通过根据脉冲神经网络模型中各神经元簇的步长,对脉冲神经网络模型中各神经元簇进行分层,得到各层神经元簇集合;将各层神经元簇集合部署至类脑芯片的神经拟态核矩阵的各空闲神经拟态核列中;其中,层数越大的神经元簇集合,部署于列序号越大的空闲神经拟态核列中;根据各空闲神经拟态核列中分配资源的初始位置,以及各空闲神经拟态核列中其他位置与初始位置的距离,为各空闲神经拟态核列中部署的神经元簇集合分配类脑芯片的空闲神经拟态核,解决了全局神经拟态核使用率较低,且类脑模型的运算速度较低的问题,提高了神经拟态核利用率和类脑模型的运算速度。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本实施例的脉冲神经网络模型资源映射方法的终端的硬件结构框图。
图2是本实施例的脉冲神经网络模型资源映射方法的流程图。
图3为本实施例类脑硬件二维核心矩阵预留中继核心示意图。
图4为本实施例的脉冲神经网络模型中神经元簇正反向遍历步长示意图。
图5为本实施例的脉冲神经网络模型中神经元簇分层示意图。
图6为本实施例的芯片核心二维矩阵资源使用及坐标系示意图。
图7为本实施例不同空闲核心列中空闲边缘曲线拟合示意图。
图8是本实施例从初始位置选取当前空闲列中空闲核心顺序示意图。
图9是本实施例的另一种脉冲神经网络模型资源映射的流程图。
图10是本实施例的脉冲神经网络模型资源映射装置的结构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和***、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的脉冲神经网络模型资源映射方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的脉冲神经网络模型资源映射方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(RadioFrequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种脉冲神经网络模型资源映射方法,图2是本实施例的脉冲神经网络模型资源映射方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,根据脉冲神经网络模型中各神经元簇的步长,对脉冲神经网络模型中各神经元簇进行分层,得到各层神经元簇集合。
神经网络模型是模仿生物大脑运行机理,以大量神经元和连接神经元的轴突、树突构建而成。类脑计算机操作***是运行在类脑芯片之上的***软件。类脑计算机操作***的编译器将脉冲神经网络模型基于类脑芯片的硬件特征编译成可执行文件,脉冲神经网络模型中的神经元在编译过程中被聚合到特定的神经元簇中,脉冲神经网络模型以神经元簇为单位进行描述,神经元簇之间的通信关系即代表着神经元之间的通信关系。
计算脉冲网络模型中各神经元簇的步长,根据步长计算结果,确定神经元簇之间的传输距离,将步长一致的神经元簇划分为同一层,得到各层的神经元簇集合。
步骤S202,将各层神经元簇集合部署至类脑芯片的神经拟态核矩阵的各空闲神经拟态核列中;其中,层数越大的神经元簇集合,部署于列序号越大的空闲神经拟态核列中。
类脑计算机是类脑计算硬件芯片、类脑计算软件、神经网络算法模型融合的新型计算机模型,能够适配并高效模拟大脑神经网络运行。类脑计算机操作***是运行在类脑芯片之上的***软件。类脑芯片由大量神经拟态核(以下简称核心)组成,在一个芯片上,大量核心以二维矩阵的形态排布,形成数据拟态核矩阵,多个类脑芯片可以通过互连线接连,构成了一个更大的二维核心矩阵。每个核心可以模拟大量神经元和突触的行为,不同核心上承载的神经元之间的通信,通过核心之间的通信实现。类脑计算机操作***的编译器将脉冲神经网络模型基于类脑芯片的硬件特征编译成可执行文件,脉冲神经网络模型中的神经元在编译过程中被聚合到特定的神经元簇中,脉冲神经网络模型以神经元簇为单位进行描述,神经元簇之间的通信关系即代表着神经元之间的通信关系。脉冲神经网络模型通过类脑操作***在类脑芯片上给神经元簇分配真实物理核心资源并部署实例运行。
在类脑硬件的设计中,中继规则分为配置中继和脉冲中继。配置中继的路由规则目标是某一个核心,用于转发对核心的读写配置包,脉冲中继的路由规则目标是某一核心上的某个树突,用于转发神经元之间传递的脉冲信号。图3为本实施例类脑硬件二维核心矩阵预留中继核心示意图。为了使二维核心矩阵中的所有核心都可以被配置,在接入类脑硬件时预留了充足的静态配置中继核心,同时将一部分核心预留为脉冲中继核心。这些预留的静态配置中继核心和脉冲中继核心在部署神经网络模型时不能作为计算核心分配使用。如图3所示为20×40的二维核心矩阵,图中每一个小正方形表示一个核心,假设此二维核心矩阵与外界通信只能通过左侧边缘,标记为C的核心为预留的静态配置中继核心,标记为S的核心为预留的脉冲中继核心,图3中没有标记的空白的为空闲核心。如图3所示,预留的中继核心将二维核心矩阵切割成若干空闲核心列。
假设步骤S201中的神经元簇分层得到n层神经元簇集合,静态配置中继核心将二维核心矩阵切割成m个空闲核心列,第1空闲核心最靠近通信边缘,第m空闲核心列最远离通信边缘,将层数越大的神经元簇部署到列数越大的空闲核心列中,其计算规则如下:
(1)
k(x)表示第x层神经元簇集合在空闲核心列中的序号。
步骤S203,根据各空闲神经拟态核列中分配资源的初始位置,以及各空闲神经拟态核列中其他位置与初始位置的距离,为各空闲神经拟态核列中部署的神经元簇集合分配类脑芯片的空闲神经拟态核。
在各空闲核心列中,先确定分配资源的初始位置,再根据初始位置和其他空闲核心位置的距离,将该空闲核心列中的神经元簇分配具体的位置,初始位置基于该空闲核心列中的神经拟态核布局最优化得到,确保空闲核心使用率最大化。
通过上述步骤S201至步骤S203,根据脉冲神经网络模型中各神经元簇的步长,对脉冲神经网络模型中各神经元簇进行分层,得到各层神经元簇集合;将各层神经元簇集合部署至类脑芯片的神经拟态核矩阵的各空闲神经拟态核列中;其中,层数越大的神经元簇集合,部署于列序号越大的空闲神经拟态核列中;根据各空闲神经拟态核列中分配资源的初始位置,以及各空闲神经拟态核列中其他位置与初始位置的距离,为各空闲神经拟态核列中部署的神经元簇集合分配类脑芯片的空闲神经拟态核。与相关技术相比,在受硬件通信距离的约束下,本实施例通过先对神经元簇分层处理,再在各空闲核心中确定部署的初始位置,以初始位置开始,将各神经元簇映射到对应的空闲核心列表中,充分利用各空闲核心,通过将更多不需要跟外界通信的中间层神经元尽可能远离通信边缘布置,解决了由于过多布置脉冲中继核心而导致的类脑模型运算速度低的问题,并提高了全局核心使用率。
在其中的一些实施例中,在根据脉冲神经网络模型中各神经元簇的步长,对脉冲神经网络模型中各神经元簇进行分层,得到各层神经元簇集合之前,还包括:
对脉冲神经网络模型中的各神经元簇进行遍历得到各神经元簇的步长。根据各神经元簇之间的连接关系,先正向向后遍历每一条连接关系,依次记录每一个神经元簇的正向步长,取每一个神经元簇中最小正向步长作为每一个神经元簇的目标正向步长;反向向前遍历每一条连接关系,依次记录每一个神经元簇的反向步长,取每一个神经元簇中最小反向步长作为每一个神经元簇的目标反向步长;根据每一个神经元簇的目标正向步长和目标反向步长,得到每一个神经元簇的最小值步长;根据每一个神经元簇的最小值步长对神经元簇进行分层。
脉冲神经网络模型中,各神经元簇之间的连接关系可以描述成有向图的方式,图4为本实施例的脉冲神经网络模型中神经元簇正反向遍历步长示意图。如图4所示,每一个圆形为一个神经元簇,圆形之间的箭头表示遍历的方向,圆形中的数字为该神经元簇的遍历步长,其中正向遍历步长记作正数,反向遍历步长记作负数,图4中最左侧的圆形表示输入神经元轴突末端所在的神经元簇。从每个输入神经元轴突末端所在的神经元簇开始,沿着神经元簇之间的连接关系,正向向后(例如图4中从左至右遍历)遍历每一条连接关系,依次记录经过的每一个神经元簇的正向步长信息,第一个神经元簇标记正向步长为+1,第二个神经元簇标记正向步长为+2,依次类推,直到遍历到最后一个神经元簇为止。若多条连接路径经过同一个神经元簇,则取较小的正向步长为此神经元簇的目标正向步长,例如从左到右第4列第二行神经元簇的正向步长有+3和+4,则目标正向步长为+3。从每个输出神经元所在的神经元簇开始,沿着神经元簇之间的连接关系,反向向前遍历每一条连接关系,依次记录经过的每一个神经元簇的反向步长信息,第一个神经元簇标记步长为-1,第二个神经元簇标记步长为-2,依次类推,直到遍历到第一个神经元簇为止。若多条连接路径经过同一个神经元簇,则取较小的反向步长为此神经元簇的目标反向步长,例如第一列第一行神经元簇的反向步长有-5和-6,则目标反向步长为-5。经过正向遍历和反向遍历后,每一个神经元簇都存在一个目标正向步长和一个目标反向步长,取两者中的较小值为该神经元簇的最终步长,例如图4中第二列第一行的神经元簇的目标正向步长为+2,目标反向步长为-5,则最终步长为2。
图5为本实施例的脉冲神经网络模型中神经元簇分层示意图。如图5所示,每一个圆形为一个神经元簇,圆形之间的箭头表示遍历的方向,图中的数字为该神经元簇经过正向遍历和反遍历后所取的最终步长,图5中最左侧的圆形表示输入神经元轴突末端所在的神经元簇,按照每个神经元簇的最终步长,将步长一致的神经元簇分成同一层,如图5所示的脉冲神经网络模型为例,按神经元簇的最终步长分别是1,2,3,则神经元簇分为3层,第1层步长为1的有4个神经元簇,第2层步长为2的有7个神经元簇,第3层步长为3的有6个神经元簇。
在另一个实施例中,初始位置由多项式曲线拟合空闲神经拟态核的分布情况得到,其中,多项式曲线由各空闲神经拟态核列中每一行最远离通信边缘的空闲神经拟态核的坐标信息构成。
图6为本实施例的芯片核心二维矩阵资源使用及坐标系示意图。如图6所示,以一个核心为单位1,对二维核心矩阵建立二维坐标系,各正方形小方块代表一个核心,其中竖线条小方块为预留静态中继核心,斜线条小方块为其他模型已经占用的核心,空白小方块为空闲核心。在每一个空闲核心列中,取每一行最远离通信边缘(最靠近右边)的空闲核心组成空闲核心集合C i (1≤i≤m),空闲核心集合C i 构成空闲边缘曲线y=f i (x)。图7为本实施例不同空闲核心列中空闲边缘曲线拟合示意图,由空闲边缘曲线C i 采用5次多项式曲线进行最小二乘拟合得到,其计算公式如下:
(2)
其中,为5次多项式曲线的参数。
以图6所示的类脑硬件二维矩阵中的第1空闲核心列为例,拟合曲线的样本数据坐标为:C1={(0,28),(1,29),(2,30),(3,29),(4,28),(5,30),(6,31),(7,32),(8,33),(9,32),(10,31),(11,31),(12,29),(13,28),(14,29),(15,30),(16,29),(17,28),(18,28),(19,29)};
假设样本数为P,得到拟合曲线为:
(3)
令拟合目标函数为:
(4)
使目标函数依次对求偏导,得到目标函数取最小值,则使偏导为0,得到:
(5)
变为矩阵形式:
(6)
将样本中的数值带入,求解线性方程,得到的值。
同理,求得其他空闲核心列中拟合曲线中的参数,进而得到各空闲核心列的多项式曲线。
在其中的一些实施例中,在初始位置由多项式曲线拟合空闲神经拟态核的分布情况得到之前,还包括:
对各空闲神经拟态核列中的多项式曲线加权叠加后拟合得到叠加拟合曲线,根据叠加拟合曲线确定初始位置。
为每一个空闲核心列设置不同权重W i (1≤i≤m),将m个空闲核心列的空闲边缘曲线加权后叠加,得到叠加后的曲线:
(7)
在核心坐标范围内,使y值最小的x坐标x min 所对应的核心位置(x min ,y min )即为芯片资源分配的初始位置。
在另一个实施例中,根据各空闲神经拟态核列中分配资源的初始位置,以及各空闲神经拟态核列中其他位置与初始位置的距离,为各空闲神经拟态核列中部署的神经元簇集合分配类脑芯片的空闲神经拟态核,包括:
根据初始位置,计算空闲神经拟态核列中其他位置与初始位置的曼哈顿距离,按照曼哈顿距离从小到大的顺序,将配置在空闲神经拟态核列中的各神经元簇与各空闲神经元拟态核建立映射关系,完成类脑芯片的空闲神经拟态核的分配。
每一个空闲核心列,根据x min 在空闲核心集合C i 中找到初始分配资源的核心坐标(x min ,y min ),以(x min ,y min )为初始位置,按照曼哈顿距离从小到大的顺序,选取当前空闲核心列中的空闲核心,与待部署的神经元簇集合中的神经元簇建立映射关系。
图8是本实施例从初始位置选取当前空闲列中空闲核心顺序示意图。如图8所示,以一个核心为单位1,对二维核心矩阵建立二维坐标系,各正方形小方块代表一个核心,其中竖线条小方块为预留静态中继核心,斜线条小方块为其他模型已经占用的核心,空白小方块为空闲核心,框内数据为其他核心与初始位置核心的曼哈顿距离。假设上述计算出来的x min =3,则在3个空闲核心列中,初始分配核心位置坐标分别为:(3,29),(3,17),(3,4),以图8所示的3个空闲核心列和图5的神经元簇分层集合为例,第一层有4个步长为1的神经元簇要分配在第一空闲核心列的区域中,首先选择曼哈顿距离为0的(3,29)核心分配第一个神经元簇,再选择空闲核心中曼哈顿距离为1的(3,30),(4,29)核心分配第2个和第3个神经元簇,再选择空闲核心中曼哈顿距离为2的(4,28)核心分配第4个神经元簇,完成第一层神经元簇集合的分配。同样方法对另外两个空闲核心列中需要分配的神经元簇进行处理。直至待部署脉冲神经网络模型中的神经元簇全部分配与之对应的空闲核心,完成类脑芯片的核心分配。
在其中一些实施例中,基于类脑芯片的空闲神经拟态核的分配,对输入神经元和输出神经元所在的神经元簇分配所需的脉冲中继神经拟态核。
脉冲神经网络模型中,通过输入层神经元簇和输出层神经元簇跟外界通信,核心之间通信存在距离限制,需要配置脉冲中继核心进行连接,完成最终芯片资源的分配。
在本实施例中还提供了一种脉冲神经网络模型资源映射方法。图9是本实施例的另一种脉冲神经网络模型资源映射的流程图,如图9所示,该流程包括如下步骤:
步骤S901,将待部署的脉冲神经网络模型中使用的神经元簇做分层处理,得到分层的神经元簇集合;
步骤S902,类脑芯片的神经拟态核矩阵被中继神经拟态核分成若干空闲神经拟态核列;
步骤S903,将分层的神经元簇集合部署到各空闲神经拟态核列中,层数越大的神经元集合部署于序列号越大的空闲神经拟态核列中;
步骤S904,根据空闲神经拟态核列中的边缘曲线确定神经元簇在空闲神经拟态核列中的初始位置;
步骤S905,根据初始位置,以及其他位置和初始位置的距离,按曼哈顿距离从小到大的顺序,将每个空闲神经拟态核列中的神经元簇分配空闲神经拟态核;
步骤S906,基于类脑芯片空闲神经拟态核的分配,对输入神经元和输出神经元所在的神经元簇分配所需的脉冲中继神经拟态核。
通过上述步骤S901至步骤S906,与相关技术提出的类脑硬件核心分配方法相比,本实施例在受硬件通信距离的约束下,通过先对神经元簇分层处理,将更多不需要跟外界通信的神经元簇往核心矩阵内部部署,远离通信边缘位置,尽量跳过核心最大通信距离,再在各空闲核心中确定部署的初始位置,以初始位置开始,将各神经元簇映射到对应的空闲核心列表中,充分利用各空闲核心,通过将更多不需要跟外界通信的中间层神经元尽可能远离通信边缘布置,将输入层和输出层神经元布置到通信边缘,从而减少了脉冲中继核心的布置,中继核心不参与计算,将更多的空闲核心用于计算,解决了由于过多布置脉冲中继核心而导致的类脑模型运算速度低的问题,并提高了全局核心使用率。
在本实施例中还提供了一种脉冲神经网络模型资源映射装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图10是本实施例的脉冲神经网络模型资源映射装置的结构框图,如图10所示,该装置包括:分层模块11,部署模块12以及分配模块13,其中,
分层模块11,用于根据脉冲神经网络模型中各神经元簇的步长,对脉冲神经网络模型中各神经元簇进行分层,得到各层神经元簇集合;
部署模块12,用于将各层神经元簇集合部署至类脑芯片的神经拟态核矩阵的各空闲神经拟态核列中;其中,层数越大的神经元簇集合,部署于列序号越大的空闲神经拟态核列中;
分配模块13,用于根据各空闲神经拟态核列中分配资源的初始位置,以及各空闲神经拟态核列中其他位置与初始位置的距离,为各空闲神经拟态核列中部署的神经元簇集合分配类脑芯片的空闲神经拟态核。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,根据脉冲神经网络模型中各神经元簇的步长,对脉冲神经网络模型中各神经元簇进行分层,得到各层神经元簇集合;
S2,将各层神经元簇集合部署至类脑芯片的神经拟态核矩阵的各空闲神经拟态核列中;其中,层数越大的神经元簇集合,部署于列序号越大的空闲神经拟态核列中;
S3,根据各空闲神经拟态核列中分配资源的初始位置,以及各空闲神经拟态核列中其他位置与初始位置的距离,为各空闲神经拟态核列中部署的神经元簇集合分配类脑芯片的空闲神经拟态核。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的脉冲神经网络模型资源映射方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种脉冲神经网络模型资源映射方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种脉冲神经网络模型资源映射方法,其特征在于,包括:
根据脉冲神经网络模型中各神经元簇的步长,对所述脉冲神经网络模型中各所述神经元簇进行分层,得到各层神经元簇集合;
将所述各层神经元簇集合部署至类脑芯片的神经拟态核矩阵的各空闲神经拟态核列中;其中,层数越大的所述神经元簇集合,部署于列序号越大的所述空闲神经拟态核列中,其中,列序号越大的所述空闲神经拟态核列,越远离通信边缘;
根据各所述空闲神经拟态核列中分配资源的初始位置,以及各所述空闲神经拟态核列中其他位置与所述初始位置的距离,为各所述空闲神经拟态核列中部署的神经元簇集合分配所述类脑芯片的空闲神经拟态核。
2.根据权利要求1所述的脉冲神经网络模型资源映射方法,其特征在于,在根据脉冲神经网络模型中各神经元簇的步长,对所述脉冲神经网络模型中各所述神经元簇进行分层,得到各层神经元簇集合之前,所述方法还包括:
对所述脉冲神经网络模型中的各神经元簇进行遍历得到所述各神经元簇的步长。
3.根据权利要求2所述的脉冲神经网络模型资源映射方法,其特征在于,所述对所述脉冲神经网络模型中的各神经元簇进行遍历得到所述各神经元簇的步长,包括:
根据各所述神经元簇之间的连接关系,先正向向后遍历每一条所述连接关系,依次记录每一个神经元簇的正向步长,取所述每一个神经元簇中最小正向步长作为所述每一个神经元簇的目标正向步长;
反向向前遍历每一条所述连接关系,依次记录所述每一个神经元簇的反向步长,取所述每一个神经元簇中最小反向步长作为所述每一个神经元簇的目标反向步长;
根据所述每一个神经元簇的所述目标正向步长和所述目标反向步长,得到所述每一个神经元簇的最小值步长;
根据所述每一个神经元簇的最小值步长对所述神经元簇进行分层。
4.根据权利要求1所述的脉冲神经网络模型资源映射方法,其特征在于:
所述初始位置由多项式曲线拟合所述空闲神经拟态核的分布情况得到,其中,所述多项式曲线由所述各空闲神经拟态核列中每一行最远离通信边缘的空闲神经拟态核的坐标信息构成。
5.根据权利要求4所述的脉冲神经网络模型资源映射方法,其特征在于,在所述初始位置由多项式曲线拟合所述空闲神经拟态核的分布情况得到之前,所述方法还包括:
对各空闲神经拟态核列中的多项式曲线加权叠加后拟合得到叠加拟合曲线,根据所述叠加拟合曲线确定所述初始位置。
6.根据权利要求1至权利要求5中的任一项所述的脉冲神经网络模型资源映射方法,其特征在于,所述根据各所述空闲神经拟态核列中分配资源的初始位置,以及各所述空闲神经拟态核列中其他位置与所述初始位置的距离,为各所述空闲神经拟态核列中部署的神经元簇集合分配所述类脑芯片的空闲神经拟态核,包括:
根据所述初始位置,计算所述空闲神经拟态核列中其他位置与所述初始位置的曼哈顿距离;
按照所述曼哈顿距离从小到大的顺序,将配置在所述空闲神经拟态核列中的所述各神经元簇与所述各空闲神经元拟态核建立映射关系,完成所述类脑芯片的空闲神经拟态核的分配。
7.根据权利要求1所述的脉冲神经网络模型资源映射方法,其特征在于,所述方法还包括:
基于所述类脑芯片的空闲神经拟态核的分配,对输入神经元和输出神经元所在的神经元簇分配所需的脉冲中继神经拟态核。
8.一种脉冲神经网络模型资源映射装置,其特征在于,包括:分层模块,部署模块以及分配模块,其中:
所述分层模块,用于根据脉冲神经网络模型中各神经元簇的步长,对所述脉冲神经网络模型中各所述神经元簇进行分层,得到各层神经元簇集合;
所述部署模块,用于将所述各层神经元簇集合部署至类脑芯片的神经拟态核矩阵的各空闲神经拟态核列中;其中,层数越大的所述神经元簇集合,部署于列序号越大的所述空闲神经拟态核列中,其中,列序号越大的所述空闲神经拟态核列,越远离通信边缘;
所述分配模块,用于根据各所述空闲神经拟态核列中分配资源的初始位置,以及各所述空闲神经拟态核列中其他位置与所述初始位置的距离,为各所述空闲神经拟态核列中部署的神经元簇集合分配所述类脑芯片的空闲神经拟态核。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至权利要求7中任一项所述的脉冲神经网络模型资源映射方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至权利要求7中任一项所述的脉冲神经网络模型资源映射方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410118627.0A CN117648956B (zh) | 2024-01-29 | 2024-01-29 | 脉冲神经网络模型资源映射方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410118627.0A CN117648956B (zh) | 2024-01-29 | 2024-01-29 | 脉冲神经网络模型资源映射方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117648956A CN117648956A (zh) | 2024-03-05 |
CN117648956B true CN117648956B (zh) | 2024-06-04 |
Family
ID=90046293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410118627.0A Active CN117648956B (zh) | 2024-01-29 | 2024-01-29 | 脉冲神经网络模型资源映射方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117648956B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112561043A (zh) * | 2021-03-01 | 2021-03-26 | 浙江大学 | 一种类脑计算机操作***的神经模型拆分方法 |
CN112561042A (zh) * | 2021-03-01 | 2021-03-26 | 浙江大学 | 一种类脑计算机操作***的神经模型映射方法 |
CN114492770A (zh) * | 2022-01-28 | 2022-05-13 | 浙江大学 | 一种面向循环脉冲神经网络的类脑计算芯片映射方法 |
CN114548384A (zh) * | 2022-04-28 | 2022-05-27 | 之江实验室 | 具有抽象资源约束的脉冲神经网络模型构建方法和装置 |
CN116070682A (zh) * | 2023-04-06 | 2023-05-05 | 浙江大学 | 神经元计算机操作***的snn模型动态映射方法及装置 |
CN116861972A (zh) * | 2023-07-04 | 2023-10-10 | 北京灵汐科技有限公司 | 用于网络仿真的神经元簇分配方法及装置 |
-
2024
- 2024-01-29 CN CN202410118627.0A patent/CN117648956B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112561043A (zh) * | 2021-03-01 | 2021-03-26 | 浙江大学 | 一种类脑计算机操作***的神经模型拆分方法 |
CN112561042A (zh) * | 2021-03-01 | 2021-03-26 | 浙江大学 | 一种类脑计算机操作***的神经模型映射方法 |
WO2022183921A1 (zh) * | 2021-03-01 | 2022-09-09 | 浙江大学 | 一种类脑计算机操作***的神经模型映射方法 |
CN114492770A (zh) * | 2022-01-28 | 2022-05-13 | 浙江大学 | 一种面向循环脉冲神经网络的类脑计算芯片映射方法 |
CN114548384A (zh) * | 2022-04-28 | 2022-05-27 | 之江实验室 | 具有抽象资源约束的脉冲神经网络模型构建方法和装置 |
CN116070682A (zh) * | 2023-04-06 | 2023-05-05 | 浙江大学 | 神经元计算机操作***的snn模型动态映射方法及装置 |
CN116861972A (zh) * | 2023-07-04 | 2023-10-10 | 北京灵汐科技有限公司 | 用于网络仿真的神经元簇分配方法及装置 |
Non-Patent Citations (5)
Title |
---|
Darwin3: A large-scale neuromorphic chip with a Novel ISA and On-Chip Learning;Ma, D Etc.;arXiv;20240118;全文 * |
Mimicry of Excitatory and Inhibitory Artificial Neuron With Leaky Integrate-and-Fire Function by a Single MOSFET;Joon-Kyu Han Etc.;IEEE Electron Device Letters;20191210;第41卷(第2期);全文 * |
基于联合权重超图划分的SNN负载均衡方法;徐聪 等;计算机应用研究;20230307;第40卷(第7期);全文 * |
浙大联手之江实验室 亿级神经元类脑计算机研发成功;林洁;柯溢能;吴雅兰;;今日科技;20200920(09);全文 * |
神经元计算机操作***的资源分配方法;王凤娟 等;计算机研究与发展;20230727;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117648956A (zh) | 2024-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105930902B (zh) | 一种神经网络的处理方法、*** | |
CN112434462B (zh) | 一种模型的获取方法及设备 | |
US20190362235A1 (en) | Hybrid neural network pruning | |
CN107203807B (zh) | 神经网络加速器的片上缓存带宽均衡方法、***及其装置 | |
CN112084038B (zh) | 神经网络的内存分配方法及装置 | |
CN110728364A (zh) | 一种运算装置和运算方法 | |
WO2022068663A1 (zh) | 内存分配方法、相关设备及计算机可读存储介质 | |
CN107636638A (zh) | 通用并行计算架构 | |
CN114492782B (zh) | 基于强化学习的神经网络的片上核心编译映射方法及装置 | |
CN109819032B (zh) | 一种联合考虑基站选择与计算迁移的云机器人任务分配方法 | |
CN111176820A (zh) | 一种基于深度神经网络的边缘计算任务的分配方法及装置 | |
CN111984400A (zh) | 神经网络的内存分配方法及装置 | |
CN114580606A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN110874626B (zh) | 一种量化方法及装置 | |
CN116070682B (zh) | 神经元计算机操作***的snn模型动态映射方法及装置 | |
CN108229536A (zh) | 分类预测模型的优化方法、装置及终端设备 | |
CN105634974A (zh) | 软件定义网络中的路由确定方法和装置 | |
CN115168281B (zh) | 一种基于禁忌搜索算法的神经网络片上映射方法和装置 | |
CN113641481A (zh) | 一种采用dqn的fpga任务调度优化方法及*** | |
CN117648956B (zh) | 脉冲神经网络模型资源映射方法、装置和存储介质 | |
Ascia et al. | Networks-on-chip based deep neural networks accelerators for iot edge devices | |
CN110720095A (zh) | 通用并行计算架构 | |
Leite et al. | Cortical-inspired placement and routing: Minimizing the memory resources in multi-core neuromorphic processors | |
CN115221103A (zh) | 计算装置、数据处理方法及相关产品 | |
CN112989270A (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 |