CN112651504B - 一种基于并行化的类脑仿真编译的加速方法 - Google Patents

一种基于并行化的类脑仿真编译的加速方法 Download PDF

Info

Publication number
CN112651504B
CN112651504B CN202011492285.7A CN202011492285A CN112651504B CN 112651504 B CN112651504 B CN 112651504B CN 202011492285 A CN202011492285 A CN 202011492285A CN 112651504 B CN112651504 B CN 112651504B
Authority
CN
China
Prior art keywords
neuron
array
subscript
simulation
parallelization
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
CN202011492285.7A
Other languages
English (en)
Other versions
CN112651504A (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.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
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 Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202011492285.7A priority Critical patent/CN112651504B/zh
Publication of CN112651504A publication Critical patent/CN112651504A/zh
Application granted granted Critical
Publication of CN112651504B publication Critical patent/CN112651504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A90/00Technologies having an indirect contribution to adaptation to climate change
    • Y02A90/10Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及神经网络仿真技术领域,具体涉及一种基于并行化的类脑仿真编译的加速方法,包括以下步骤:S1、构建神经网络时,创建若干个族群,每个族群包含上百万个神经元;S2、按照神经元族群并行构建神经元数组;S3、按照族群之间的连接并行构建突触数组以及神经元到突触数组的映射关系。本发明的基于并行化的类脑仿真编译的加速方法,通过并行算法加速仿真框架的速度,大大减少了用户的等待时间。

Description

一种基于并行化的类脑仿真编译的加速方法
技术领域
本发明涉及神经网络仿真技术领域,具体涉及一种基于并行化的类脑仿真编译的加速方法。
背景技术
在使用GPU进行仿真脉冲神经网络之前,需要将用户输入的神经网络拓扑结构数据编译成适合在GPU内并行仿真的数据结构。对于超大规模的神经网络,在CPU内串行地进行编译会消耗大量的时间,从而降低仿真框架的使用体验。中国专利CN110908667A公开了一种神经网络联合编译的方法、装置和电子设备,其中采用的是串行的方式进行编译,耗时长,使用体验差。
发明内容
为了克服现有技术所存在的缺陷,本发明提供了一种基于并行化的类脑仿真编译的加速方法,通过并行算法加速仿真框架的速度,减少用户的等待时间。
为解决上述技术问题,本发明提供以下技术方案:
一种基于并行化的类脑仿真编译的加速方法,包括以下步骤:
S1、构建神经网络时,创建若干个族群,每个族群包含上百万个神经元;
S2、按照神经元族群并行构建神经元数组;
S3、按照族群之间的连接并行构建突触数组以及神经元到突触数组的映射关系。
目前很多主流的类脑仿真框架在用户输入神经网络数据的时候都是让用户按照神经元族群的方式输入神经元数据,并让用户在神经元族群之间按照用户指定的某种方式建立突触连接,所谓族群指的是一组具有相同模型和相同属性的神经元节点,在构建神经网络时,创建若干个族群,每个族群包含上百万个神经元,而进一步的,在步骤S2中,由于所有的神经元都要统一放在一个大数组中,而用户提供的又是神经元族群数据,因此先将所有族群的节点数进行并行前缀求和构建族群-数组映射表,确定总的神经元数以及各个族群在神经元大数组中第一个神经元的下标。
进一步的,为大数组的每个元素分配一个线程,然后并行地编译神经元数据。
进一步的,每个线程按照所对应的大数组下标以及族群-数组映射表,找到所对应的族群,将族群中的神经元参数复制到当前的数组元素中,完成神经元数据的编译。
进一步的,线程通过二分查找的方式找到所对应的族群。
进一步的,在步骤S3中,先根据用户输入的连接数据确定每个族群中单个神经元的总输出突触数,然后按照前面的族群-数组映射表并行地将每个神经元的输出突触数存放在一个数组中,然后对该数组进行前缀求和,从而得到神经元-输出突触映射表,根据该表最后一个元素可确定总的突触数,从而确定突触数组的长度,另外在仿真时还可以通过该表快速找到对应的输出突触,最后为每一个神经元、每一个突触分配一个线程,并行地构建突触数组。在确定突触数组元素方面,可根据神经元-输出突触映射表以及线程的编号。
进一步的,突触是在族群之间建立,建立的方式为:一对一模式或全连接模式或按照全连接的比例进行随机构建,在确定突触后神经元的下标时,根据突触构建方式来决定具体方式。
进一步的,对于一对一模式,突触后神经元下标=当前神经元下标-所在族群的第一个神经元下标+突触后的族群的第一个神经元下标。
进一步的,对于全连接模式,突触后神经元下标=突触后的族群的第一个神经元下标+线程相对于当前神经元以及当前连接的下标。
进一步的,对于按比例构建突触,具体方法如下:
由于比例p是浮点数,在计算过程中不够稳定,为此设定一个整型A代表精确度,令P=取整(pA);
对于所在族群的下标为j的突触前神经元的输出突触的个数为
N=[(jmP%A)+mP]/A;
对于j=0,1,…,N-1逐个循环,则:
跨度=[A-(当前总位置mod A)-1]/P
当前局部位置=当前局部位置+跨度;
按照当前局部位置对应的突触后神经元构建突触,则:
当前总位置=当前总位置+跨度+1
当前局部位置=当前局部位置+1。
与现有技术相比,本发明具有以下有益效果:
本发明的基于并行化的类脑仿真编译的加速方法主要内容就是按照神经元族群并行构建神经元数组,然后按照族群之间的连接并行构建突触数组以及神经元到突触数组的映射关系,现有技术采用的是串行的方式,本发明采用的是并行的方式,因此与现有技术相比,本发明的速度更快,效率更高,用户体验更好。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据附图获得其他的附图
图1为本发明的基于并行化的类脑仿真编译的加速方法与现有技术的性能对比图。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例包括:
实施例1:
一种基于并行化的类脑仿真编译的加速方法,包括以下步骤:
S1、构建神经网络时,创建若干个族群,每个族群包含上百万个神经元;
S2、按照神经元族群并行构建神经元数组;
S3、按照族群之间的连接并行构建突触数组以及神经元到突触数组的映射关系。
目前很多主流的类脑仿真框架在用户输入神经网络数据的时候都是让用户按照神经元族群的方式输入神经元数据,并让用户在神经元族群之间按照用户指定的某种方式建立突触连接,所谓族群指的是一组具有相同模型和相同属性的神经元节点,在构建神经网络时,创建若干个族群,每个族群包含上百万个神经元,在步骤S2中,由于所有的神经元都要统一放在一个大数组中,而用户提供的又是神经元族群数据,因此先将所有族群的节点数进行并行前缀求和构建族群-数组映射表,确定总的神经元数以及各个族群在神经元大数组中第一个神经元的下标最后,为大数组的每个元素分配一个线程,然后并行地编译神经元数据。
其中,每个线程按照所对应的大数组下标以及族群-数组映射表,通过二分查找的方式找到自己所对应的族群,将族群中的神经元参数复制到当前的数组元素中,完成神经元数据的编译。
而在步骤S3中,先根据用户输入的连接数据确定每个族群中单个神经元的总输出突触数,然后按照前面的族群-数组映射表并行地将每个神经元的输出突触数存放在一个数组中,然后对该数组进行前缀求和,从而得到神经元-输出突触映射表,根据该表最后一个元素可确定总的突触数,从而确定突触数组的长度,另外在仿真时还可以通过该表快速找到对应的输出突触,最后为每一个神经元、每一个突触分配一个线程,并行地构建突触数组。在确定突触数组元素方面,可根据神经元-输出突触映射表以及线程的编号。
其中的突触是在族群之间建立,建立的方式为:一对一模式或全连接模式或按照全连接的比例进行随机构建,因此,在确定突触后神经元的下标时,需要根据突触构建方式来决定具体方式。
其中,对于一对一模式,突触后神经元下标=当前神经元下标-所在族群的第一个神经元下标+突触后的族群的第一个神经元下标。
另外,对于全连接模式,突触后神经元下标=突触后的族群的第一个神经元下标+线程相对于当前神经元以及当前连接的下标。
而对于按比例构建突触,具体方法如下:
由于比例p是浮点数,在计算过程中不够稳定,为此设定一个整型A代表精确度,令P=取整(pA);
对于所在族群的下标为j的突触前神经元的输出突触的个数为
N=[(jmP%A)+mP]/A;
对于j=0,1,…,N-1逐个循环,则:
跨度=[A-(当前总位置mod A)-1]/P
当前局部位置=当前局部位置+跨度;
按照当前局部位置对应的突触后神经元构建突触,则:
当前总位置=当前总位置+跨度+1
当前局部位置=当前局部位置+1。
如图1所示,Simple、Vogel、Counter都是测试所用的不同的脉冲神经网络,MGBrain是使用本发明的仿真器,Carlsim是用于对照的其他SNN仿真器,该结果是测试不同网络在编译阶段所消耗的时间,可以看到使用并行编译的MGBrain与不使用该技术的CARLsim相比有数量级上的差距。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (7)

1.一种基于并行化的类脑仿真编译的加速方法,其特征在于,包括以下步骤:
S1、构建神经网络时,创建若干个族群,每个族群包含上百万个神经元;
S2、按照神经元族群并行构建神经元数组;在步骤S2中,先将所有族群的节点数进行并行前缀求和构建族群-数组映射表,确定总的神经元数以及各个族群在神经元大数组中第一个神经元的下标;为大数组的每个元素分配一个线程,然后并行地编译神经元数据;
S3、按照族群之间的连接并行构建突触数组以及神经元到突触数组的映射关系;在步骤S3中,确定每个族群中单个神经元的总输出突触数,然后按照前面的族群-数组映射表并行地将每个神经元的输出突触数存放在一个数组中,然后对该数组进行前缀求和,从而得到神经元-输出突触映射表,最后为每一个神经元、每一个突触分配一个线程,并行地构建突触数组;在确定突触数组元素方面,根据神经元-输出突触映射表以及线程的编号。
2.根据权利要求1所述的基于并行化的类脑仿真编译的加速方法,其特征在于,每个线程按照所对应的大数组下标以及族群-数组映射表,找到所对应的族群,将族群中的神经元参数复制到当前的数组元素中,完成神经元数据的编译。
3.根据权利要求2所述的基于并行化的类脑仿真编译的加速方法,其特征在于,线程通过二分查找的方式找到所对应的族群。
4.根据权利要求1所述的基于并行化的类脑仿真编译的加速方法,其特征在于,突触是在族群之间建立,建立的方式为:一对一模式或全连接模式或按照全连接的比例进行随机构建,在确定突触后神经元的下标时,根据突触构建方式来决定具体方式。
5.根据权利要求4所述的基于并行化的类脑仿真编译的加速方法,其特征在于,对于一对一模式,突触后神经元下标=当前神经元下标-所在族群的第一个神经元下标+突触后的族群的第一个神经元下标。
6.根据权利要求5所述的基于并行化的类脑仿真编译的加速方法,其特征在于,对于全连接模式,突触后神经元下标=突触后的族群的第一个神经元下标+线程相对于当前神经元以及当前连接的下标。
7.根据权利要求6所述的基于并行化的类脑仿真编译的加速方法,其特征在于,对于按比例构建突触,具体方法如下:
由于比例p是浮点数,在计算过程中不够稳定,为此设定一个整型A代表精确度,令P=取整(pA);
对于所在族群的下标为j的突触前神经元的输出突触的个数为
N=[(jmP % A)+mP]/A;
对于j=0,1,…,N-1逐个循环,则:
跨度=[A-(当前总位置 mod A)-1]/P
当前局部位置=当前局部位置+跨度;
按照当前局部位置对应的突触后神经元构建突触,则:
当前总位置=当前总位置+跨度+1
当前局部位置=当前局部位置+1。
CN202011492285.7A 2020-12-16 2020-12-16 一种基于并行化的类脑仿真编译的加速方法 Active CN112651504B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011492285.7A CN112651504B (zh) 2020-12-16 2020-12-16 一种基于并行化的类脑仿真编译的加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011492285.7A CN112651504B (zh) 2020-12-16 2020-12-16 一种基于并行化的类脑仿真编译的加速方法

Publications (2)

Publication Number Publication Date
CN112651504A CN112651504A (zh) 2021-04-13
CN112651504B true CN112651504B (zh) 2023-08-25

Family

ID=75354384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011492285.7A Active CN112651504B (zh) 2020-12-16 2020-12-16 一种基于并行化的类脑仿真编译的加速方法

Country Status (1)

Country Link
CN (1) CN112651504B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110322010A (zh) * 2019-07-02 2019-10-11 深圳忆海原识科技有限公司 用于类脑智能与认知计算的脉冲神经网络运算系统及方法
CN110909869A (zh) * 2019-11-21 2020-03-24 浙江大学 一种基于脉冲神经网络的类脑计算芯片
CN111325321A (zh) * 2020-02-13 2020-06-23 中国科学院自动化研究所 基于多神经网络融合的类脑计算系统及指令集的执行方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110322010A (zh) * 2019-07-02 2019-10-11 深圳忆海原识科技有限公司 用于类脑智能与认知计算的脉冲神经网络运算系统及方法
CN110909869A (zh) * 2019-11-21 2020-03-24 浙江大学 一种基于脉冲神经网络的类脑计算芯片
CN111325321A (zh) * 2020-02-13 2020-06-23 中国科学院自动化研究所 基于多神经网络融合的类脑计算系统及指令集的执行方法

Also Published As

Publication number Publication date
CN112651504A (zh) 2021-04-13

Similar Documents

Publication Publication Date Title
CN111126564B (zh) 一种神经网络结构搜索方法、装置及设备
CN111587440B (zh) 用于更新精确突触权重值的神经形态芯片
CN104375838B (zh) 一种基于OpenMP对天文学软件Gridding的优化方法
TW201602923A (zh) 使用尖峰發放神經網路對大序列的概率性表示
Addanki et al. Placeto: Efficient progressive device placement optimization
CN114912357A (zh) 基于用户模型学习的多任务强化学习用户运营方法及系统
CN111368981B (zh) 减小突触连接的存储面积的方法、装置、设备和存储介质
CN114840322A (zh) 任务调度方法及装置、电子设备和存储
Xu et al. Fault tolerance in memristive crossbar-based neuromorphic computing systems
Liu et al. Numerical P systems with Boolean condition
CN113297127A (zh) 一种大规模分布式训练集群的参数更新方法、平台系统
CN110096730B (zh) 一种电网电压快速评估方法及系统
Osawa et al. PipeFisher: Efficient training of large language models using pipelining and Fisher information matrices
CN112651504B (zh) 一种基于并行化的类脑仿真编译的加速方法
CN111125620B (zh) 推荐系统中基于矩阵分解的并行随机梯度下降方法
CN112651502A (zh) 一种并行化类脑仿真的加速方法
US7840506B1 (en) System and method for geodesic data mining
TWI719348B (zh) 執行單元,用於執行電腦程式之方法,以及電腦程式
CN116134415A (zh) 用于更新交叉阵列的脉冲生成
JPH05197705A (ja) ニューラルネットワークの学習システム
Das et al. A Degree-first Greedy Search Algorithm for the Evaluation of Structural Controllability of Real World Directed Complex Networks.
JPH0561848A (ja) 最適アルゴリズムの選定及び実行のための装置及び方法
Niu et al. The new large-scale RNNLM system based on distributed neuron
Vai et al. Representing knowledge by neural networks for qualitative analysis and reasoning
Fard et al. Optimization of the running speed of ant colony algorithm with address-based hardware 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
GR01 Patent grant
GR01 Patent grant