CN115879544B - 一种针对分布式类脑仿真的神经元编码方法及系统 - Google Patents

一种针对分布式类脑仿真的神经元编码方法及系统 Download PDF

Info

Publication number
CN115879544B
CN115879544B CN202310172752.5A CN202310172752A CN115879544B CN 115879544 B CN115879544 B CN 115879544B CN 202310172752 A CN202310172752 A CN 202310172752A CN 115879544 B CN115879544 B CN 115879544B
Authority
CN
China
Prior art keywords
neuron
local
thread
simulation
neurons
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
Application number
CN202310172752.5A
Other languages
English (en)
Other versions
CN115879544A (zh
Inventor
贾海波
蔡炎松
梁华驹
王俊宜
杜帅帅
陆洋
朱苗苗
喻富豪
董家欢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanhu Research Institute Of Electronic Technology Of China
Original Assignee
Nanhu Research Institute Of Electronic Technology Of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanhu Research Institute Of Electronic Technology Of China filed Critical Nanhu Research Institute Of Electronic Technology Of China
Priority to CN202310172752.5A priority Critical patent/CN115879544B/zh
Publication of CN115879544A publication Critical patent/CN115879544A/zh
Application granted granted Critical
Publication of CN115879544B publication Critical patent/CN115879544B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种针对分布式类脑仿真的神经元编码方法及系统,方法包括:接收待创建的神经元簇的神经元数目以及所在的进程号;根据输入的神经元数目计算本次创建神经元簇的局部神经元ID范围;基于局部神经元ID范围,本进程中每个线程并行初始化局部神经元ID;每个线程循环创建本线程负责的神经元,基于初始化的局部神经元ID得到本线程内每个神经元的局部神经元ID,并将局部神经元ID与进程号联合编码得到每个神经元的全局神经元ID,完成神经元簇的创建编码。本发明通过指定创建神经元簇的所在进程,减少跨计算节点或跨进程的远程通信连接,加快仿真速度。

Description

一种针对分布式类脑仿真的神经元编码方法及系统
技术领域
本发明属于类脑仿真技术领域,具体涉及一种针对分布式类脑仿真的神经元编码方法及系统。
背景技术
类脑计算继承了大脑低功耗、高并行、高容错、存算一体、事件驱动等特征,适合实时处理非结构化复杂信息,具有超高并行、超高速、超低功耗、高鲁棒等特性。目前,生物脑是世界上已知的唯一的通用智能系统,理解并借鉴仿生物脑的智能机制,近实时的仿真甚至训练复杂大规模脑仿真网络,是实现强人工智能的重要且不可替代的途径之一。其中,仿真速度与仿真规模是构建与运行大规模脑仿真网络的重要指标。
基于计算机软件的大规模脑仿真需要借助于分布式计算机集群,首先需要将大规模脑仿真网络模型拆分为多个小规模脑仿真网络模型,再分配到多个不同的计算机节点。通常每个计算节点内可以包含一个或多个进程,每个进程可以包含一个或多个线程。一个大规模的脑仿真模型通常由多个神经元簇构成,此外还有神经元之间的突触连接,这包括神经元簇内的突触连接和神经元簇间的突触连接。神经元间脉冲通信时延是大规模脑仿真中影响仿真速度的重要因素,分布式脑仿真过程中,通信时延从高到低分为跨计算节点的进程间通信、计算节点内的进程间通信、进程内通信等,所以需要合理地将脑仿真模型中的神经元簇分配到不同的计算节点、进程及线程。
一个脑仿真模型中的每个神经元通常由一个全局ID标识,分布式脑仿真中需要考虑为神经元分配全局唯一ID。基于CPU硬件平台的分布式脑仿真系统通常使用多进程及多线程技术来加速脑仿真,因此,分布式脑仿真中的神经元ID的分配需要考虑其与进程、线程的关系。
NEST是欧洲脑计划(Human Brain Project)主要使用的脑仿真模拟器,是一个CPU平台下支持大规模分布式脑仿真的框架,但其创建神经元簇时不支持指定进程号。NEST创建神经元编码时会按照创建顺序分配一个全局神经元ID,然后按照顺序轮询分配在所有进程的线程上,因此一个神经元簇的神经元会分布到整个分布式系统的所有进程和线程上。这样导致无论是神经元簇内有连接还是神经元簇间有连接,都会导致所有分布式计算节点或进程间进行通信,较多的跨计算节点或跨进程的通信时延会限制仿真速度。
NeuronGPU是一个适用于模拟大规模脉冲神经网络的GPU库,支持多进程分布式仿真,每个进程对应一个GPU,神经元编码方式采用在进程内按照顺序分配局部神经元ID。由于NeuronGPU的神经元ID是进程内的局部ID,并非全局ID,因此NeuronGPU跨计算节点或跨进程的通信连接需要通过代理神经元实现,即每个本地进程中都存在所有其他进程上的神经元的代理,远程神经元与代理神经元通过一个映射表实现一一映射。然而当网络规模变大时,由于代理神经元的存在,会导致内存消耗成倍增加,且仿真时的每次远程通信需要查找映射表索引指定的神经元,导致仿真速度变慢。
发明内容
本发明的目的之一在于提供一种针对分布式类脑仿真的神经元编码方法,通过指定创建神经元簇的所在进程,减少跨计算节点或跨进程的远程通信连接,加快仿真速度。
为实现上述目的,本发明所采取的技术方案为:
一种针对分布式类脑仿真的神经元编码方法,所述针对分布式类脑仿真的神经元编码方法,包括:
接收待创建的神经元簇的神经元数目以及所在的进程号;
根据输入的神经元数目计算本次创建神经元簇的局部神经元ID范围;
基于局部神经元ID范围及进程中的线程数和线程号,本进程中每个线程并行初始化各自的局部神经元ID;
每个线程循环创建本线程负责的神经元,基于初始化的局部神经元ID得到本线程内每个神经元的局部神经元ID,并将局部神经元ID与进程号联合编码得到每个神经元的全局神经元ID,完成神经元簇的创建编码。
以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。
作为优选,还包括初始化用于存储神经元的二维列表,第一维大小为进程中的线程数,以线程号为索引。
作为优选,所述根据输入的神经元数目计算本次创建神经元簇的局部神经元ID范围,包括:
Figure SMS_1
Figure SMS_2
式中,min_id为局部神经元ID范围的最小值,max_id为局部神经元ID范围的最大值,local_max_id为本进程内的最大局部神经元ID,n为神经元数目。
作为优选,所述本进程内的最大局部神经元ID初始化为0。
作为优选,完成一个神经元簇的创建编码后,将本进程内所有线程计算的局部神经元ID的最大值更新为最大局部神经元ID。
作为优选,所述本进程中每个线程并行初始化各自的局部神经元ID,包括:
Figure SMS_3
Figure SMS_4
式中,min_id_thread为分配了局部神经元ID范围的最小值的神经元所在线程的线程号,min_id为局部神经元ID范围的最小值,num_threads为本进程内的线程数,neu_id为初始化得到的局部神经元ID,t为本线程的线程号。
作为优选,所述基于初始化的局部神经元ID得到本线程内每个神经元的局部神经元ID,包括:
Figure SMS_5
式中,i_neu_id为针对当前神经元簇本线程创建的第i个神经元的局部神经元ID,所述局部神经元ID位于所述局部神经元ID范围内,neu_id为初始化得到的局部神经元ID,num_threads为本进程内的线程数,i为正整数,且
Figure SMS_6
,max_id为局部神经元ID范围的最大值,floor表示向下取整运算。
作为优选,一个进程负责创建一个或多个神经元簇。
作为优选,使用无符号整型数表示全局神经元ID,将无符号整型数按位划分,高位部分存储进程号,低位部分存储对应神经元的局部神经元ID。
本发明提供的一种针对分布式类脑仿真的神经元编码方法,与现有技术相比,具有以下有益效果:
1)本发明将局部神经元ID与进程号、线程号统一编码,编码后的全局神经元ID可以快速索引到具体神经元位置。进程号可以通过位运算取全局神经元ID的高位得到,线程号可以通过局部神经元ID与线程数取模计算得到,神经元在存储列表内的位置索引可以通过局部神经元ID与线程数计算得到,无需代理神经元,可实现快速索引神经元。
2)本发明支持创建神经元簇时指定进程号,且远程突触连接无需代理神经元,全局神经元ID可标识唯一神经元。神经元簇内的连接无远程连接,支持根据仿真模型的神经元簇间的连接情况,合理地将神经元簇分配到分布式集群的不同计算节点或进程上,进一步减少远程连接的比例,进而加快仿真速度。
本发明的目的之二在于提供一种针对分布式类脑仿真的神经元编码系统,通过指定创建神经元簇的所在进程,减少跨计算节点或跨进程的远程通信连接,加快仿真速度。
为实现上述目的,本发明所采取的技术方案为:
一种针对分布式类脑仿真的神经元编码系统,包括处理器以及存储有若干计算机指令的存储器,所述计算机指令被处理器执行时实现所述针对分布式类脑仿真的神经元编码方法的步骤。
附图说明
图1为本发明实施例1中针对分布式类脑仿真的神经元编码方法的流程图;
图2为本发明全局神经元ID的一个划分方式示意图;
图3为本发明实施例2中针对分布式类脑仿真的神经元编码方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本发明。
本实施例所要实现的是在分布式脑仿真情形下,通过指定创建神经元簇的所在进程,减少跨计算节点或跨进程的远程通信连接,加快仿真速度。本实施例基于全局神经元ID,建立与进程、线程之间的特定关系,实现无需代理神经元就可以快速索引到指定神经元。
实施例1
如图1所示,本实施例的一种针对分布式类脑仿真的神经元编码方法,包括以下步骤:
S1、接收待创建的神经元簇的神经元数目以及所在的进程号。
为了减少跨计算节点或跨进程的远程通信连接,本实施例支持指定创建神经元簇的所在进程。一个进程负责创建一个或多个神经元簇,为了便于描述,本实施例以一个进程创建一个神经元簇为例进行说明。
每个神经元簇具有各自的神经元参数,包括神经元数目、种类、参数等信息,本实施例在创建计算中主要用到神经元数目,因此本实施例主要基于神经元数目展开描述,但是不限定在创建神经元时仅用到神经元数目。
当进程接收到输入的进程号并非本进程的进程号时,即结束对该神经元簇的创建,保证在对应进程创建神经元簇。
为了便于神经元的存储,本实施例事先初始化一个用于存储神经元的二维列表,该二维列表的第一维大小为进程中的线程数,以线程号为索引,线程所创建的神经元存储在二维列表对应线程号的行或列中,该二维列表的第二维为神经元在对应线程号的行或列中的位置索引。由于每个线程创建的神经元数目可能不同,因此线程号对应的行或列中的实际元素个数可能不同。并且一个进程维护一个二维列表。
S2、根据输入的神经元数目计算本次创建神经元簇的局部神经元ID范围。
为了合理分配局部神经元ID,本实施例首先计算局部神经元ID范围如下:
Figure SMS_7
Figure SMS_8
式中,min_id为局部神经元ID范围的最小值,max_id为局部神经元ID范围的最大值,local_max_id为本进程内的最大局部神经元ID,n为神经元数目。
其中,进程内的最大局部神经元ID在进程开始运行时初始化为0,并在完成一个神经元簇的创建编码后,将本进程内所有线程计算的局部神经元ID的最大值更新为最大局部神经元ID。最大局部神经元ID的更新维护,可避免一个进程创建多个神经元簇时出现局部神经元ID重复的现象。
S3、基于局部神经元ID范围及进程中的线程数和线程号,本进程中每个线程并行初始化各自的局部神经元ID。
本实施例中初始化局部神经元ID的本质是计算本线程内首个创建的神经元的局部神经元ID,具体计算过程如下:
Figure SMS_9
Figure SMS_10
式中,min_id_thread为分配了局部神经元ID范围的最小值的神经元所在线程的线程号,min_id为局部神经元ID范围的最小值,num_threads为本进程内的线程数,neu_id为初始化得到的局部神经元ID,t为本线程的线程号。本实施例初始化局部神经元ID时,将线程号融入局部神经元ID,以便于后期对神经元的位置查找。
S4、每个线程循环创建本线程负责的神经元,基于初始化的局部神经元ID得到本线程内每个神经元的局部神经元ID,并将局部神经元ID与进程号联合编码得到每个神经元的全局神经元ID,完成神经元簇的创建编码。
一个线程需要创建一个或多个神经元,因此进程中所有线程并行运行,每个线程循环创建神经元,以提高神经元创建速度。需要说明的是,线程根据神经元参数创建神经元的过程为现有过程,本实施例中不进行赘述,本实施例重点在于神经元编码管理,对于神经元本身的具体创建过程不做限制。
本线程内每个神经元的局部神经元ID计算如下:
Figure SMS_11
式中,i_neu_id为针对当前神经元簇本线程创建的第i个神经元的局部神经元ID,所述局部神经元ID位于所述局部神经元ID范围内,neu_id为初始化得到的局部神经元ID,num_threads为本进程内的线程数。此处的i应理解为当前神经元簇下该线程创建的第i个神经元,每个神经元簇下每个线程内的i均初始化为1,i为正整数,且
Figure SMS_12
,floor表示向下取整运算。
由于局部神经元ID的计算中应用了线程号,同时在形成全局神经元ID时融合了局部神经元ID和进程号,因此本实施例将局部神经元ID与进程号、线程号统一编码,编码后的全局神经元ID可以快速索引到具体神经元位置。
本实施例使用无符号整型数表示全局神经元ID,将无符号整型数按位划分,高位部分存储进程号,低位部分存储对应神经元的局部神经元ID。
如图2所示,一个64位的无符号整型数的位划分中,最右侧的低44位作为局部神经元ID,左侧高20位作为进程号,在其他实施例中,具体位划分可根据需求自定义。
基于本实施例全局神经元ID的编码方式,进程号可以通过位运算取神经元ID的高位得到,线程号可以通过局部神经元ID与线程数取模计算得到,神经元在存储列表内的位置索引可以通过局部神经元ID与线程数计算得到。计算公式如下:
进程号: rank_id = 位运算取高位(global_neu_id)。
局部神经元ID: local_neu_id = 位运算取低位(global_neu_id)。
线程号: t = local_neu_id % num_threads。
位置索引: idx = ceil(local_neu_id / num_threads) – 1。
其中,rank_id为进程号,global_neu_id为全局神经元ID,local_neu_id为局部神经元ID,t为线程号,num_threads为本进程内的线程数,idx为位置索引,ceil表示向上取整运算。神经元在所存储的二维列表的两级索引为t和idx。通过简单计算就可快速索引到神经元。本实施例统一由local_neu_id表示待索引的神经元的局部神经元ID,以区分编码过程中的符号i_neu_id和neu_id。
本实施例公开了一种针对分布式脑仿真的神经元编码方法,该方法支持创建神经元时指定所在进程,从而网络模型构建者可以根据神经元簇的连接关系将连接紧密的神经元簇放在同一个计算节点或同一个进程内,以此减少跨计算节点或跨进程的通信连接。
实施例2
考虑一个进程负责创建多个神经元簇的情况下,本实施例提供一种针对分布式类脑仿真的神经元编码方法如图3所示,对于一个进程而言具体步骤如下:
A1:初始化存储神经元的二维列表,第一维大小是本进程的线程数,第二维是位置索引。每个线程负责创建神经元,以线程号为索引将神经元存入此二维列表的相应位置。
A2:初始化本进程所保存的最大局部神经元ID为0,每个进程单独维护此变量,以此来分配本进程之后的局部神经元ID范围。
A3:判断是否完成本进程下所有神经元簇的创建,若完成则无需创建神经元簇并结束,否则继续执行。
A4:接收输入的神经元数目和进程号,当然还可以包含其他信息,例如神经元种类、参数等。
A5:判断输入的进程号是否是本进程的进程号,若是则继续执行,否则返回步骤A3执行。
A6:根据输入的神经元数目和目前本进程内最大局部神经元ID,计算此次创建的局部神经元ID范围。
A7:在神经元簇创建中每个线程并行创建其负责的神经元,首先每个线程计算出本线程需要创建的首个神经元的局部神经元ID,即初始化局部神经元ID。
A8:每个线程循环创建此线程负责的神经元,根据进程号和局部神经元ID通过位运算编码全局神经元ID,并赋值给神经元后将神经元存入神经元列表,该部分伪代码如下:
while(neu_id<= max_id) {
Neuron neu = new Neuron(); //实例化神经元对象
uint global_neu_id = BitOps(neu_id, rank_id); //通过位操作,将局部神经元ID与进程号联合编码得到全局神经元ID
neu.global_id = global_neu_id; //将全局神经元ID赋值给对应神经元的全局神经元ID
local_neurons[t].Append(neu); //将神经元对象存入本线程对应的二维列表的第t维中
neu_id += num_threads; } //更新局部神经元ID
其中,neu_id为神经元的局部神经元ID,rank_id为进程号,global_neu_id为全局神经元ID,local_neurons是存储神经元对象的二维列表。需要说明的是,伪代码中并未区分neu_id和i_neu_id,而且以累加更新的方式使neu_id既作为初始化的局部神经元ID,又作为每个神经元的局部神经元ID,其表意与区分表示相同。
A9:待所有线程创建完成所有神经元后,更新本进程内最大局部神经元ID,并返回A3执行。
需要说明的是,本实施例中对于一种针对分布式类脑仿真的神经元编码方法的具体限定可参见实施例1中对于一种针对分布式类脑仿真的神经元编码方法的限定,本实施例不进行赘述。
实施例3
分布式脑仿真网络规模大,分布于不同计算节点或进程的神经元间如果有突触连接则需要远程通信,而通信时延是影响分布式脑仿真速度的重要因素。
NEST创建神经元簇时不支持指定进程号,将神经元轮询地创建在所有进程的线程上,导致一个神经元簇分布于各个节点或进程上,神经元簇内的远程连接比例较高。NeuronGPU支持指定进程号创建神经元簇,但是需要在本地创建代理神经元来表示远程神经元,且代理神经元与远程神经元需要映射表。
本发明针对上述问题,提供了一套神经元ID编码方案,支持指定进程号创建神经元簇,且无需代理神经元。本发明将局部神经元ID与进程号、线程号统一编码,可快速索引神经元。本发明方案可减少远程连接的比例,加快仿真效率。以下通过试验来进一步说明。
试验描述:本试验基于CPU平台,在6个计算节点上进行,每个计算节点启动1个进程、4个线程,共24个线程;脑仿真模型中共6个神经元簇,每个神经元簇包含1万或10万LIF(Leaky integrate and fire)神经元,突触连接模式为固定连接数,具体数目见表1。仿真生物时间1秒,每秒1000时间步。
本试验对比方法为轮询编码分配方案(简称轮询编码),本发明方法(简称本方法)将每个进程分配1个神经元簇,仿真结果对比见表1。
表1 脑仿真结果
Figure SMS_13
表1中结果表明本试验通过本发明提供的新的神经元编码方法可以加快分布式脑仿真情形下的仿真速度,具体对应表1中进程数为6的试验数据,平均仿真时间减少30%。单进程情形下仿真速度差异不明显,原因在于没有远程突触连接。
实施例4
提供了一种针对分布式类脑仿真的神经元编码系统,包括处理器以及存储有若干计算机指令的存储器,所述计算机指令被处理器执行时实现所述针对分布式类脑仿真的神经元编码方法的步骤。
关于针对分布式类脑仿真的神经元编码系统的具体限定可以参见上文中对于针对分布式类脑仿真的神经元编码方法的限定,在此不再赘述。
存储器和处理器之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件互相之间可以通过一条或多条通讯总线或信号线实现电性连接。存储器中存储有可在处理器上运行的计算机程序,所述处理器通过运行存储在存储器内的计算机程序,从而实现本发明实施例中的方法。
其中,所述存储器可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器用于存储程序,所述处理器在接收到执行指令后,执行所述程序。
所述处理器可能是一种集成电路芯片,具有数据的处理能力。上述的处理器可以是通用处理器,包括中央处理器 (Central Processing Unit,CPU)、网络处理器 (NetworkProcessor,NP)等。可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。

Claims (10)

1.一种针对分布式类脑仿真的神经元编码方法,其特征在于,所述针对分布式类脑仿真的神经元编码方法,包括:
接收待创建的神经元簇的神经元数目以及所在的进程号;
根据输入的神经元数目计算本次创建神经元簇的局部神经元ID范围;
基于局部神经元ID范围及进程中的线程数和线程号,本进程中每个线程并行初始化各自的局部神经元ID;
每个线程循环创建本线程负责的神经元,基于初始化的局部神经元ID得到本线程内每个神经元的局部神经元ID,并将局部神经元ID与进程号联合编码得到每个神经元的全局神经元ID,完成神经元簇的创建编码。
2.如权利要求1所述的针对分布式类脑仿真的神经元编码方法,其特征在于,还包括初始化用于存储神经元的二维列表,第一维大小为进程中的线程数,以线程号为索引。
3.如权利要求1所述的针对分布式类脑仿真的神经元编码方法,其特征在于,所述根据输入的神经元数目计算本次创建神经元簇的局部神经元ID范围,包括:
Figure QLYQS_1
Figure QLYQS_2
式中,min_id为局部神经元ID范围的最小值,max_id为局部神经元ID范围的最大值,local_max_id为本进程内的最大局部神经元ID,n为神经元数目。
4.如权利要求3所述的针对分布式类脑仿真的神经元编码方法,其特征在于,所述本进程内的最大局部神经元ID初始化为0。
5.如权利要求3所述的针对分布式类脑仿真的神经元编码方法,其特征在于,完成一个神经元簇的创建编码后,将本进程内所有线程计算的局部神经元ID的最大值更新为最大局部神经元ID。
6.如权利要求1所述的针对分布式类脑仿真的神经元编码方法,其特征在于,所述本进程中每个线程并行初始化各自的局部神经元ID,包括:
Figure QLYQS_3
Figure QLYQS_4
式中,min_id_thread为分配了局部神经元ID范围的最小值的神经元所在线程的线程号,min_id为局部神经元ID范围的最小值,num_threads为本进程内的线程数,neu_id为初始化得到的局部神经元ID,t为本线程的线程号。
7.如权利要求1所述的针对分布式类脑仿真的神经元编码方法,其特征在于,所述基于初始化的局部神经元ID得到本线程内每个神经元的局部神经元ID,包括:
Figure QLYQS_5
式中,i_neu_id为针对当前神经元簇本线程创建的第i个神经元的局部神经元ID,所述局部神经元ID位于所述局部神经元ID范围内,neu_id为初始化得到的局部神经元ID,num_threads为本进程内的线程数,i为正整数,且
Figure QLYQS_6
,max_id为局部神经元ID范围的最大值,floor表示向下取整运算。
8.如权利要求1所述的针对分布式类脑仿真的神经元编码方法,其特征在于,一个进程负责创建一个或多个神经元簇。
9.如权利要求1所述的针对分布式类脑仿真的神经元编码方法,其特征在于,使用无符号整型数表示全局神经元ID,将无符号整型数按位划分,高位部分存储进程号,低位部分存储对应神经元的局部神经元ID。
10.一种针对分布式类脑仿真的神经元编码系统,包括处理器以及存储有若干计算机指令的存储器,其特征在于,所述计算机指令被处理器执行时实现权利要求1至权利要求9中任意一项所述针对分布式类脑仿真的神经元编码方法的步骤。
CN202310172752.5A 2023-02-28 2023-02-28 一种针对分布式类脑仿真的神经元编码方法及系统 Active CN115879544B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310172752.5A CN115879544B (zh) 2023-02-28 2023-02-28 一种针对分布式类脑仿真的神经元编码方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310172752.5A CN115879544B (zh) 2023-02-28 2023-02-28 一种针对分布式类脑仿真的神经元编码方法及系统

Publications (2)

Publication Number Publication Date
CN115879544A CN115879544A (zh) 2023-03-31
CN115879544B true CN115879544B (zh) 2023-06-16

Family

ID=85761701

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310172752.5A Active CN115879544B (zh) 2023-02-28 2023-02-28 一种针对分布式类脑仿真的神经元编码方法及系统

Country Status (1)

Country Link
CN (1) CN115879544B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117540783A (zh) * 2024-01-09 2024-02-09 之江实验室 仿真脑活动数据的生成方法、装置、电子装置和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013047972A (ja) * 2012-10-19 2013-03-07 A Visel Thomas 人間の脳の電子的なエミュレーションに心理学的な気質を取り入れるための方法
WO2021000890A1 (zh) * 2019-07-02 2021-01-07 深圳忆海原识科技有限公司 用于类脑智能与认知计算的脉冲神经网络运算系统及方法
CN112364988A (zh) * 2020-11-12 2021-02-12 天津大学 一种基于fpga的分层异构类脑计算系统
CN112651502A (zh) * 2020-12-16 2021-04-13 中山大学 一种并行化类脑仿真的加速方法
CN114008635A (zh) * 2019-06-27 2022-02-01 亚马逊技术股份有限公司 神经网络逐层调试
CN114022949A (zh) * 2021-09-27 2022-02-08 中国电子科技南湖研究院 一种基于运动模型的事件相机运动补偿方法及装置
WO2022099557A1 (zh) * 2020-11-11 2022-05-19 浙江大学 一种类脑计算机操作系统的神经信息可视化方法
WO2022183921A1 (zh) * 2021-03-01 2022-09-09 浙江大学 一种类脑计算机操作系统的神经模型映射方法
CN115271058A (zh) * 2022-09-29 2022-11-01 北京芯可鉴科技有限公司 类脑计算芯片和数据处理终端

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013047972A (ja) * 2012-10-19 2013-03-07 A Visel Thomas 人間の脳の電子的なエミュレーションに心理学的な気質を取り入れるための方法
CN114008635A (zh) * 2019-06-27 2022-02-01 亚马逊技术股份有限公司 神经网络逐层调试
WO2021000890A1 (zh) * 2019-07-02 2021-01-07 深圳忆海原识科技有限公司 用于类脑智能与认知计算的脉冲神经网络运算系统及方法
WO2022099557A1 (zh) * 2020-11-11 2022-05-19 浙江大学 一种类脑计算机操作系统的神经信息可视化方法
CN112364988A (zh) * 2020-11-12 2021-02-12 天津大学 一种基于fpga的分层异构类脑计算系统
CN112651502A (zh) * 2020-12-16 2021-04-13 中山大学 一种并行化类脑仿真的加速方法
WO2022183921A1 (zh) * 2021-03-01 2022-09-09 浙江大学 一种类脑计算机操作系统的神经模型映射方法
CN114022949A (zh) * 2021-09-27 2022-02-08 中国电子科技南湖研究院 一种基于运动模型的事件相机运动补偿方法及装置
CN115271058A (zh) * 2022-09-29 2022-11-01 北京芯可鉴科技有限公司 类脑计算芯片和数据处理终端

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Brief History of Simulation Neuroscience;Xue Fan etal.;《frontiers in Neuroinformatics》;全文 *
基于异构计算平台的 类脑仿真器设计与实现;朱铮皓等;《微电子学与计算机》;第第39卷卷(第第7期期);全文 *

Also Published As

Publication number Publication date
CN115879544A (zh) 2023-03-31

Similar Documents

Publication Publication Date Title
US10685286B1 (en) Automated neural network generation using fitness estimation
US10482389B2 (en) Parallel development and deployment for machine learning models
CN107330560B (zh) 一种考虑时序约束的异构飞行器多任务协同分配方法
CN115879544B (zh) 一种针对分布式类脑仿真的神经元编码方法及系统
CN108399105B (zh) 一种基于改进头脑风暴算法的软硬件划分方法
CN108304925B (zh) 一种池化计算装置及方法
CN111708641A (zh) 一种内存管理方法、装置、设备及计算机可读存储介质
CN114281521A (zh) 优化深度学习异构资源通信效率方法、系统、设备及介质
CN109214515A (zh) 一种深度神经网络推理方法及计算设备
Chen et al. A new multiobjective evolutionary algorithm for community detection in dynamic complex networks
CN117271101A (zh) 一种算子融合方法、装置、电子设备及存储介质
CN116644804B (zh) 分布式训练系统、神经网络模型训练方法、设备和介质
CN113033806A (zh) 一种训练深度强化学习模型的方法、装置以及调度方法
CN116151384B (zh) 量子电路处理方法、装置及电子设备
US10484249B1 (en) Dynamic distribution of simulation load
CN115422486B (zh) 基于人工智能的云服务在线页面优化方法及大数据系统
US20230259737A1 (en) Integrated computing apparatus, chip, board card, device and computing method
WO2016122636A1 (en) Updates to a prediction model using statistical analysis groups
CN111178529B (zh) 数据处理方法、装置、电子设备及可读存储介质
CN113672232A (zh) 程序编译方法和装置
CN110795075B (zh) 用于软件编程的数据处理方法及装置
Gozali et al. A dual dynamic migration policy for island model genetic algorithm
CN112633489B (zh) 一种查找表lut的合并方法、装置及设备
CN109933858B (zh) 配电网分核并行仿真方法
CN112181642B (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