CN112468401B - 用于类脑处理器的片上网络路由通信方法及片上网络 - Google Patents
用于类脑处理器的片上网络路由通信方法及片上网络 Download PDFInfo
- Publication number
- CN112468401B CN112468401B CN202011349475.3A CN202011349475A CN112468401B CN 112468401 B CN112468401 B CN 112468401B CN 202011349475 A CN202011349475 A CN 202011349475A CN 112468401 B CN112468401 B CN 112468401B
- Authority
- CN
- China
- Prior art keywords
- coordinate
- multicast
- node
- cur
- brain
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- 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/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
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Neurology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种用于类脑处理器的片上网络路由通信方法及片上网络,本发明方法包括根据SNN模型的神经元的交互情况,将通信频率更高的神经元划分为不同的子块映射到类脑处理器;在类脑处理器的NoC结构上为每个神经元创建了多条多播路径,类脑处理器通过处理单元PE模仿脉冲神经元的行为,当神经元产生脉冲时,处理单元PE访问本地的多播路径SRAM得到该神经元相对应的多播路径,并将多播数据包输出至多播路径,多播数据包在片上网络中传输直到此多播路径传输完成为止。本发明能有效支持基于NoC互连的类脑处理器的海量通信,又不会给NoC带来复杂的设计和存储开销。
Description
技术领域
本发明涉及类脑计算技术,具体涉及一种用于类脑处理器的片上网络路由通信方法及片上网络。
背景技术
类脑计算是指使用超大规模集成电路(Very Large Scale Integrated,VLSI)系统来模仿神经系统中呈现的神经生物学体系结构。类脑计算平台是类脑计算技术的基础设施,能够实现海神经元的计算和互连,为类脑计算算法提供运行平台。近年来在国内外有许多类脑处理器研制成功,包括IBM的TrueNorth、Intel的Loihi、瑞士神经信息研究所的DYNAPs,曼彻斯特大学的SpiNNaker和清华大学的天机等等。
片上网络(Network-on-Chip,NoC)具有灵活性,可伸缩性和低功耗等特点,是类脑计算平台多采用的一种互连体系结构。脉冲神经网络(Spiking Neural Networks,SNN)是一种类脑计算的基本算法。SNN模型中的神经元通过突触与其他神经元连接,并通过脉冲传递信息,以此来执行一系列任务。当SNN模型部署在基于NoC的类脑处理器中时,类脑计算核心将目标脉冲的地址及其他信息捆绑到一个多播数据包中,然后使用NoC的路由器(源节点)将其传输到目标节点。
SNN模型具有稀疏性的特点,即每个时间步仅有少量的神经元会产生脉冲。尽管SNN模型显示出极为稀疏的通信模式,但由于神经元拥有1000至10000的突触连接,每个产生脉冲的神经元需要产生1000至10000的多播数据包。这将导致大量多播数据包通过NoC,并可能导致NoC拥塞。受硬件资源(例如虚拟通道的数量和深度)的限制,NoC无法有效支持海量数据通信。通信期间,多播数据包之间发生资源竞争。NoC严重拥塞将增加多播数据包的平均传输延迟,这将影响系统的性能。
为了减轻NoC的通信压力,许多类脑计算平台采用基于多播机制的通信体系结构来支持神经元的芯片上和芯片间通信。SpiNNaker引入了四种路由算法来构造用于网状拓扑的多播树。这些多播树存储在片上多播路由器的路由表中。有学者为3D NoC-SNN系统提出了基于最短路径聚类的多播脉冲路由算法。他们实现了一个多播3D路由器,其中包括一个路由表,以将脉冲有效地传递给其他目的神经元。Neurogrid是一个以树状NoC结构组织的16芯片系统。它的特殊结构使其自然适用于基于树的多播路由方案。但是,这些架构分别存在一些问题。Neurogrid的特殊体系结构使其多播机制不适合其他NoC拓扑,例如基于网格的拓扑。其他架构都采用路由表在路由器中存储组播路径的详细信息,这给路由器带来了额外的设计复杂性。另外,将需要一些时间将多播路由构建到路由表中。上述问题给类脑处理器的设计和实现NoC结构带来了挑战。
因此,需要设计一种路由通信机制,使得其能够有效的支持基于NoC互连的类脑处理器的海量通信,又不会给NoC带来复杂的设计和存储开销。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种用于类脑处理器的片上网络路由通信方法及片上网络,本发明能够有效的支持基于NoC互连的类脑处理器的海量通信,又不会给NoC带来复杂的设计和存储开销。
为了解决上述技术问题,本发明采用的技术方案为:
一种用于类脑处理器的片上网络路由通信方法,包括:
1)输入SNN模型的神经元的交互情况;
2)根据SNN模型的神经元的交互情况,将通信频率更高的神经元划分为不同的子块,然后将这些子块映射到基于NoC结构的类脑处理器中;
3)在类脑处理器的NoC结构上为每个神经元创建了多条多播路径,并将这些多播路径存储在与神经元相对应的多播路径SRAM中;
4)所述类脑处理器通过处理单元PE模仿脉冲神经元的行为,当神经元产生脉冲时,处理单元PE访问本地的多播路径SRAM得到该神经元相对应的多播路径,并将多播数据包输出至多播路径,多播数据包在片上网络中传输直到此多播路径传输完成为止。
可选地,步骤1)之前还包括训练SNN模型,提取每个时间步长的脉冲行为作为神经元的交互情况的步骤。
可选地,所述SNN模型的神经元的交互情况记录有每一个脉冲对应的脉冲产生时间、源神经元、目的神经元。
可选地,步骤2)包括:
2.1)解析输入的SNN模型的神经元的交互情况,获取每一个脉冲对应的脉冲产生时间、源神经元、目的神经元;
2.2)根据SNN模型的神经元的交互情况中源神经元、目的神经元筛选出通信次数大于预设阈值的神经元划分为不同的子块;
2.3)将这些子块采用启发式算法映射到基于NoC结构的类脑处理器中。
可选地,步骤3)包括:
3.1)针对映射到基于NoC结构的类脑处理器中的子块中的神经元,针对每个源神经元的目标神经元集,根据其汉密尔顿标签将其分为高通道集合DH和低通道集合DL两个子集,然后使用k均值算法对高通道集合DH和低通道集合DL两个子集的每个源神经元的目标神经元进行聚类;
3.2)针对聚类得到的每个群集,通过哈密尔顿路径算法使用汉密尔顿标签排序;针对每个源神经元的目标神经元集,在高通道集合DH中的每个集群的多播路径的创建是沿着标签值增加的方向进行的,在低通道集合DL中的每个集群的多播路径的创建是沿着标签值减小的方向进行的,从而为每个神经元创建了多条多播路径;并将这些多播路径存储在与神经元相对应的多播路径SRAM中。
可选地,步骤4)中多播数据包包括下述字段:源节点编号SID、多播路径中的目标节点D1~DM、源节点对应的神经元编号NID、多播路径中目标节点的数量LEN和多播路径中多播数据包的其余目标节点CNT,其中源节点和目标节点是指类脑处理器的NoC结构中的处理单元PE,且多播路径中任意一个节点收到多播数据包的处理步骤包括:
S1)解析获取多播数据包中的多播路径中目标节点的数量LEN和多播路径中多播数据包的其余目标节点CNT并计算索引Index;
S2)判断多播数据包中索引Index对应的目标节点DIndex是否和当前节点匹配,若不匹配,表示当前节点不是目的节点,当前节点使用基于哈密尔顿路由算法来计算下一个输出端口,然后将多播数据包从下一个输出端口输出;若匹配,则根据多播路径中多播数据包的其余目标节点CNT的值确定下一个操作:如果CNT=1,表示这是多播路径上的最后一个目标节点,则当前节点将多播数据包传输到类脑计算核,完成传输,结束并退出;如果CNT>1,表示当前节点是多播路径上的中间节点,则当前节点将复制一个多播数据包并将其传输到当前路由器的类脑计算核,将CNT递减1,表示当前的目标节点已完成传输,然后当前节点将多播数据包继续传输下一个目标节点。
可选地,步骤S1)中计算索引Index的函数表达式为:
Index=LEN-CNT+1
上式中,LEN为多播数据包中的多播路径中目标节点的数量,CNT为多播数据包中的多播路径中多播数据包的其余目标节点。
可选地,步骤S2)中当前节点使用基于哈密尔顿路由算法来计算下一个输出端口的步骤包括:
S2.1)获取当前节点的坐标(Cur_X,Cur_Y),解析多播数据包获取当前的目的节点的坐标(Des_X,Des_Y);若当前节点的Y坐标Cur_Y是奇数,则跳转执行步骤S2.2);若当前节点的Y坐标Cur_Y是偶数,则跳转执行步骤S2.3);
S2.2)在目的节点的Y坐标Des_Y大于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X大于等于当前节点的X坐标Cur_X,则下一个输出端口为北向端口,若目的节点的X坐标Des_X小于当前节点的X坐标Cur_X,则下一个输出端口为西向端口;在目的节点的Y坐标Des_Y小于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X小于等于当前节点的X坐标Cur_X,则下一个输出端口为南向端口,若目的节点的X坐标Des_X大于当前节点的X坐标Cur_X,则下一个输出端口为东向端口;在目的节点的Y坐标Des_Y等于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X等于当前节点的X坐标Cur_X,则下一个输出端口为本地端口,若目的节点的X坐标Des_X大于等于当前节点的X坐标Cur_X,则下一个输出端口为东向端口,若目的节点的X坐标Des_X小于当前节点的X坐标Cur_X,则下一个输出端口为西向端口;
S2.3)在目的节点的Y坐标Des_Y大于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X小于等于当前节点的X坐标Cur_X,则下一个输出端口为北向端口,若目的节点的X坐标Des_X大于当前节点的X坐标Cur_X,则下一个输出端口为东向端口;在目的节点的Y坐标Des_Y小于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X大于等于当前节点的X坐标Cur_X,则下一个输出端口为南向端口,若目的节点的X坐标Des_X小于当前节点的X坐标Cur_X,则下一个输出端口为西向端口;在目的节点的Y坐标Des_Y等于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X等于当前节点的X坐标Cur_X,则下一个输出端口为本地端口,若目的节点的X坐标Des_X大于等于当前节点的X坐标Cur_X,则下一个输出端口为东向端口,若目的节点的X坐标Des_X小于当前节点的X坐标Cur_X,则下一个输出端口为西向端口。
此外,本发明还提供一种片上网络,包括多个用于模仿脉冲神经元的行为的处理单元PE和用于存储多播路径的多播路径SRAM,所述处理单元PE被编程或配置以执行所述用于类脑处理器的片上网络路由通信方法的步骤。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述用于类脑处理器的片上网络路由通信方法的计算机程序。
和现有技术相比,本发明具有下述优点:本发明包括输入SNN模型的神经元的交互情况;根据SNN模型的神经元的交互情况,将通信频率更高的神经元划分为不同的子块,然后将这些子块映射到基于NoC结构的类脑处理器中;在类脑处理器的NoC结构上为每个神经元创建了多条多播路径,并将这些多播路径存储在与神经元相对应的多播路径SRAM中;所述类脑处理器通过处理单元PE模仿脉冲神经元的行为,当神经元产生脉冲时,处理单元PE访问本地的多播路径SRAM得到该神经元相对应的多播路径,并将多播数据包输出至多播路径,多播数据包在片上网络中传输直到此多播路径传输完成为止。通过上述方式,本发明能够有效的支持基于NoC互连的类脑处理器的海量通信,又不会给NoC带来复杂的设计和存储开销。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例中SNN模型的仿真行为文件格式。
图3为本发明实施例中基于K-means算法的聚类极其优化示例。
图4为本发明实施例中多播数据包格式示意图。
图5为本发明实施例中涉及的轻量级路由器的微架构。
图6为本发明实施例中基于哈密尔顿路由的执行流程示意图。
具体实施方式
如图1所示,本实施例用于类脑处理器的片上网络路由通信方法包括:
1)阶段1:输入SNN模型的神经元的交互情况;
2)阶段2:根据SNN模型的神经元的交互情况,将通信频率更高的神经元划分为不同的子块,然后将这些子块映射到基于NoC结构的类脑处理器中;
3)阶段3:在类脑处理器的NoC结构上为每个神经元创建了多条多播路径,并将这些多播路径存储在与神经元相对应的多播路径SRAM中;
4)阶段4:类脑处理器通过处理单元PE模仿脉冲神经元的行为,当神经元产生脉冲时,处理单元PE访问本地的多播路径SRAM得到该神经元相对应的多播路径,并将多播数据包输出至多播路径,多播数据包在片上网络中传输直到此多播路径传输完成为止。
参见图1可知,本实施例中路径平衡多播机制的创建流程的3个阶段,分别是SNN仿真行为提取(阶段1)、SNN网络的映射(阶段2)、多播路径的创建(阶段3)。
本实施例中步骤1)之前还包括训练SNN模型,提取每个时间步长的脉冲行为作为神经元的交互情况的步骤。该步骤可视为阶段1的步骤。
本实施例中,SNN模型的神经元的交互情况记录有每一个脉冲对应的脉冲产生时间、源神经元、目的神经元。
在阶段2(映射)中,根据SNN模型的神经元的交互情况,将之间通信频率更高的神经元划分为一个子块。然后,将这些子块映射到类脑处理器中。
本实施例中,步骤2)包括:
2.1)解析输入的SNN模型的神经元的交互情况,获取每一个脉冲对应的脉冲产生时间、源神经元、目的神经元;
2.2)根据SNN模型的神经元的交互情况中源神经元、目的神经元筛选出通信次数大于预设阈值的神经元划分为不同的子块;
2.3)将这些子块采用启发式算法映射到基于NoC结构的类脑处理器中。
阶段2(映射)中,映射任务包含3个部分:配置文件(profile),分区(partitioning),映射(mapping)。首先从SNN软件模拟器中分析连接信息和SNN的脉冲行为。提取SNN的拓扑结构,以神经元为顶点并以突触为神经元之间的边形成图。通过分析日志文件,我们提取了神经元的脉冲轨迹。脉冲行为文件中的每条行为都显示每个脉冲的特定行为,并包含脉冲产生时间以及源和目标神经元的编号,如图2所示。然后,我们将频繁通信的神经元划分为不同的子块(例如,图1中的块1、2、3),这可以减少通过NoC的尖峰数据包的数量。最后,使用启发式算法(如模拟退火算法,但不局限于该算法)将子块映射到基于NoC的类脑处理器,以优化脉冲数据包的总跳数(Totalhops)。
本实施例中,步骤3)包括:
3.1)针对映射到基于NoC结构的类脑处理器中的子块中的神经元,针对每个源神经元的目标神经元集,根据其汉密尔顿标签将其分为高通道集合DH和低通道集合DL两个子集,然后使用k均值算法(K-means算法)对高通道集合DH和低通道集合DL两个子集的每个源神经元的目标神经元进行聚类;
3.2)针对聚类得到的每个群集,通过哈密尔顿路径算法使用汉密尔顿标签排序;针对每个源神经元的目标神经元集,在高通道集合DH中的每个集群的多播路径的创建是沿着标签值增加的方向进行的,在低通道集合DL中的每个集群的多播路径的创建是沿着标签值减小的方向进行的,从而为每个神经元创建了多条多播路径;并将这些多播路径存储在与神经元相对应的多播路径SRAM中。
在阶段3,我们使用2个子阶段在NoC结构上构建多播路径。在阶段3.1(聚类)中,根据每个源节点的目标节点集,根据其汉密尔顿标签将其分为DH(Dimension-High)和DL(Dimension-Low)两个子集。然后,我们使用k均值(K-means)算法对DH和DL子集的每个源神经元的目标神经元进行聚类。在阶段3.2(创建)中,我们对每个群集使用汉密尔顿标签排序来创建多播路径。通过以上处理,我们为每个神经元创建了多条多播传输路径。这些路径被存储在与神经元相对应的多播路径SRAM中。类脑计算核心中的每个处理单元(ProcessingElement,PE)单元都用于模仿脉冲神经元的行为。当神经元产生脉冲时,PE单元将访问本地多播路径SRAM。然后,多播路径SRAM输出与该神经元相对应的多播路径。这些数据包根据多播路径在网络上传输,直到此多播路径完成为止。源神经元的目标节点的在NoC上的分布可能非常分散。这会导致多播数据包在传输过程中穿过许多非目标节点,这不利于多播路径的创建。因此,我们使用K-means算法对每个源节点的高通道集合DH和低通道集合DL的目标节点进行聚类。它将具有相似欧几里得距离的那些目标节点分组在一起,如图3(a)中的5个集群。多播数据包可以更快地传递到彼此接近的目标节点,而无需经过许多非目标节点。但是,K-means算法不能保证每个集群中的目标节点数量达到平衡。这种情况将带来两个挑战。首先,由于过多的目标节点,这将使此多播路径过长。其次,由于硬件带宽限制,包含多播路径的数据包将被分为多个碎片。由于不同数量的数据包会给硬件设计带来一些挑战。我们假设一个数据包最多可以在NoC上携带M个目的节点。对于具有超过M个目标节点的集群,我们将这些集群中的多播路径划分为多个子路径。例如图3中的C5集群,由于目的节点过多,1条长路径被划分为2个短路径。因此,通过对这些集群的优化,各个多播路径的目的节点满足了硬件约束,并且多条组播路径的长度也得到了平衡。在哈密尔顿路径算法中,NoC中的每个节点都有一个哈密尔顿标签。与此同时,每个源节点的目标节点集将被划分为高通道(DH)和低通道(DL)子集,其中DH中的每个节点的标签值都比源节点的标签值高,而DL中的每个节点的标签值都比源节点的标签值低。在DH中的每个集群的多播路径的创建是沿着标签值增加的方向进行的,如图3(b)中的C1,C2,C3集群。在DL中的每个集群的多播路径的创建是沿着标签值减小的方向进行的,如图3(b)中的C4和C5集群。
如图4所示,本实施例步骤4)中多播数据包包括下述字段:源节点编号SID、多播路径中的目标节点D1~DM、源节点对应的神经元编号NID、多播路径中目标节点的数量LEN和多播路径中多播数据包的其余目标节点CNT,其中源节点和目标节点是指类脑处理器的NoC结构中的处理单元PE。假设一个数据包最多可以在NoC上携带M个目的节点。因此,CNT的范围为1至M。
本实施例中为每一个处理单元PE设计了一种轻量级的路由器来支持路径平衡的多播路由机制,路由器的微架构如图5所示,其结构和一般路由器结构相似,主要在于路由计算模块执行的收到多播数据包的处理步骤的实现。参见图5,多播路径中任意一个节点收到多播数据包的处理步骤包括:
S1)解析获取多播数据包中的多播路径中目标节点的数量LEN和多播路径中多播数据包的其余目标节点CNT并计算索引Index;
S2)判断多播数据包中索引Index对应的目标节点DIndex是否和当前节点匹配,若不匹配,表示当前节点不是目的节点,当前节点使用基于哈密尔顿路由(Hamilton-basedrouting)算法来计算下一个输出端口,然后将多播数据包从下一个输出端口输出;若匹配,则根据多播路径中多播数据包的其余目标节点CNT的值确定下一个操作:如果CNT=1,表示这是多播路径上的最后一个目标节点,则当前节点将多播数据包传输到类脑计算核,完成传输,结束并退出;如果CNT>1,表示当前节点是多播路径上的中间节点,则当前节点将复制一个多播数据包并将其传输到当前路由器的类脑计算核,将CNT递减1,表示当前的目标节点已完成传输,然后当前节点将多播数据包继续传输下一个目标节点。
本实施例中,步骤S1)中计算索引Index的函数表达式为:
Index=LEN-CNT+1
上式中,LEN为多播数据包中的多播路径中目标节点的数量,CNT为多播数据包中的多播路径中多播数据包的其余目标节点。
正如前文所示,本实施例使用k均值算法(K-means算法)对高通道集合DH和低通道集合DL两个子集的每个源神经元的目标神经元进行聚类;高通道集合DH和低通道集合DL两个子集中每个群集的汉密尔顿路径分别沿着标签增加和减少的路径行进。在NoC上传输数据包时,路由器必须确保以正确的方向传输数据包,以确保汉密尔顿路径的正确性。为了解决上述技术问题,本实施例中设计了一个基于哈密尔顿路由算法以支持多播数据包可以朝正确的方向移动。如图6所示,当路由器(Cur_X,Cur_Y)接收到一个数据包后,它会根据数据包中当前目的节点的坐标(Des_X,Des_Y),并通过哈密尔顿路由来决定当前数据包的传输方向。参见图6,步骤S2)中当前节点使用基于哈密尔顿路由算法来计算下一个输出端口的步骤包括:
S2.1)获取当前节点的坐标(Cur_X,Cur_Y),解析多播数据包获取当前的目的节点的坐标(Des_X,Des_Y);若当前节点的Y坐标Cur_Y是奇数,则跳转执行步骤S2.2);若当前节点的Y坐标Cur_Y是偶数,则跳转执行步骤S2.3);
S2.2)在目的节点的Y坐标Des_Y大于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X大于等于当前节点的X坐标Cur_X,则下一个输出端口为北向端口(North),若目的节点的X坐标Des_X小于当前节点的X坐标Cur_X,则下一个输出端口为西向端口(West);在目的节点的Y坐标Des_Y小于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X小于等于当前节点的X坐标Cur_X,则下一个输出端口为南向端口(South),若目的节点的X坐标Des_X大于当前节点的X坐标Cur_X,则下一个输出端口为东向端口(East);在目的节点的Y坐标Des_Y等于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X等于当前节点的X坐标Cur_X,则下一个输出端口为本地端口,若目的节点的X坐标Des_X大于等于当前节点的X坐标Cur_X,则下一个输出端口为东向端口,若目的节点的X坐标Des_X小于当前节点的X坐标Cur_X,则下一个输出端口为西向端口;
S2.3)在目的节点的Y坐标Des_Y大于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X小于等于当前节点的X坐标Cur_X,则下一个输出端口为北向端口,若目的节点的X坐标Des_X大于当前节点的X坐标Cur_X,则下一个输出端口为东向端口;在目的节点的Y坐标Des_Y小于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X大于等于当前节点的X坐标Cur_X,则下一个输出端口为南向端口,若目的节点的X坐标Des_X小于当前节点的X坐标Cur_X,则下一个输出端口为西向端口;在目的节点的Y坐标Des_Y等于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X等于当前节点的X坐标Cur_X,则下一个输出端口为本地端口,若目的节点的X坐标Des_X大于等于当前节点的X坐标Cur_X,则下一个输出端口为东向端口,若目的节点的X坐标Des_X小于当前节点的X坐标Cur_X,则下一个输出端口为西向端口。
为了对本实施例用于类脑处理器的片上网络路由通信方法进行验证,本实施例使用6个SNN模型及来验证路径平衡的多播机制的性能。
表1:6种SNN模型及其拓扑结构。
通过实验发现,与单播协议相比,使用路本实施例用于类脑处理器的片上网络路由通信方法时,执行时间可提高5.1倍,总跳数减少68.9%,最大传输延迟减少77.4%。实验结果还表明,与多路径组播路由算法相比,本实施例用于类脑处理器的片上网络路由通信方法的路径长度更加均衡。
此外,本实施例还提供一种片上网络,包括多个用于模仿脉冲神经元的行为的处理单元PE和用于存储多播路径的多播路径SRAM,该处理单元PE被编程或配置以执行前述用于类脑处理器的片上网络路由通信方法的步骤。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述用于类脑处理器的片上网络路由通信方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种用于类脑处理器的片上网络路由通信方法,其特征在于,包括:
1)输入SNN模型的神经元的交互情况;
2)根据SNN模型的神经元的交互情况,将通信频率更高的神经元划分为不同的子块,然后将这些子块映射到基于NoC结构的类脑处理器中;
3)在类脑处理器的NoC结构上为每个神经元创建了多条多播路径,并将这些多播路径存储在与神经元相对应的多播路径SRAM中;
4)所述类脑处理器通过处理单元PE模仿脉冲神经元的行为,当神经元产生脉冲时,处理单元PE访问本地的多播路径SRAM得到该神经元相对应的多播路径,并将多播数据包输出至多播路径,多播数据包在片上网络中传输直到此多播路径传输完成为止。
2.根据权利要求1所述的用于类脑处理器的片上网络路由通信方法,其特征在于,步骤1)之前还包括训练SNN模型,提取每个时间步长的脉冲行为作为神经元的交互情况的步骤。
3.根据权利要求1所述的用于类脑处理器的片上网络路由通信方法,其特征在于,所述SNN模型的神经元的交互情况记录有每一个脉冲对应的脉冲产生时间、源神经元、目的神经元。
4.根据权利要求1所述的用于类脑处理器的片上网络路由通信方法,其特征在于,步骤2)包括:
2.1)解析输入的SNN模型的神经元的交互情况,获取每一个脉冲对应的脉冲产生时间、源神经元、目的神经元;
2.2)根据SNN模型的神经元的交互情况中源神经元、目的神经元筛选出通信次数大于预设阈值的神经元划分为不同的子块;
2.3)将这些子块采用启发式算法映射到基于NoC结构的类脑处理器中。
5.根据权利要求1所述的用于类脑处理器的片上网络路由通信方法,其特征在于,步骤3)包括:
3.1)针对映射到基于NoC结构的类脑处理器中的子块中的神经元,针对每个源神经元的目标神经元集,根据其汉密尔顿标签将其分为高通道集合DH和低通道集合DL两个子集,然后使用k均值算法对高通道集合DH和低通道集合DL两个子集的每个源神经元的目标神经元进行聚类;
3.2)针对聚类得到的每个群集,通过哈密尔顿路径算法使用汉密尔顿标签排序;针对每个源神经元的目标神经元集,在高通道集合DH中的每个集群的多播路径的创建是沿着标签值增加的方向进行的,在低通道集合DL中的每个集群的多播路径的创建是沿着标签值减小的方向进行的,从而为每个神经元创建了多条多播路径;并将这些多播路径存储在与神经元相对应的多播路径SRAM中。
6.根据权利要求1所述的用于类脑处理器的片上网络路由通信方法,其特征在于,步骤4)中多播数据包包括下述字段:源节点编号SID、多播路径中的目标节点D1~DM、源节点对应的神经元编号NID、多播路径中目标节点的数量LEN和多播路径中多播数据包的其余目标节点CNT,其中源节点和目标节点是指类脑处理器的NoC结构中的处理单元PE,且多播路径中任意一个节点收到多播数据包的处理步骤包括:
S1)解析获取多播数据包中的多播路径中目标节点的数量LEN和多播路径中多播数据包的其余目标节点CNT并计算索引Index;
S2)判断多播数据包中索引Index对应的目标节点DIndex是否和当前节点匹配,若不匹配,表示当前节点不是目的节点,当前节点使用基于哈密尔顿路由算法来计算下一个输出端口,然后将多播数据包从下一个输出端口输出;若匹配,则根据多播路径中多播数据包的其余目标节点CNT的值确定下一个操作:如果CNT=1,表示这是多播路径上的最后一个目标节点,则当前节点将多播数据包传输到类脑计算核,完成传输,结束并退出;如果CNT>1,表示当前节点是多播路径上的中间节点,则当前节点将复制一个多播数据包并将其传输到当前路由器的类脑计算核,将CNT递减1,表示当前的目标节点已完成传输,然后当前节点将多播数据包继续传输下一个目标节点。
7.根据权利要求6所述的用于类脑处理器的片上网络路由通信方法,其特征在于,步骤S1)中计算索引Index的函数表达式为:
Index=LEN-CNT+1
上式中,LEN为多播数据包中的多播路径中目标节点的数量,CNT为多播数据包中的多播路径中多播数据包的其余目标节点。
8.根据权利要求7所述的用于类脑处理器的片上网络路由通信方法,其特征在于,步骤S2)中当前节点使用基于哈密尔顿路由算法来计算下一个输出端口的步骤包括:
S2.1)获取当前节点的坐标(Cur_X,Cur_Y),解析多播数据包获取当前的目的节点的坐标(Des_X,Des_Y);若当前节点的Y坐标Cur_Y是奇数,则跳转执行步骤S2.2);若当前节点的Y坐标Cur_Y是偶数,则跳转执行步骤S2.3);
S2.2)在目的节点的Y坐标Des_Y大于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X大于等于当前节点的X坐标Cur_X,则下一个输出端口为北向端口,若目的节点的X坐标Des_X小于当前节点的X坐标Cur_X,则下一个输出端口为西向端口;在目的节点的Y坐标Des_Y小于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X小于等于当前节点的X坐标Cur_X,则下一个输出端口为南向端口,若目的节点的X坐标Des_X大于当前节点的X坐标Cur_X,则下一个输出端口为东向端口;在目的节点的Y坐标Des_Y等于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X等于当前节点的X坐标Cur_X,则下一个输出端口为本地端口,若目的节点的X坐标Des_X大于等于当前节点的X坐标Cur_X,则下一个输出端口为东向端口,若目的节点的X坐标Des_X小于当前节点的X坐标Cur_X,则下一个输出端口为西向端口;
S2.3)在目的节点的Y坐标Des_Y大于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X小于等于当前节点的X坐标Cur_X,则下一个输出端口为北向端口,若目的节点的X坐标Des_X大于当前节点的X坐标Cur_X,则下一个输出端口为东向端口;在目的节点的Y坐标Des_Y小于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X大于等于当前节点的X坐标Cur_X,则下一个输出端口为南向端口,若目的节点的X坐标Des_X小于当前节点的X坐标Cur_X,则下一个输出端口为西向端口;在目的节点的Y坐标Des_Y等于当前节点的Y坐标Cur_Y的情况下:若目的节点的X坐标Des_X等于当前节点的X坐标Cur_X,则下一个输出端口为本地端口,若目的节点的X坐标Des_X大于等于当前节点的X坐标Cur_X,则下一个输出端口为东向端口,若目的节点的X坐标Des_X小于当前节点的X坐标Cur_X,则下一个输出端口为西向端口。
9.一种片上网络,包括多个用于模仿脉冲神经元的行为的处理单元PE和用于存储多播路径的多播路径SRAM,其特征在于,所述处理单元PE被编程或配置以执行权利要求1~8中任意一项所述用于类脑处理器的片上网络路由通信方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~8中任意一项所述用于类脑处理器的片上网络路由通信方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011349475.3A CN112468401B (zh) | 2020-11-26 | 2020-11-26 | 用于类脑处理器的片上网络路由通信方法及片上网络 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011349475.3A CN112468401B (zh) | 2020-11-26 | 2020-11-26 | 用于类脑处理器的片上网络路由通信方法及片上网络 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112468401A CN112468401A (zh) | 2021-03-09 |
CN112468401B true CN112468401B (zh) | 2022-05-20 |
Family
ID=74808749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011349475.3A Active CN112468401B (zh) | 2020-11-26 | 2020-11-26 | 用于类脑处理器的片上网络路由通信方法及片上网络 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112468401B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113158567B (zh) * | 2021-04-21 | 2022-05-03 | 中国人民解放军国防科技大学 | 一种液体状态机模型中通信的软硬件联合优化方法及系统 |
CN113570049B (zh) * | 2021-07-23 | 2024-05-28 | 上海新氦类脑智能科技有限公司 | 多snn芯片互联的相对寻址方法、装置、设备和介质 |
CN113472430A (zh) * | 2021-07-30 | 2021-10-01 | 中国电子科技集团公司第五十四研究所 | 一种星间路由多路径组合优化方法 |
CN113807511B (zh) * | 2021-09-24 | 2023-09-26 | 北京大学 | 一种脉冲神经网络多播路由器及方法 |
CN113822423A (zh) * | 2021-09-30 | 2021-12-21 | 上海商汤智能科技有限公司 | 调度方法、装置、计算机设备、片上网络及存储介质 |
CN114584507B (zh) * | 2022-02-23 | 2023-07-04 | 中山大学 | 基于类脑处理器的数据处理方法、路由器及网络系统 |
CN114844757B (zh) * | 2022-02-24 | 2023-11-24 | 电子科技大学长三角研究院(湖州) | 一种面向分布式并行运算类算法的片上网络设计方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809501A (zh) * | 2014-01-24 | 2015-07-29 | 清华大学 | 一种基于类脑协处理器的计算机系统 |
CN104809498A (zh) * | 2014-01-24 | 2015-07-29 | 清华大学 | 一种基于神经形态电路的类脑协处理器 |
CN106650922A (zh) * | 2016-09-29 | 2017-05-10 | 清华大学 | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统 |
CN109901878A (zh) * | 2019-02-25 | 2019-06-18 | 北京灵汐科技有限公司 | 一种类脑计算芯片及计算设备 |
CN110909869A (zh) * | 2019-11-21 | 2020-03-24 | 浙江大学 | 一种基于脉冲神经网络的类脑计算芯片 |
CN111783320A (zh) * | 2020-08-03 | 2020-10-16 | 中国人民解放军国防科技大学 | 针对指定应用的类脑处理器NoC设计空间探索方法、系统及介质 |
CN111882065A (zh) * | 2020-08-03 | 2020-11-03 | 中国人民解放军国防科技大学 | 映射脉冲神经网络到类脑计算平台的方法、系统及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9473388B2 (en) * | 2013-08-07 | 2016-10-18 | Netspeed Systems | Supporting multicast in NOC interconnect |
-
2020
- 2020-11-26 CN CN202011349475.3A patent/CN112468401B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809501A (zh) * | 2014-01-24 | 2015-07-29 | 清华大学 | 一种基于类脑协处理器的计算机系统 |
CN104809498A (zh) * | 2014-01-24 | 2015-07-29 | 清华大学 | 一种基于神经形态电路的类脑协处理器 |
CN106650922A (zh) * | 2016-09-29 | 2017-05-10 | 清华大学 | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统 |
CN109901878A (zh) * | 2019-02-25 | 2019-06-18 | 北京灵汐科技有限公司 | 一种类脑计算芯片及计算设备 |
CN110909869A (zh) * | 2019-11-21 | 2020-03-24 | 浙江大学 | 一种基于脉冲神经网络的类脑计算芯片 |
CN111783320A (zh) * | 2020-08-03 | 2020-10-16 | 中国人民解放军国防科技大学 | 针对指定应用的类脑处理器NoC设计空间探索方法、系统及介质 |
CN111882065A (zh) * | 2020-08-03 | 2020-11-03 | 中国人民解放军国防科技大学 | 映射脉冲神经网络到类脑计算平台的方法、系统及介质 |
Non-Patent Citations (3)
Title |
---|
A Memristor-Based Spiking Neural Network With High Scalability and Learning Efficiency;Lei Wang;《IEEE Transactions on Circuits and Systems II: Express Briefs》;20200311;全文 * |
Performance Evaluation of Application Mapping Approaches for Network-on-Chip Designs;Waqar Amin;《IEEE Access》;20200323;全文 * |
类脑机的思想与体系结构综述;黄铁军等;《计算机研究与发展》;20190615;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112468401A (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112468401B (zh) | 用于类脑处理器的片上网络路由通信方法及片上网络 | |
Bhatele et al. | Identifying the culprits behind network congestion | |
Trik et al. | Providing an Adaptive Routing along with a Hybrid Selection Strategy to Increase Efficiency in NoC‐Based Neuromorphic Systems | |
Yonghong et al. | A dormant multi-controller model for software defined networking | |
CN105515987B (zh) | 一种基于sdn架构面向虚拟光网络的映射方法 | |
CN111783320B (zh) | 针对指定应用的类脑处理器NoC设计空间探索方法、系统及介质 | |
Sepúlveda et al. | A multi-objective approach for multi-application NoC mapping | |
CN114492770B (zh) | 一种面向循环脉冲神经网络的类脑计算芯片映射方法 | |
US20180197110A1 (en) | Metrics to Train Machine Learning Predictor for NoC Construction | |
CN102065019A (zh) | 基于区域划分的片上网络快速ip核映射方法 | |
CN102325089A (zh) | 基于差分进化和捕食搜索策略的胖树型片上网络映射方法 | |
CN110191382B (zh) | 一种基于路径排序的虚链路优先映射方法 | |
Hofmann | Multi-Chip Dataflow Architecture for Massive Scale Biophyscially Accurate Neuron Simulation | |
Nitin et al. | Comparative analysis of traffic patterns on k-ary n-tree using adaptive algorithms based on burton normal form | |
Akbari et al. | A high-performance network-on-chip topology for neuromorphic architectures | |
Schneider et al. | An Oblivious Routing Congestion Simulator | |
Guo et al. | A novel cluster-head selection algorithm based on hybrid genetic optimization for wireless sensor networks | |
CN107528731B (zh) | 应用于ns3并行仿真的网络分割优化算法 | |
CN115618532A (zh) | 一种网络系统仿真方法及相关装置 | |
CN107404440A (zh) | 一种转发表项发送方法、报文转发方法及装置 | |
Qiu et al. | A novel ring-based small-world NoC for neuromorphic processor | |
Ye et al. | Fake it till make it: Federated learning with consensus-oriented generation | |
Villar et al. | Obtaining the optimal configuration of high-radix combined switches | |
Kang et al. | Path-based multicast routing for network-on-chip of the neuromorphic processor | |
Yanez-Marquez et al. | BDD-based algorithm for the minimum spanning tree in wireless ad-hoc network routing |
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 |