CN116341604A - 硬件平台及其构建脑仿真网络的方法及存储介质 - Google Patents
硬件平台及其构建脑仿真网络的方法及存储介质 Download PDFInfo
- Publication number
- CN116341604A CN116341604A CN202310229310.XA CN202310229310A CN116341604A CN 116341604 A CN116341604 A CN 116341604A CN 202310229310 A CN202310229310 A CN 202310229310A CN 116341604 A CN116341604 A CN 116341604A
- Authority
- CN
- China
- Prior art keywords
- neuron
- cluster
- synapse
- network
- list
- 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.)
- Pending
Links
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/004—Artificial life, i.e. computing arrangements simulating life
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- 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)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种硬件平台及其构建脑仿真网络的方法。该构建脑仿真网络的方法,适用于存储第一通信规则的硬件平台,包括:初始化硬件平台;虚拟创建所述硬件平台的脑仿真网络,其中,所述脑仿真网络包括神经元簇和突触;按照第一通信规则对所述神经元簇分配进程,并利用所述进程实际创建所述脑仿真网络。通过本发明的方案,可以提高脑仿真网络的创建速度,降低通信量,加快仿真速度,快速拿到网络快照信息。
Description
技术领域
本发明涉及仿真技术领域,尤其是涉及硬件平台及其构建脑仿真网络的方法及存储介质。
背景技术
脑仿真就是通过计算机对大脑的微观单元(神经元、突触、离子通道等)进行建模,从而构建复杂的神经网络系统,模拟神经信号从产生到传递到运动行为的功能和过程。通过模仿人脑建造接近乃至超越人类智能的机器是人类的一个朴素理念,然而计算机仿真大规模的神经元需要消耗大量资源,所以在构建脑仿真网络时,充分合理利用计算资源尤为重要。
当前,脑仿真平台主要有NEURON平台、GENESIS平台、NEST平台和NiMiBrainCloud平台。作为支持大规模脑仿真的NEST平台,基于CPU(central processing unit,中央处理器)超算的并行计算架构,如图1所示,在接口层实际创建神经元、突触,在硬件内核层由硬件平台实际创建,提出在创建神经元簇时,使神经元簇中的神经元平均分配到各进程中,能尽量做到资源均衡使用。然而,NEST平台随着脑仿真任务规模的不断地扩大,神经元和突触占用内存过大,导致仿真耗时较长;实际创建脑仿真网络时,无法在每个机器节点重新分配创建数量;如果想生成网络快照文件,则需要等待脑仿真网络实际构建完成,导致生成网络快照文件将会困难。
因此,如何快速构建脑仿真网络,充分合理利用计算资源是本发明要解决的问题。
发明内容
本发明的目的在于提供一种硬件平台及其构建脑仿真网络的方法,一方面能够快速的虚拟构建网络,虚拟构建网络完成后,可以拿到整个网络信息,对整个网络利用资源分配算法做资源分配,最终达到降低通信量、加快仿真速度的目的;另一方面可以快速拿到大规模网络的快照信息,而不需要等到实际的网络构建完成,产生的网络快照文件可以下次加载网络模型使用,也可以应用到不同的平台,可移植性强,较好的实现了快速构建脑仿真网络,充分合理利用计算资源的有益效果。
根据本发明的一方面,至少一个实施例提供了一种构建脑仿真网络的方法,适用于存储第一通信规则的硬件平台,包括:初始化硬件平台;虚拟创建所述硬件平台的脑仿真网络,其中,所述脑仿真网络包括神经元簇和突触;按照第一通信规则对所述神经元簇分配进程,并利用所述进程实际创建所述脑仿真网络。
根据本发明的另一方面,至少一个实施例还提供了一种硬件平台,包括:处理器,适于实现各指令;以及存储器,适于存储多条指令,所述指令适于由处理器加载并执行上述构建脑仿真网络的方法。
根据本发明的另一方面,至少一个实施例还提供了一种脑仿真系统,包括:本发明上述硬件平台。
根据本发明的另一方面,至少一个实施例还提供了一种计算机可读的非易失性存储介质,存储计算机程序指令,当所述计算机执行所述程序指令时,执行本发明上述构建脑仿真网络的方法。
通过本发明上述实施例,对神经元、突触虚拟创建时,不会实际占用大量内存或显存,创建较为迅速,创建时间较为稳定,不会随着网络规模增大而增多;脑仿真网络构建完成后,再对整个网络做合理的资源分配,每个进程实际创建指定的神经元簇,以达到降低通信量、加快仿真速度的有益效果;可以快速拿到网络快照信息,而不需要等到实际的脑仿真网络构建完成,此网络快照信息可用于恢复网络。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中的NEST平台架构示意图;
图2是根据本发明实施例的脑仿真系统示意图;
图3是根据本发明实施例的硬件平台示意图;
图4是根据本发明实施例的构建脑仿真网络的方法流程图;
图5是根据本发明实施例的脑仿真系统架构示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
一直以来,对大脑的研究主要依靠实验手段,在不同的时空尺度上对大脑组织进行观察。近年来,以深度学习(Deep Learning)为代表的受脑启发的人工智能(Brain-Inspired AI,BI-AI)技术在应用领域得到快速发展,但发展瓶颈也得到突显。如何发展更具大脑或类似大脑功能的人工智能(也称通用人工智能,或类脑智能,或强智能,或Brain-Like AI)成为下一代人工智能技术的核心问题,计算神经科学正在成为解决这一核心问题的重要基石。鉴于任何大脑工作原理的理论和猜测,主要通过计算神经科学实验平台-脑仿真平台上得以实现才能得到认可,因此迫切的需要强化脑仿真平台的研究。
在研究脑仿真平台的过程中,发现脑仿真平台在支持大规模的脑仿真网络时,由于神经元簇数量较多,突触数量巨大,在硬件平台实际创建时需要消耗大量内存和时间,故生成网络快照信息需要等待时间较长;且一旦实际创建,便不可以重新做资源调整,以适应最优的通信规则;由于网络较大,暂存网络变得困难,无法再次加载网络和多平台移植。
例如,NEST平台在收到创建神经元簇的指令后,会把神经元平均分配到多个进程来创建,这样会有一个缺点,神经元簇内的神经元之间的通信会跨多个进程,由于进程内通信比跨进程要快的多,所以跨进程通信的次数越多,通信成本越大,耗时也会更多。同时,簇与簇之间的通信也是同样的道理,两个联系紧密的神经元簇如果分配到同一个进程,会很大程度上降低通信量,但在NEST框架中,每个神经元簇都是分散在各进程的,更不可能把两个神经元簇放在同一个进程,就会导致通信量增加,仿真速度变慢。在该NEST平台如果想暂存网络,则需要等待网络实际构建完成,在大规模场景下,构建网络需要消耗大量的资源且耗时较长,暂存网络变得困难,且整个网络巨大,存储也会消耗大量资源和时间。因此,如何快速构建脑仿真网络,充分合理利用计算资源迫切的需要去解决。
基于此,本发明提供了一种脑仿真系统,该脑仿真系统通过虚拟创建神经元、突触,不仅可快速创建脑仿真网络,还占用很少的物理资源;虚拟构建脑仿真网络完成,得到全局网络信息后对整个网络做资源分配,最终达到神经元簇之间的全局通信量最小、加快仿真速度的目的;定义了一种在内存中虚拟创建脑仿真网络的格式;定义了一种可暂存脑仿真网络的文件格式;可快速生成大规模网络的网络快照信息,生成时间较快,不会随网络规模增大而增加,此网络快照信息可应用到不同的硬件平台;可通过加载网络快照信息恢复网络。可选的,该脑仿真系统可以包括如图2所示环境,该环境可以包括硬件环境和网络环境。上述硬件环境包括硬件平台100和服务器200,该硬件平台100可以通过相应的指令操作该服务器200,从而可以读取、改变、添加数据等。
该硬件平台100可以为一个或多个,也可以包括多个处理节点,该多个处理节点对外可以作为一个整体。可选的,该硬件平台100也可将获取到的数据发送至服务器200,以使服务器200执行本发明构建脑仿真网络的方法。可选的,该硬件平台100可以通过网络与服务器200连接。上述网络包括有线网络和无线网络。该无线网络包括但不限于:广域网、城域网、局域网或移动数据网络。典型地,该移动数据网络包括但不局限于:全球移动通信(GSM)网络、码分多址(CDMA)网络、宽带码分多址(WCDMA)网络、长期演进(LTE)通信网络、WIFI网络、ZigBee网络、基于蓝牙技术的网络等。不同类型的通信网络可能由不同的运营商运营。通信网络的类型不构成对本发明实施例的限制。
该硬件平台100通过神经元、突触虚拟创建的方式,快速的构建出整个脑仿真网络模型,并且构建时间比较稳定,不会随网络规模增大而变化,构建完成后再对整个脑仿真网络做资源分配,指定进程去实际创建神经元和突触,以达到降低通信量、加快仿真速度的目的。同时,由于硬件平台100虚拟构建网络较快,则可以快速拿到网络快照信息,而不需要等到实际的网络构建完成,网络快照文件可以下次加载网络使用,也可以应用到不同的平台之上。可选的,该硬件平台100,如图3所示,包括:处理器301;以及存储器303,配置为存储计算机程序指令,计算机程序指令适于由处理器加载并执行本发明所研发的构建脑仿真网络的方法(后续将进行详细介绍)。
该处理器301可以为各种适用的处理器,例如实现为中央处理器、微处理器、嵌入处理器等形式,可以采用X86、ARM等架构。该存储器303可以为各种适用的存储装置,例如非易失性存储装置,包括但不限于磁存储装置、半导体存储装置、光存储装置等,并且可以布置为单个存储装置、存储装置阵列或分布式存储装置,本发明的实施例对这些不作限制。
本领域普通技术人员可以理解,上述硬件平台100的结构仅为示意,其并不对设备的结构造成限定。例如,硬件平台100还可包括比图3中所示更多或者更少的组件(如传输装置)。上述的传输装置用于经由一个网络接收或者发送数据。在一个实例中,传输装置为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
通过本发明上述实施方式,脑仿真系统对神经元、突触虚拟创建时,不会实际占用大量内存或显存,创建较为迅速,创建时间较为稳定,不会随着网络规模增大而增多;脑仿真网络构建完成后,再对整个网络做合理的资源分配,每个进程实际创建指定的神经元簇,以达到降低通信量、加快仿真速度的有益效果;可以快速拿到网络快照信息,而不需要等到实际的脑仿真网络构建完成,此网络快照信息可用于恢复网络。
在上述运行环境下,本发明至少一个实施例提出了一种构建脑仿真网络的方法,该构建脑仿真网络的方法可以由硬件平台100的处理器301加载并执行,至少解决快速构建脑仿真网络、充分合理利用计算资源的问题。如图4所示的构建脑仿真网络的方法的流程图,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,该方法可以包括如下步骤:
步骤S402,初始化硬件平台;
步骤S404,虚拟创建硬件平台的脑仿真网络,其中,脑仿真网络包括神经元簇和突触;
步骤S406,按照第一通信规则对神经元簇分配进程,并利用进程实际创建脑仿真网络。
鉴于脑仿真网络主要包括神经元、突触和离子通道等。本发明通过上述方式,对脑仿真网络的神经元、突触虚拟创建,虚拟创建时不会实际占用大量内存或显存,创建较为迅速,创建时间较为稳定,不会随着网络规模增大而增多。同时,本发明可在脑仿真网络构建完成后,再对整个网络做合理的资源分配,每个进程实际创建指定的神经元簇(含离子通道),以达到降低通信量、加快仿真速度的有益效果,这样不仅可以快速拿到网络快照信息,还不需要等到实际的脑仿真网络构建完成。
在步骤S402中,初始化硬件平台。例如,如果硬件平台有第一网络快照文件,则可以加载第一网络快照文件,其中,第一网络快照文件为json文件,json文件包括第一神经元簇列表和第一突触列表,第一神经元簇列表存储有与多个第一神经元簇对应的多个第一字典,第一字典包括配置参数、神经元数量、神经元类型、神经元簇id和/或神经元簇中神经元起始id;第一突触列表存储有与多个第一突触对应的多个第二字典,第二字典包括连接参数、突触参数、源神经元簇id和/或目标神经元簇id。由此,本发明可以利用多个第一字典和多个第二字典初始化并记录该硬件平台及其CPU、GPU(graphics processing unit,图形处理器)等,该记录的信息后续可供硬件平台(或其它平台)实际构建脑仿真网络时使用。
可选的,上述加载第一网络快照文件可以包括:遍历第一神经元簇列表来循环创建初始神经元簇,遍历第一突触列表来循环创建初始突触。
在步骤S404中,虚拟创建硬件平台的脑仿真网络,该脑仿真网络包括神经元簇和突触,该神经元簇例如多(N)个第二神经元簇,该突触例如多(M)个第二突触。本发明将硬件平台划分为接口层、资源调度层和硬件内核层,其中,接口层循环创建第二神经元簇,并在资源调度层得到第二神经元簇列表,其中,第二神经元簇列表包括多个第二神经元簇;接口层循环创建第二突触,并在资源调度层得到第二突触列表,其中,第二突触列表包括多个第二突触;资源调度层生成第二网络快照文件,其中,第二网络快照文件为json文件,json文件包括第二神经元簇列表和第二突触列表;资源调度层根据第二神经元簇列表:[第二神经元簇类实例1,第二神经元簇类实例2,...,第二神经元簇类实例N]、第二突触列表:[突触类实例1,突触类实例2,...,突触类实例M]生成json格式的第二网络快照文件;在资源调度层基于第一通信规则对N个第二神经元簇分配进程的情况下,硬件内核层利用进程实际创建脑仿真网络。如图5所示,相对于现有技术中的脑仿真系统“在接口层实际创建神经元、突触,在硬件内核层由硬件平台实际创建”,本发明增设资源调度层“在资源调度层得到整个脑仿真网络信息,生成网络快照文件,处理资源分配”,修改接口层为“虚拟创建神经元、突触”,能够快速的构建出整个网络模型,加快仿真速度,可以快速拿到网络快照信息。
这里,接口层循环创建第二神经元簇,并在资源调度层得到第二神经元簇列表可以包括:获取虚拟创建第二神经元簇的第一指令,其中,第一指令为Population(model_name,num_neuron_per_pop,info),Population为神经元簇类,model_name为神经元模型名称,num_neuron_per_pop为神经元簇中神经元的数量,info为神经元参数;根据第一指令,将model_name、num_neuron_per_pop、神经元id范围neuron_range、神经元簇中神经元起始id、神经元簇global_id和/或info存储在虚拟构建的第二神经元簇类实例中;循环创建多个第二神经元簇,并在资源调度层添加多个第二神经元簇类实例到第二神经元簇列表中,以得到第二神经元簇列表。
示例的,循环创建多个第二神经元簇,在循环过程中会更改全局的神经元簇列表,每个神经元簇中的id也会全局更新。在大规模场景下,循环创建多个第二神经元簇会改变神经元簇中神经元数量(这是一个64位整形数):
S1:获取虚拟创建神经元簇指令Population(model_name,num_neuron_per_pop,info)。该Population指令会指定第二神经元簇中神经元的数量,神经元的配置参数,虚拟创建只会存储函数中相应的参数信息,所以不会占用太多内存,速度也较快。
其中,Population为神经元簇类,model_name为神经元模型名称,为字符串类型,num_neuron_per_pop为神经元簇中神经元的数量,int类型,info为神经元参数,为字典类型,如{“tau_m”:10.0,“V_reset”:-65.0}。此Population指令运行后,会在Population初始化函数中存储以下参数:model_name(神经元模型名称,为字符串类型),num_neuron_per_pop(神经元簇中神经元的数量,int类型),neuron_range(神经元id范围,列表类型),id(神经元簇中神经元起始id,int类型),global_id(神经元簇id,int类型),info(神经元参数,字典类型);
S2:以S1中传入的参数,开始构建虚拟第二神经元簇类实例,虚拟第二神经元簇会有一个相对应的类,类中可以存储相应的参数,实例化后,第二神经元簇列表中会存储此类实例,完成后进入步骤S3;
S3:设置第二神经元簇id,设定当前簇id为全局簇id,并把全局簇id增加1,首个神经元簇id为0,完成后进入步骤S4;
S4:更新第二神经元簇中神经元起始id,首个神经元簇中的神经元起始id为0,需从全局神经元簇列表中,取出最后一个元素,即为上一个神经元簇的实例,取出实例中的神经元簇id、神经元范围。如创建N个神经元簇,每个神经元簇中神经元的个数为Q,则第一个神经元簇的id为0,神经元的起始id为0,神经元的范围为0~Q-1,第二个神经元簇的id为1,神经元起始id为Q,神经元的id范围为Q~Q+Q-1,完成后进入步骤S5;
S5:存储神经元个数、神经元配置参数,存储在第二神经元簇类实例对象中;
S6:把当前神经元簇类实例添加到全局簇列表;
S7:更新全局簇id字典,以第二神经元簇id为key,当前实例为value存入全局簇id字典;
S8:返回S1继续创建第二神经元簇,每创建完成一个神经元簇后,全局簇列表长度会更新,全局神经元簇id也会增加1。
可以看出,本发明虚拟创建时,是以神经元簇为单位,每个神经元簇可用一个64位整形数来表示神经元数量,一个神经元簇中包含神经元簇起始id、神经元数量、神经元配置参数,所占内存在100字节以内,单个簇中神经元数量增加,并不会影响内存占用,由于不会分配大量内存,所以耗时更短;虚拟创建并不会涉及进程通信,目的在于描述整个网络,描述完成后,才可以使用资源分配算法,使不同进程的神经元簇间的通信量最少,最后才进行实际创建,这样实际创建后,才能保证进程间的通信量少,加快仿真速度。
这里,接口层循环创建第二突触,并在资源调度层得到第二突触列表可以包括:获取虚拟创建第二突触的第二指令,其中,第二指令为Connection(src,tgt,connspec,synspec),src为Population类型的源神经元簇,tgt为Population类型的目标神经元簇,connspec为字典类型的连接参数,synspec为突触参数;根据第二指令,将源神经元簇id、目标神经元簇id和/或connspec存储在虚拟构建的第二突触类实例中;循环创建多个第二突触,并在资源调度层添加多个第二突触类实例到第二突触列表中,以得到第二突触列表。
在大规模场景下,循环创建多个第二突触会改变连接参数中的连接数量(连接数量也是一个64位整形数),示例的:
S1:获取虚拟创建突触指令Connection(src,tgt,connspec,synspec),该Connection指令会指定源神经元簇,目标神经元簇,以及连接参数。其中,src(源神经元簇,Population类型);tgt(目标神经元簇,Population类型);connspec(连接参数,字典类型,如{“rule”:“fixed_total_numer”,“N”:1000},rule为连接规则,N为突触连接数量);synspec(突触参数,{“synapse_model”:“static_synapse”,“weight”:1.0,“delay”:1.0},synapse_model为突触模型、字符串类型,weight为权重,float类型,delay为延迟,float类型)。
由于Population对象占用内存较小,所以Connection类中只有src,tgt,connspec,synspec以上4个属性,所以Connection类占用内存较小,而现有技术中的突触是以两个神经元中的一条突触连接为单位,每一个突触连接对象都会占用40字节。同时,可以看出,本发明将突触连接用连接对象表示,连接对象中含有源神经元簇对象、目标神经元簇对象、连接参数、突触参数,神经元簇之间的,这些参数并不会随着网络规模增加而占用更多内存,神经元簇和突触对象,可以很容易序列化,暂存网络时可以很方便把神经元簇和突触存储下来。
S2:以S1中传入的参数,开始虚拟构建第二突触类实例;
S3:存储源神经元簇id、目标神经元簇id、连接参数。
S4:把当前突触类实例添加到全局突触列表。
S5:返回S4继续创第二突触,每创建完成一个突触,全局突触列表会增加一个元素。
综上所述,本发明在虚拟创建脑仿真网络时,神经元簇对象和连接对象中含有的属性较少,占用内存在100字节以下,而现有技术每个神经元和突触对象都需要占用内存,一个神经元对象约占用1800字节,一个突触对象约占用40字节,400万神经元,241亿突触约占用内存1191G,而虚拟创建并不会随着网络规模增大,而占用更多内存,总占用内存不足2M。
通过上述方式,本发明的硬件平台100的资源调度层可以得到第二神经元簇列表:[第二神经元簇类实例1,第二神经元簇类实例2,...,第二神经元簇类实例N],第二突触列表:[第二突触类实例1,第二突触类实例2,...,第二突触类实例M],并将此数据存储在硬件平台100的内存中,存储格式如下:第二神经元簇列表:[第二神经元簇类实例1,第二神经元簇类实例2,...,第二神经元簇类实例N],其中,神经元簇类实例为对象,含有的属性有如下:配置参数,神经元数量,神经元类型,神经元簇id,神经元簇中神经元起始id;第二突触列表:[第二突触类实例1,第二突触类实例2,...,第二突触类实例M],其中,突触类实例为对象,含有的属性有如下:连接参数,突触参数,源神经元簇id,目标神经元簇id;簇id字典:{神经元簇id:神经元簇类实例},以神经元簇id为key,神经元簇类实例为value存储为一个字典,可用于通过神经元簇id来查找神经元簇类实例。
同时,鉴于第二神经元簇和第二突触对象序列化较快、且很容易暂存网络,所以本发明在判断需要生成网络快照文件的情况下,资源调度层可以快速生成第二网络快照文件。例如,根据第二神经元簇列表:[第二神经元簇类实例1,第二神经元簇类实例2,...,第二神经元簇类实例N]、第二突触列表:[第二突触类实例1,第二突触类实例2,...,第二突触类实例M]生成json格式的第二网络快照文件,该第二网络快照文件可描述整个网络,可应用在多平台之上。该第二网络快照文件只会存储神经元各簇的信息,簇与簇间的连接信息,以及输入设备和记录设备的连接描述信息,所以此快照文件不会很大,且生成较快。
例如,本发明暂存网络时,把第二网络快照文件(json格式)写入磁盘,在神经元簇数量和突触数量比较多时,如200个神经元簇和200个神经元簇做全连接,生成的json文件为14M左右,一般固态硬盘写入速度在500M/S,所以耗时不超过1秒;神经元簇中神经元的数量,并不会影响网络快照文件的大小,影响网络快照文件大小的因素为神经元簇数量及神经元簇之间的连接数量,而这些因素比描述单个神经元及单个突触要容易得多。
在步骤S406中,按照第一通信规则对神经元簇分配进程,并利用进程实际创建脑仿真网络,其中,该第一通信规则为最优通信规则,即在进程间移动神经元簇,使得当前进程中,神经元簇间的通信量最大,最终使得进程间的通信量最小,也就是全局通信量最小。本发明基于步骤S301记录的硬件平台信息,在资源调度层基于第一通信规则对神经元簇分配进程的情况下,硬件内核层按照资源分配结果利用进程实际创建脑仿真网络。
也就是说,本发明虚拟创建并不涉及进程通信,进程通信是在脑仿真网络运行仿真时产生的,具体流程是先虚拟创建,再在进程中分配神经元簇,做资源分配,最后实际创建,然后才是整个网络做仿真运行。如果像现有技术那样直接采用实际创建,便没有办法做资源分配,不能做到全局通信量最少。
为充分说明本发明的优点,特检测和试验验证如下:A脑仿真网络,其网络结构为24个神经元簇,每个神经元簇均包含百万级以上的LIF(Leaky integrate and fire)神经元,神经元簇间的连接方式为入度100的方式连接。
本发明将这24个神经元簇平均分配到6个进程中并进行仿真,其中,实验中采用一台512G内存的机器,插有6张A100 GPU卡,共有三组数据,神经元总数分别为600万、2400万、4800万,神经元簇总数为24个,神经元簇间的连接方式为入度100的方式连接(即目标神经元簇中每个神经元接收的连接数量为100)。
表一虚拟构建与实际构建时间对比
可以看出,在本实验中,采用本发明提供的虚拟构建时间比较稳定,都在2秒左右,不会随网络规模的增加而增多,而是2秒左右上下浮动。这是因为虚拟构建,并不会实际占用大量内存及显存,因此虚拟构建后可以快速生成网络快照文件,而网络快照文件大小比较稳定,不会随网络规模增大而大幅增加;而用户直接实际构建网络会占用大量内存及显存,耗时会随着网络规模增大而增多,实际构建后再生成网络快照文件,将变得困难,不能快速生成网络快照文件。
通过本发明上述实施方式,一方面,能够快速的虚拟构建网络,虚拟构建网络完成后,可以拿到整个网络信息,对整个网络利用资源分配算法做资源分配,最终达到降低通信量、加快仿真速度的目的;另一方面,可以快速拿到大规模网络的快照信息,而不需要等到实际的网络构建完成,产生的网络快照文件可以下次加载网络模型使用,也可以应用到不同的平台,可移植性强。
可选的,本发明的至少一个实施例还提供了一种计算机可读的非易失性存储介质,存储计算机程序指令,当计算机执行程序指令时,执行本发明所研发的构建脑仿真网络的方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种构建脑仿真网络的方法,适用于存储第一通信规则的硬件平台,其特征在于,包括:
初始化硬件平台;
虚拟创建所述硬件平台的脑仿真网络,其中,所述脑仿真网络包括神经元簇和突触;
按照第一通信规则对所述神经元簇分配进程,并利用所述进程实际创建所述脑仿真网络。
2.根据权利要求1所述的方法,初始化硬件平台包括:
加载第一网络快照文件,其中,所述第一网络快照文件为json文件,所述json文件包括第一神经元簇列表和第一突触列表,所述第一神经元簇列表存储有与多个第一神经元簇对应的多个第一字典,所述第一字典包括配置参数、神经元数量、神经元类型、神经元簇id和/或神经元簇中神经元起始id,所述第一突触列表存储有与多个第一突触对应的多个第二字典,所述第二字典包括连接参数、突触参数、源神经元簇id和/或目标神经元簇id;
利用多个所述第一字典和多个所述第二字典初始化所述硬件平台。
3.根据权利要求2所述的方法,加载第一网络快照文件包括:
遍历所述第一神经元簇列表来循环创建初始神经元簇,遍历所述第一突触列表来循环创建初始突触。
4.根据权利要求1所述的方法,所述硬件平台包括接口层和资源调度层,虚拟创建所述硬件平台的脑仿真网络包括:
接口层循环创建第二神经元簇,并在资源调度层得到第二神经元簇列表,其中,所述第二神经元簇列表包括多个第二神经元簇;
接口层循环创建第二突触,并在资源调度层得到第二突触列表,其中,所述第二突触列表包括多个第二突触;
资源调度层生成第二网络快照文件,其中,所述第二网络快照文件为json文件,所述json文件包括第二神经元簇列表和第二突触列表。
5.根据权利要求4所述的方法,接口层循环创建第二神经元簇,并在资源调度层得到第二神经元簇列表包括:
获取虚拟创建第二神经元簇的第一指令,其中,所述第一指令为Population(model_name,num_neuron_per_pop,info),所述Population为神经元簇类,所述model_name为神经元模型名称,所述num_neuron_per_pop为神经元簇中神经元的数量,所述info为神经元参数;
根据所述第一指令,将所述model_name、所述num_neuron_per_pop、神经元id范围neuron_range、神经元簇中神经元起始id、神经元簇global_id和/或所述info存储在虚拟构建的第二神经元簇类实例中;
循环创建多个第二神经元簇,并在资源调度层添加多个所述第二神经元簇类实例到第二神经元簇列表中,以得到第二神经元簇列表。
6.根据权利要求4所述的方法,接口层循环创建第二突触,并在资源调度层得到第二突触列表包括:
获取虚拟创建第二突触的第二指令,其中,所述第二指令为Connection(src,tgt,connspec,synspec),所述src为Population类型的源神经元簇,所述tgt为Population类型的目标神经元簇,所述connspec为字典类型的连接参数,所述synspec为突触参数;
根据所述第二指令,将源神经元簇id、目标神经元簇id和/或所述connspec存储在虚拟构建的第二突触类实例中;
循环创建多个第二突触,并在资源调度层添加多个所述第二突触类实例到第二突触列表中,以得到第二突触列表。
7.根据权利要求4所述的方法,所述第二神经元簇列表:[第二神经元簇类实例1,第二神经元簇类实例2,...,第二神经元簇类实例N],所述第二突触列表:[第二突触类实例1,第二突触类实例2,...,第二突触类实例M],资源调度层生成第二网络快照文件包括:
资源调度层根据所述第二神经元簇列表:[第二神经元簇类实例1,第二神经元簇类实例2,...,第二神经元簇类实例N]、所述第二突触列表:[第二突触类实例1,第二突触类实例2,...,第二突触类实例M]生成json格式的第二网络快照文件。
8.根据权利要求2-7之一所述的方法,所述硬件平台还包括硬件内核层,利用所述进程实际创建所述脑仿真网络:
在资源调度层基于第一通信规则对多个所述第二神经元簇分配进程的情况下,硬件内核层利用所述进程实际创建所述脑仿真网络。
9.一种硬件平台,包括:
处理器,适于实现各指令;以及存储器,适于存储多条指令,所述指令适于由处理器加载并执行:如权利要求1-8任一所述的构建脑仿真网络的方法。
10.一种计算机可读的非易失性存储介质,存储计算机程序指令,当计算机执行程序指令时,执行:如权利要求1-8任一所述的构建脑仿真网络的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310229310.XA CN116341604A (zh) | 2023-03-06 | 2023-03-06 | 硬件平台及其构建脑仿真网络的方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310229310.XA CN116341604A (zh) | 2023-03-06 | 2023-03-06 | 硬件平台及其构建脑仿真网络的方法及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116341604A true CN116341604A (zh) | 2023-06-27 |
Family
ID=86885067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310229310.XA Pending CN116341604A (zh) | 2023-03-06 | 2023-03-06 | 硬件平台及其构建脑仿真网络的方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116341604A (zh) |
-
2023
- 2023-03-06 CN CN202310229310.XA patent/CN116341604A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cui et al. | Geeps: Scalable deep learning on distributed gpus with a gpu-specialized parameter server | |
KR102572757B1 (ko) | 집약성을 개선하기 위한 머신 학습 모델들의 수정 | |
CN112799850A (zh) | 模型的训练方法、模型的预测方法以及模型的控制系统 | |
CN116909985A (zh) | 对数据分区的动态排序 | |
Maitre et al. | EASEA: specification and execution of evolutionary algorithms on GPGPU | |
CN114327399B (zh) | 分布式训练方法、装置、计算机设备、存储介质和产品 | |
CN111773690B (zh) | 任务的处理方法和装置、存储介质、电子装置 | |
CN111708641A (zh) | 一种内存管理方法、装置、设备及计算机可读存储介质 | |
WO2019118363A1 (en) | On-chip computational network | |
US11275661B1 (en) | Test generation of a distributed system | |
CN112764893B (zh) | 数据处理方法和数据处理系统 | |
EP3857384B1 (en) | Processing sequential inputs using neural network accelerators | |
Laville et al. | MCMAS: a toolkit to benefit from many-core architecure in agent-based simulation | |
US20190095399A1 (en) | Assymetric allocation of sram and data layout for efficient matrix multiplication | |
Cui et al. | Scalable deep learning on distributed GPUs with a GPU-specialized parameter server | |
CN116341604A (zh) | 硬件平台及其构建脑仿真网络的方法及存储介质 | |
CN116010093A (zh) | 数据处理方法、装置、计算机设备和可读存储介质 | |
CN116483645A (zh) | 设备虚拟调试方法、装置、设备、存储介质和程序产品 | |
US20220318656A1 (en) | Model parameter sharing between inference application instances in processing unit of information processing system | |
Zeng et al. | Toward a high-performance emulation platformfor brain-inspired intelligent systemsexploring dataflow-based execution model and beyond | |
US11531578B1 (en) | Profiling and debugging for remote neural network execution | |
CN108292265B (zh) | 对高性能存储器的存储器管理 | |
CN114341806A (zh) | 用于软件模块开发的系统 | |
CN116260823B (zh) | 受控数据共享方法、装置、计算机设备和存储介质 | |
US20230121052A1 (en) | Resource resettable deep neural network accelerator, system, and method |
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 |