CN117688992B - 神经元计算机操作***的资源映射方法和装置 - Google Patents

神经元计算机操作***的资源映射方法和装置 Download PDF

Info

Publication number
CN117688992B
CN117688992B CN202410141524.6A CN202410141524A CN117688992B CN 117688992 B CN117688992 B CN 117688992B CN 202410141524 A CN202410141524 A CN 202410141524A CN 117688992 B CN117688992 B CN 117688992B
Authority
CN
China
Prior art keywords
target
mapping
core
cores
neuron
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
CN202410141524.6A
Other languages
English (en)
Other versions
CN117688992A (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.)
Zhejiang University ZJU
Zhejiang Lab
Original Assignee
Zhejiang University ZJU
Zhejiang Lab
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 Zhejiang University ZJU, Zhejiang Lab filed Critical Zhejiang University ZJU
Priority to CN202410141524.6A priority Critical patent/CN117688992B/zh
Publication of CN117688992A publication Critical patent/CN117688992A/zh
Application granted granted Critical
Publication of CN117688992B publication Critical patent/CN117688992B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Feedback Control In General (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及一种神经元计算机操作***的资源映射方法和装置,其中,该方法包括:获取待运行的应用;将硬件的运行资源抽象为二维网格;基于最大空矩形法将空闲计算核心划分为矩形核心集合并确定最匹配的核心集合;基于硬件中各计算核心之间的脉冲通信代价、输入输出核心与计算核心之间的脉冲通信代价、二维网格中全部计算核心所占面积以及预设的经验常量构建代价函数;基于代价函数确定映射代价最小的映射方案。本申请通过神经元计算机操作***建立准确估算映射代价的映射代价函数,通过代价函数确定映射代价最小的映射方案,为脉冲神经网络映射硬件资源,解决了相关技术中脉冲神经网络运行性能较低的问题,提高了脉冲神经网络的运行性能。

Description

神经元计算机操作***的资源映射方法和装置
技术领域
本申请涉及神经网络与新型架构计算领域,特别是涉及神经元计算机操作***的资源映射方法和装置。
背景技术
神经形态计算是一种模拟大脑结构和功能的计算模式,脉冲神经网络(spikingneural network,简称为SNN)是神经形态计算领域中最具有代表性的一种计算模型。SNN通过模拟大脑神经元的行为和突触连接方式来完成信息的脉冲编码和传递,从而有效解决复杂任务,因低功耗和事件驱动特性而著称。
神经形态芯片是为运行SNN而专门设计的一种硬件,其采用高密度的片上网络来模拟生物神经元的连接,从而实现大规模并行计算。在大规模的神经形态硬件***中,多个神经形态芯片互联,形成更大规模的片上网络结构,以支持更加复杂的计算任务。SNN与传统计算应用最大的区别在于,SNN是通过脉冲输入输出完成计算的。片上网络不同核心间的脉冲传递路径,以及软件与片上网络的脉冲输入输出路径,对SNN的运行性能和***功耗有着显著影响。因此,对SNN的资源映射和脉冲输入输出路由规划提出了较高的要求。目前,针对SNN的资源映射,通常是在编译阶段将SNN划分为神经元簇,并手动或自动地建立神经元簇与硬件的运行核心之间的映射,根据编译阶段完成的映射方案将SNN加载到硬件上运行,然而,这种静态映射方法过于简单且缺乏灵活性,难以动态管理核心并根据核心的实时状态在庞大的解空间中高效找到最优解,生成最优的资源分配方法,从而造成资源浪费,从而影响SNN的运行性能。
针对相关技术中存在核心资源利用率较低和脉冲神经网络运行性能较低的问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种神经元计算机操作***的资源映射方法和装置,以解决相关技术中脉冲神经网络运行性能较低的问题。
第一个方面,在本实施例中提供了一种神经元计算机操作***的资源映射方法,包括:
获取待运行的目标应用,其中,所述目标应用包括划分好的目标神经元簇;
将用于运行的目标硬件的运行资源抽象为二维网格模型;其中,所述运行资源包括若干个运行核心,所述二维网格模型的每个连接点对应一个所述运行核心,所述运行核心包括计算核心和输入输出核心;
查询各所述计算核心的最新运行状态,并基于最大空矩形法,将所述二维网格模型中空闲的计算核心划分为若干个矩形核心集合;
根据各所述矩形核心集合包含的计算核心数量,和所述目标神经元簇的数量,在若干个所述矩形核心集合中,为目标应用确定匹配的矩形核心集合,得到目标核心范围集合;
基于所述目标硬件中各所述计算核心之间的脉冲通信代价、所述输入输出核心与所述计算核心之间的脉冲通信代价、在所述二维网格中全部所述计算核心所占区域的面积以及预设的经验常量,构建代价函数;所述代价函数用于估算运行所述目标应用时,将各所述目标神经元簇映射至不同所述计算核心的映射代价;
基于所述目标应用和所述代价函数,确定映射代价最小的映射方案,并基于所述映射代价最小的映射方案将各所述目标神经元簇映射至所述目标核心范围集合中对应的目标运行核心处运行。
在其中的一些实施例中,所述目标神经元簇包括计算神经元簇和输入输出神经元簇。
在其中的一些实施例中,所述输入输出核心对应所述二维网格模型边缘的连接点。
在其中的一些实施例中,所述目标应用包括计算神经元簇集合、输入输出神经元簇集合、计算神经元簇连接集合以及输入输出神经元簇连接集合。
在其中的一些实施例中,所述基于所述目标应用和所述代价函数,确定映射代价最小的映射方案,并基于所述映射代价最小的映射方案将各所述目标神经元簇映射至所述目标核心范围集合中对应的目标运行核心处运行,包括:
基于所述目标应用、所述目标核心范围集合、所述输入输出核心构成的集合以及预设的最大遗传代数,利用遗传算法生成将所述目标神经元簇映射至所述运行核心的多个候选映射方案;
基于所述代价函数,将多个所述候选映射方案中映射代价最小的候选映射方案识别为目标映射方案;
根据所述目标映射方案,将各所述目标神经元簇映射至对应的所述目标运行核心;
基于所述目标运行核心运行所述目标应用。
在其中的一些实施例中,所述基于所述目标应用、所述目标核心范围集合、所述输入输出核心构成的集合以及预设的最大遗传代数,利用遗传算法生成将所述目标神经元簇映射至所述运行核心的多个候选映射方案,包括:
当所述目标神经元簇为输入输出神经元簇时,基于预设的脉冲输入输出最短距离优先策略,生成将所述目标神经元簇映射至距离最短的目标输入输出核心的输入输出映射方案;
基于所述输入输出映射方案,生成所述候选映射方案。
在其中的一些实施例中,所述根据所述目标核心范围集合中各所述计算核心之间的通信限制条件,构建代价函数,包括:
基于所述目标硬件中各所述计算核心之间的脉冲通信代价、所述输入输出核心与所述计算核心之间的脉冲通信代价、在所述二维网格中全部所述计算核心所占区域的面积以及预设的经验常量,构建所述代价函数。
在其中的一些实施例中,所述根据各所述矩形核心集合包含的计算核心数量,和所述目标神经元簇的数量,在若干个所述矩形核心集合中,为目标应用确定匹配的矩形核心集合,得到目标核心范围集合,包括:
将包含的计算核心数量不少于所述计算神经元簇的数量的所述矩形核心集合,确定为候选集合;
确定所述候选集合包含的计算核心数量与所述计算神经元簇的数量之间的数量差值,将所述数量差值最小的所述候选集合确定为所述目标核心范围集合。
第二个方面,在本实施例中提供了一种神经元计算机操作***的资源映射装置,包括:获取模块、抽象模块、矩形划分模块、集合选择模块、函数构建模块以及映射模块,其中:
所述获取模块,用于获取待运行的目标应用,其中,所述目标应用包括划分好的目标神经元簇;
所述抽象模块,用于将用于运行的目标硬件的运行资源抽象为二维网格模型;其中,所述运行资源包括若干个运行核心,所述二维网格模型的每个连接点对应一个所述运行核心,所述运行核心包括计算核心和输入输出核心;
所述矩形划分模块,用于查询各所述运行核心的最新运行状态,并基于最大空矩形法,将所述二维网格模型中空闲的计算核心划分为若干个矩形核心集合;
所述集合选择模块,用于根据各所述矩形核心集合包含的计算核心数量,和所述目标神经元簇的数量,在若干个所述矩形核心集合中,为目标应用确定匹配的矩形核心集合,得到目标核心范围集合;
所述函数构建模块,用于基于所述目标硬件中各所述计算核心之间的脉冲通信代价、所述输入输出核心与所述计算核心之间的脉冲通信代价、在所述二维网格中全部所述计算核心所占区域的面积以及预设的经验常量,构建代价函数;所述代价函数用于估算运行所述目标应用时,将各所述目标神经元簇映射至不同所述计算核心的映射代价;
所述映射模块,用于基于所述目标应用和所述代价函数,确定映射代价最小的映射方案,并基于所述映射代价最小的映射方案将各所述目标神经元簇映射至所述目标核心范围集合中对应的目标运行核心处运行。
第三个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的神经元计算机操作***的资源映射方法。
与相关技术相比,在本实施例中提供的神经元计算机操作***的资源映射方法和装置,通过获取待运行的目标应用,其中,所述目标应用包括划分好的目标神经元簇;将用于运行的目标硬件的运行资源抽象为二维网格模型;其中,运行资源包括若干个运行核心,二维网格模型的每个连接点对应一个运行核心,运行核心包括计算核心和输入输出核心;查询各计算核心的最新运行状态,并基于最大空矩形法,将二维网格中空闲的计算核心划分为若干个矩形核心集合;根据各矩形核心集合包含的计算核心数量,和目标神经元簇的数量,在若干个矩形核心集合中,为目标应用确定匹配的矩形核心集合,得到目标核心范围集合;基于所述目标硬件中各所述计算核心之间的脉冲通信代价、所述输入输出核心与所述计算核心之间的脉冲通信代价、在所述二维网格中全部所述计算核心所占区域的面积以及预设的经验常量,构建代价函数;代价函数用于估算运行目标应用时,将各目标神经元簇映射至不同计算核心的映射代价;基于目标应用和代价函数,确定映射代价最小的映射方案,并基于映射代价最小的映射方案将各目标神经元簇映射至目标核心范围集合中对应的目标运行核心处运行。解决了相关技术中脉冲神经网络运行性能较低的问题,提高了脉冲神经网络的运行性能。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本实施例的神经元计算机操作***的资源映射方法的流程图;
图2是本实施例的神经元簇划分方法示意图;
图3是本实施例的目标硬件的二维网格模型示意图;
图4是本实施例的遗传算法的执行流程图;
图5是本实施例的脉冲传递路径的示意图;
图6是本实施例的计算核心所占矩形面积的示意图;
图7是本实施例的神经元计算机操作***的资源映射***的结构示意图;
图8是本实施例的神经元计算机操作***的资源映射装置的结构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和***、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供了一种神经元计算机操作***的资源映射方法,图1是本实施例的神经元计算机操作***的资源映射方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,获取待运行的目标应用,其中,所述目标应用包括划分好的目标神经元簇。
具体地,脉冲神经网络是一种类脑计算模型,其基本构成要素是神经元与突触,神经元是网络模型的节点,突触是节点之间的连接。其中,神经元可以分为计算神经元与输入输出神经元,本实施例在编译阶段将脉冲神经网络划分为多个神经元簇,相应地,划分得到的神经元簇包括由计算神经元组成的计算神经元簇,以及由输入输出神经元组成的输入输出神经元簇。
图2是本实施例的神经元簇划分方法示意图,如图2所示,实线圆圈n0,n1,……,n11表示计算神经元,虚线圆圈表示输入输出神经元,圆圈间的箭头表示各计算神经元之间的突触;实线圆角矩形框nc0,nc1,……nc3表示划分出的计算神经元簇,虚线圆角矩形框ionc0、ionc1以及ionc2表示划分出的输入输出神经元簇,矩形框之间的实线箭头表示计算神经元簇之间的连接权重,矩形框之间的虚线箭头表示脉冲输入输出。
另外,本实施例中的目标应用指对脉冲神经网络进行编译而得到的一种特殊的表达形式,本实施例通过建立神经元簇与神经形态硬件的运行核心之间的一一映射,将目标应用部署到目标硬件上运行。
步骤S102,将用于运行的目标硬件的运行资源抽象为二维网格模型;其中,运行资源包括若干个运行核心,二维网格模型的每个连接点对应一个运行核心,运行核心包括计算核心和输入输出核心。
具体地,目标硬件为基于神经形态芯片的片上网络计算架构,可以由多颗神经形态芯片级联而成,该架构包括多个通过路由节点相互连接的同质同构神经形态计算核。其中,每个神经形态核都能并行地模拟神经元行为并存储突触权重,每个神经形态计算核与一个路由节点绑定,并通过双向链路与四个方向上的邻居节点连接起来,从而形成具有二维网格拓扑结构的互联网络;每个神经形态计算核与其绑定的路由节点都具有坐标(x,y),两个计算核心之间通过路由节点传输脉冲包,脉冲包在片上网络采用XY算法进行路由,即通过目标神经形态计算核与源神经形态计算核在X和Y方向上的差值来完成传输。
本实施例的目标硬件可以由N×M个芯片组成,每个芯片有V×V个神经形态计算核,因此可以通过二元组(N×V,M×V)表示该目标硬件的资源大小,意味着该硬件上有N×V×M×V个可用的计算核心。基于此,可以将目标硬件的运行资源抽象为二维矩形模型,通过该二维矩形对目标硬件的资源进行分配。本实施例以神经元计算机操作***为运行时,实现资源的抽象与管理。
二维网格模型由相互连接的多个运行核心构成,运行核心包括计算核心,计算核心即目标硬件的神经形态计算核。图3是本实施例的目标硬件的二维网格模型示意图,如图3所示,实线圆圈代表计算核心;每个计算核心均与一个方形框连接,该方形框代表路由节点;空心双向箭头代表路由节点与路由节点之间,或路由节点与计算核心之间的通信链路。
可以将二维网格模型中的计算核心资源定义为集合:。以二元组表示每个计算核心及其在二维网格模型中的坐标:corei=(x,y);其中,x表示该计算核心在网格X方向上的位置,y表示该计算核心在网格Y方向上的位置。二维网格左上角的计算核心坐标为(0,0),右下角的计算核心坐标为(N×V-1,M×V-1)。
此外,上述运行核心还包括输入输出核心。软件与目标硬件之间通过目标硬件中芯片边缘的直接内存访问(Direct Memory Access,简称为DMA)通道进行通信,DMA通道可以包括西、东、北、南四个方向,因此,脉冲输入输出方向可以定义为:,分别代表通过西、东、北、南四个方向的DMA通道进行传输的脉冲。本实施例将DMA通道抽象为虚拟的输入输出核心,如图3中的虚线圆圈所示,在二维网格中,输入输出核心与计算核心构成的网络同行同列,用于在软件与目标硬件之间传递输入输出脉冲,图3中的实心双向箭头代表软件与目标硬件之间的通信链路。
全部输入输出核心可以定义为二维网络模型中4个边缘核心的坐标集合:
其中,该集合中的元素iocorei表示每个输入输出核心,输入输出核心可以是软件与目标硬件的传递脉冲包的源或者目的。
步骤S103,查询各运行核心的最新运行状态,并基于最大空矩形法,将二维网格模型中空闲的计算核心划分为若干个矩形核心集合。
具体地,本实施例采用最大空矩形(maximum empty rectangle,简称为MER)策略管理神经形态硬件空闲核心,最大空矩形法是将连续可用资源区域保持为最大空矩形,并维护最大空矩形列表,在分配资源时,从最大空矩形列表中找到合适资源,然后更新分配后的最大空矩形列表;释放资源后,回收资源并维护最大空矩形列表,基于最大空矩形法总是能够成功查询到二维网格模型中存在的合适的空闲区域。
由于神经元计算机操作***对神经形态硬件资源的管理和调度是基于二维网格的核心资源,并且脉冲神经网络所需的核心资源可以表达为矩形区域内的核心集合,因此,为目标应用分配资源可以等价为在神经形态核心资源中确定一块空闲的矩形区域。如图3所示,有填充的实线圆圈表示被占用的计算核心,无填充的实线圆圈表示空闲的计算核心,将二维网格中空闲的计算核心划分为若干个矩形核心集合,其中,划分出的各个最大空矩形可以相互重叠,得到矩形核心集合MER1、MER2、MER3以及MER4。
步骤S104,根据各矩形核心集合包含的计算核心数量,和目标神经元簇的数量,在若干个矩形核心集合中,为目标应用确定匹配的矩形核心集合,得到目标核心范围集合。
具体地,在矩形核心集合MERs中搜索合适的目标核心范围集合MERj,使目标核心范围集合中计算核心的数量大于等于且最接近目标应用中目标神经元簇的数量,基于该步骤,可以快速确定与目标应用最匹配的计算核心资源集合,降低资源碎片。
步骤S105,基于目标硬件中各计算核心之间的脉冲通信代价、输入输出核心与计算核心之间的脉冲通信代价、在二维网格中全部计算核心所占区域的面积以及预设的经验常量,构建代价函数;代价函数用于估算运行目标应用时,将各目标神经元簇映射至不同运行核心的映射代价。
具体地,为获得最优的映射方案,通过构建代价函数估算映射代价。本实施例提供了一种代价函数构建方法,目标应用可以由多个芯片组成,因此,该方法在估算映射代价时,首先综合考虑了芯片内各核心间的映射代价和跨芯片的核心间映射代价,此外,将二维网格中全部计算核心所占区域的面积作为映射代价的另一种量化因素,并结合预设的经验常量,最终构建一个能够准确估算神经元簇到运行核心的映射代价的代价函数,该代价函数COST(MS,NC)定义如下:
(1)
其中,MS表示映射状态,COST(MS,NC)表示每次映射完成时的映射代价,Costcomm(MS,NC.ENC)表示所有计算核心之间的脉冲通信代价,Costio(MS,NC.ENC)表示所有输入输出核心与计算核心之间的脉冲通信代价,Costarea(MS)表示所有计算核心所占区域的矩形面积,、/>、/>为经验常量。
本实施例根据上述代价函数估算映射代价,从而在全部映射方案中确定映射代价最小的方案,能够在充分利用空闲核心资源的基础上,将映射代价降至最低,因此,在脉冲神经网络的整个运行过程中减少了映射消耗的资源,从而提高了脉冲神经网络的运行性能。
步骤S106,基于目标应用和代价函数,确定映射代价最小的映射方案,并基于映射代价最小的映射方案将各目标神经元簇映射至目标核心范围集合中对应的目标运行核心处运行。
具体地,神经元计算机操作***为目标应用分配资源,可以被定义为在二维网络模型中,为每个计算神经元簇nci映射计算核心集合HWCORE中合适的计算核心corei,并为每个脉冲输入输出神经元簇ionci映射输入输出核心iocorei
本实施例基于目标应用、为目标硬件确定的目标核心范围集合、输入输出核心构成的集合以及预设的最大遗传代数,利用遗传算法生成多个候选映射方案,将计算神经元簇映射至计算核心,并基于预设的脉冲输入输出最短距离优先策略,将目标神经元簇映射至距离最短的目标输入输出核心。基于代价函数,将上述多个候选映射方案中,映射代价最小的候选映射方案识别为目标映射方案;根据该目标映射方案,将各目标神经元簇映射至对应的目标运行核心,从而实现将目标应用到目标硬件的实际部署;目标硬件基于上述映射方法运行目标应用,可以提升资源利用率和提升目标应用的运行性能。
通过上述步骤S101至S106,获取待运行的目标应用,其中,所述目标应用包括划分好的目标神经元簇;将用于运行的目标硬件的运行资源抽象为二维网格模型;其中,运行资源包括若干个运行核心,二维网格模型的每个连接点对应一个运行核心,运行核心包括计算核心;查询各计算核心的最新运行状态,并基于最大空矩形法,将二维网格中空闲的计算核心划分为若干个矩形核心集合;根据各矩形核心集合包含的计算核心数量,和目标神经元簇的数量,在若干个矩形核心集合中,为目标应用确定匹配的矩形核心集合,得到目标核心范围集合;基于目标硬件中各计算核心之间的脉冲通信代价、输入输出核心与计算核心之间的脉冲通信代价、在二维网格中全部计算核心所占区域的面积以及预设的经验常量,构建代价函数;代价函数用于估算运行目标应用时,将各目标神经元簇映射至不同计算核心的映射代价;基于目标应用和代价函数,确定映射代价最小的映射方案,并基于映射代价最小的映射方案将各目标神经元簇映射至目标核心范围集合中对应的目标运行核心处运行。相关技术通常在编译器中建立神经元簇与硬件的运行核心之间的映射,映射方法缺乏灵活性,资源利用率低,且映射代价高,资源映射过程消耗大量资源,影响脉冲神经网络的运行性能,而本实施例提供的资源映射方法通过运行时即神经元计算机操作***建立资源映射;将脉冲神经网络运行中资源分配问题抽象为几何图形划分问题,高效获取空闲计算资源,此外,定义了一种能够准确估算映射代价的代价函数,结合应用遗传算法,最终确定映射代价最小的神经元簇映射方案;基于该方案将目标应用部署到目标硬件上运行,从而解决了相关技术中运行脉冲神经网络运行中脉冲神经网络运行性能较低的问题,提高了脉冲神经网络的运行性能。
在其中的一些实施例中,基于目标应用中的神经元划分出的目标神经元簇包括计算神经元簇和输入输出神经元簇。
另外,在其中的一些实施例中,基于上述步骤S101,目标应用包括计算神经元簇集合、输入输出神经元簇集合、计算神经元簇连接集合以及输入输出神经元簇连接集合。
其中,目标应用描述了划分好的神经元簇及神经元簇之间的连接关系,可以表示为。/>代表计算神经元簇集合,代表输入输出神经元簇集合;/>代表神经元簇连接集合;任意两个神经元簇之间的连接/>,可以用一个三元组/>表示,代表该脉冲通信的源神经元簇为si,目的神经元簇为ti,且通信流量权重为wi;ENC表示计算神经元簇到计算神经元簇之间的连接;EIONC表示输入输出神经元簇与计算神经元簇之间的连接,其中/>
在其中的一些实施例中,如图2所示,目标应用的每个神经形态核心能存储的最大 神经元数量为3,将神经元n0~n11划分为4个神经元簇nc0~nc3,即;其中,与输入输出神经元直接相连的计算神经元n0~n1被划分 在计算神经元簇nc0,与nc0相连的输入输出神经元簇为ionc0且连接权重w0为2,因此,同理,与输入输出神经元直接连接的计算神 经元n9~n11被划分在计算神经元簇nc3,定义与nc3相连的输入输出神经元簇为ionc2且连接 权重w2为3,即;则
在其中的一些实施例中,基于上述步骤S102,运行核心还包括输入输出核心,输入输出核心对应二维网格模型边缘的连接点。具体地,上述输入输出核心是由目标硬件的脉冲输入输出通道映射而来的,如图3中的虚线圆圈所示,在二维网格中,输入输出核心与计算核心构成的网络同行同列,用于在软件与目标硬件之间传递输入输出脉冲。
在其中的一些实施例中,基于上述步骤S106,基于目标应用和代价函数,确定映射代价最小的映射方案,并基于映射代价最小的映射方案将各目标神经元簇映射至目标核心范围集合中对应的目标运行核心处运行,具体可以包括:
基于目标应用、目标核心范围集合、输入输出核心构成的集合以及预设的最大遗传代数,利用遗传算法生成将目标神经元簇映射至运行核心的多个候选映射方案;基于代价函数,将多个候选映射方案中映射代价最小的候选映射方案识别为目标映射方案;根据目标映射方案,将各目标神经元簇映射至对应的目标运行核心;基于目标运行核心运行目标应用。
其中,在一些实施例中,基于目标应用、目标核心范围集合、输入输出核心构成的集合以及预设的最大遗传代数,利用遗传算法生成将目标神经元簇映射至运行核心的多个候选映射方案,具体可以包括:
当目标神经元簇为输入输出神经元簇时,基于预设的脉冲输入输出最短距离优先策略,生成将目标神经元簇映射至距离最短的目标输入输出核心的输入输出映射方案;基于输入输出映射方案,生成候选映射方案。
其中,确定映射方案可以看作找到一个映射函数MS,根据该映射函数MS将每个计 算神经元簇nci映射至合适的神经形态核心corei,并将每个输入输出神经元簇ionci映射至 虚拟输入输出核心iocorei,其中
在其中的一些实施例中,可以首先基于最大空矩形算法更新当前神经形态硬件中 的空闲资源列表,得到矩形核心集合。每个矩形核心集合 MERj可以表示为;其 中,为矩形核心集合MERj的左上角的坐标,为矩 形核心集合的右下角坐标;定义变量,用于表示MERj中包含的计算核 心数量;基于变量对MERs升序排序。
此外,在其中的一些实施例中,基于上述步骤S104,根据各矩形核心集合包含的计算核心数量,和目标神经元簇的数量,在若干个矩形核心集合中,为目标应用确定匹配的矩形核心集合,得到目标核心范围集合,具体可以包括:
将包含的计算核心数量不少于计算神经元簇的数量的矩形核心集合,确定为候选集合;确定候选集合包含的计算核心数量与计算神经元簇的数量之间的数量差值,将数量差值最小的候选集合确定为目标核心范围集合。
其中,对于目标应用,获取计算神经元簇集合VNC内的计算神经元簇数量N。采用二 分法从矩形核心集合MERs中确定合适的目标核心范围集合MERj,使大于等于 且最接近计算神经元簇数量N。进一步地,基于构建的代价函数,采用遗传算法为目标应用 的每个计算神经元簇在MERbest范围内映射一个计算核心corej。同时,根据EIONC 检测nci连接的是否为输入输出神经元簇ionci,如果是,则根据脉冲输入输出最短距离优先 策略映射ionci到虚拟输入输出核心
图4是本实施例的遗传算法的执行流程图,在其中的一些实施例中,如图4所示,上述遗传算法可以按照以下步骤执行:
步骤S401,以目标应用、目标核心范围集合、输入输出核心集合以及预设的最大遗传代数为输入数据,初始化种群。
其中,每个个体是随机构造的M个初始解空间,表示为:。针对每个解空间MSj,随机映射每个计算神经元簇到目标核心范围集合中MERbest的计算核心,使;根据脉冲输入输出最短距离优先策略将输入输出神经元簇映射至输入输出核心iocorej,使。最大遗传代数 MAX_GENERATIONS是预先设定的值。
步骤S402,评估每个个体。
具体地,遍历种群中的每个个体,计算每个个体的适应度并累加。
步骤S403,选择个体。
具体地,可以采用轮盘法基于适应度选择被选中的个体。
步骤S404,通过个体交叉产生新个体。
具体地,在父代个体中交换部分解空间的计算神经元簇映射的核心,根据EIONC 检测nci连接的是否为输入输出神经元簇ionci,如果是,则根据脉冲输入输出最短距离优先 策略映射ionci到iocorej,并更新ionci的映射结果。
步骤S405,进行变异操作。
具体地,随机改变个体中的解空间的nci映射的核心,同样根据EIONC检测nci连接的是否为输入输出神经元簇ionci,如果是,则根据脉冲输入输出最短距离优先策略映射ionci到iocorej,并更新ionci的映射结果;通过变异操作可以增加种群的多样性。
步骤S406,生成新一代种群。
具体地,通过重复的选择、交叉和变异操作生成新的种群。
步骤S407,判断是否迭代至最大遗传代数;若是,则将当前最新种群识别为最优种群,并执行步骤S408;否则,基于新的种群,跳转执行步骤S402。
步骤S408,基于代价函数,从最优种群中确定最优适应度的解空间。
具体地,本实施例的遗传算法中,每个个体的适应度是指M个解空间中映射代价最低的解空间,其中每个MSj的映射代价通过代价函数COST(MSj,NC)计算。根据该代价函数,在上述最优种群中,确定最优适应度的解空间MSbest,该解空间即为目标映射方案。其中,上述“个体”、“适应度”、“最大遗传代数”等名词属于遗传算法领域常见技术名称,在此不做更多解释。
进一步地,在其中的一些实施例中,上述遗传算法所涉及的代价函数COST(MS,NC)具有如式(1)的结构,其中,COST中所有计算核心之间的脉冲通信代价具体可以表示为:
COST中所有输入输出核心与计算核心之间的脉冲通信代价具体可以表示为:
其中,表示映射后的两个核之间传递一个脉冲消耗 的代价,计算如下:
另外,interchipnum表示两个计算核心之间传递脉冲的路径跨芯片的数量;dis表示两个计算核心之间的脉冲包传递路径,是指由片上网络路由算法决定的脉冲包在计算核心通道间所经过的路径,如芯片的片上路由算法采用XY路由算法。
表示两个神经形态核心之间的曼哈顿距离,其中MS(ncs)表示源核心,MS(ncd)表示目的核心;ENroute表示路由器路由一个脉冲消耗的能耗,ENintrawire表示芯片内路由器之间的链路传递一个脉冲消耗的能耗,ENinterwire表示芯片间路由器之间的链路传递一个脉冲消耗的能耗。
图5是本实施例的脉冲传递路径的示意图,图5所示,在其中的一些实施例中,目标硬件由芯片1和芯片2组成,计算核心a和计算核心b的坐标分别为a=(3,3),b=(6,1),a到b的路径经过6个路由器,1个芯片间链路,4个芯片内的链路,上述链路如图5中的箭头所示,a到b的脉冲包传递路径dis=|6-3|+|1-3|=5,a到b传递一个脉冲的代价为:
另外,代价函数COST(MS,NC)的表达式中,表示矩形区域面积带来的 代价,area指所有计算核心构成的区域的矩形面积函数。图6是本实施例的计算核心所占矩 形面积的示意图,如图6所示,实线矩形框所包围的部分代表所有计算核心所占区域的矩形 面积。
进一步地,在其中的一些实施例中,上述脉冲输入输出最短距离优先策略是指根据确定的计算核心MS(nci),在输入输出核心集合HWIOCORE内按照如下规则找到输入输出核心MS(ionci):
其中,argmin指计算使后式达到最小值时的变量的取值。
本实施例还提供了一种神经元计算机操作***的资源映射***,图7是本实施例的神经元计算机操作***的资源映射***的结构示意图,如图7所示,该***包括应用开发框架71、编译器72、神经元计算机操作***73以及神经形态硬件74;其中:
应用开发框架71用于脉冲神经网络应用的建模与训练;编译器72用于对脉冲神经网络进行编译,并在编译阶段划分神经元簇;神经元计算机操作***73作为运行时用于进行神经形态计算核心的抽象和管理、将神经元簇映射至神经形态计算核心以及将脉冲神经网络部署至神经形态硬件上;神经形态硬件74用于运行脉冲神经网络应用。
在本实施例中还提供了一种神经元计算机操作***的资源映射装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是本实施例的神经元计算机操作***的资源映射装置的结构框图,如图8所示,该装置包括:获取模块81、抽象模块82、矩形划分模块83、集合选择模块84、函数构建模块85以及映射模块86,其中:
获取模块81用于获取待运行的目标应用,其中,所述目标应用包括划分好的目标神经元簇;抽象模块82用于将用于运行的目标硬件的运行资源抽象为二维网格模型;其中,运行资源包括若干个运行核心,二维网格模型的每个连接点对应一个运行核心,运行核心包括计算核心和输入输出核心;矩形划分模块83用于查询各运行核心的最新运行状态,并基于最大空矩形法,将二维网格模型中空闲的计算核心划分为若干个矩形核心集合;集合选择模块84用于根据各矩形核心集合包含的计算核心数量,和目标神经元簇的数量,在若干个矩形核心集合中,为目标应用确定匹配的矩形核心集合,得到目标核心范围集合;函数构建模块85用于基于目标硬件中各计算核心之间的脉冲通信代价、输入输出核心与计算核心之间的脉冲通信代价、在二维网格中全部计算核心所占区域的面积以及预设的经验常量,构建代价函数;代价函数用于估算运行目标应用时,将各目标神经元簇映射至不同计算核心的映射代价;映射模块86用于基于目标应用和代价函数,确定映射代价最小的映射方案,并基于映射代价最小的映射方案将各目标神经元簇映射至目标核心范围集合中对应的目标运行核心处运行。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
此外,结合上述实施例中提供的神经元计算机操作***的资源映射方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种神经元计算机操作***的资源映射方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (8)

1.一种神经元计算机操作***的资源映射方法,其特征在于,包括:
获取待运行的目标应用,其中,所述目标应用包括划分好的目标神经元簇;
将用于运行的目标硬件的运行资源抽象为二维网格模型;其中,所述运行资源包括若干个运行核心,所述二维网格模型的每个连接点对应一个所述运行核心,所述运行核心包括计算核心和输入输出核心;
查询各所述计算核心的最新运行状态,并基于最大空矩形法,将所述二维网格模型中空闲的计算核心划分为若干个矩形核心集合;
根据各所述矩形核心集合包含的计算核心数量,和所述目标神经元簇的数量,在若干个所述矩形核心集合中,为目标应用确定匹配的矩形核心集合,得到目标核心范围集合;
基于所述目标硬件中各所述计算核心之间的脉冲通信代价、所述输入输出核心与所述计算核心之间的脉冲通信代价、在所述二维网格中全部所述计算核心所占区域的面积以及预设的经验常量,构建代价函数;所述代价函数用于估算运行所述目标应用时,将各所述目标神经元簇映射至不同所述计算核心的映射代价;
基于所述目标应用、所述目标核心范围集合、所述输入输出核心构成的集合以及预设的最大遗传代数,利用遗传算法生成将所述目标神经元簇映射至所述运行核心的多个候选映射方案;
基于所述代价函数,将多个所述候选映射方案中映射代价最小的候选映射方案识别为目标映射方案;
根据所述目标映射方案,将各所述目标神经元簇映射至对应的目标运行核心;
基于所述目标运行核心运行所述目标应用。
2.根据权利要求1所述的神经元计算机操作***的资源映射方法,其特征在于,所述目标神经元簇包括计算神经元簇和输入输出神经元簇。
3.根据权利要求2所述的神经元计算机操作***的资源映射方法,其特征在于,所述输入输出核心对应所述二维网格模型边缘的连接点。
4.根据权利要求3所述的神经元计算机操作***的资源映射方法,其特征在于,所述目标应用包括计算神经元簇集合、输入输出神经元簇集合、计算神经元簇连接集合以及输入输出神经元簇连接集合。
5.根据权利要求1所述的神经元计算机操作***的资源映射方法,其特征在于,所述基于所述目标应用、所述目标核心范围集合、所述输入输出核心构成的集合以及预设的最大遗传代数,利用遗传算法生成将所述目标神经元簇映射至所述运行核心的多个候选映射方案,包括:
当所述目标神经元簇为输入输出神经元簇时,基于预设的脉冲输入输出最短距离优先策略,生成将所述目标神经元簇映射至距离最短的目标输入输出核心的输入输出映射方案;
基于所述输入输出映射方案,生成所述候选映射方案。
6.根据权利要求2所述的神经元计算机操作***的资源映射方法,其特征在于,所述根据各所述矩形核心集合包含的计算核心数量,和所述目标神经元簇的数量,在若干个所述矩形核心集合中,为目标应用确定匹配的矩形核心集合,得到目标核心范围集合,包括:
将包含的计算核心数量不少于所述计算神经元簇的数量的所述矩形核心集合,确定为候选集合;
确定所述候选集合包含的计算核心数量与所述计算神经元簇的数量之间的数量差值,将所述数量差值最小的所述候选集合确定为所述目标核心范围集合。
7.一种神经元计算机操作***的资源映射装置,其特征在于,包括:获取模块、抽象模块、矩形划分模块、集合选择模块、函数构建模块以及映射模块,其中:
所述获取模块,用于获取待运行的目标应用,其中,所述目标应用包括划分好的目标神经元簇;
所述抽象模块,用于将用于运行的目标硬件的运行资源抽象为二维网格模型;其中,所述运行资源包括若干个运行核心,所述二维网格模型的每个连接点对应一个所述运行核心,所述运行核心包括计算核心和输入输出核心;
所述矩形划分模块,用于查询各所述运行核心的最新运行状态,并基于最大空矩形法,将所述二维网格模型中空闲的计算核心划分为若干个矩形核心集合;
所述集合选择模块,用于根据各所述矩形核心集合包含的计算核心数量,和所述目标神经元簇的数量,在若干个所述矩形核心集合中,为目标应用确定匹配的矩形核心集合,得到目标核心范围集合;
所述函数构建模块,用于基于所述目标硬件中各所述计算核心之间的脉冲通信代价、所述输入输出核心与所述计算核心之间的脉冲通信代价、在所述二维网格中全部所述计算核心所占区域的面积以及预设的经验常量,构建代价函数;所述代价函数用于估算运行所述目标应用时,将各所述目标神经元簇映射至不同所述计算核心的映射代价;
所述映射模块,用于基于所述目标应用、所述目标核心范围集合、所述输入输出核心构成的集合以及预设的最大遗传代数,利用遗传算法生成将所述目标神经元簇映射至所述运行核心的多个候选映射方案;基于所述代价函数,将多个所述候选映射方案中映射代价最小的候选映射方案识别为目标映射方案;根据所述目标映射方案,将各所述目标神经元簇映射至对应的目标运行核心;基于所述目标运行核心运行所述目标应用。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至权利要求6中任一项所述的神经元计算机操作***的资源映射方法的步骤。
CN202410141524.6A 2024-02-01 2024-02-01 神经元计算机操作***的资源映射方法和装置 Active CN117688992B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410141524.6A CN117688992B (zh) 2024-02-01 2024-02-01 神经元计算机操作***的资源映射方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410141524.6A CN117688992B (zh) 2024-02-01 2024-02-01 神经元计算机操作***的资源映射方法和装置

Publications (2)

Publication Number Publication Date
CN117688992A CN117688992A (zh) 2024-03-12
CN117688992B true CN117688992B (zh) 2024-06-04

Family

ID=90139394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410141524.6A Active CN117688992B (zh) 2024-02-01 2024-02-01 神经元计算机操作***的资源映射方法和装置

Country Status (1)

Country Link
CN (1) CN117688992B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112561042A (zh) * 2021-03-01 2021-03-26 浙江大学 一种类脑计算机操作***的神经模型映射方法
CN114492782A (zh) * 2022-04-19 2022-05-13 之江实验室 基于强化学习的神经网络的片上核心编译映射方法及装置
CN115470889A (zh) * 2022-08-31 2022-12-13 南京大学 基于强化学习的片上网络自主最优映射探索***及方法
CN116070682A (zh) * 2023-04-06 2023-05-05 浙江大学 神经元计算机操作***的snn模型动态映射方法及装置
CN116225689A (zh) * 2022-12-15 2023-06-06 浙江大学 基于静态中继的神经元操作***任务资源配置方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3881241A1 (en) * 2018-11-18 2021-09-22 Innatera Nanosystems B.V. Spiking neural network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112561042A (zh) * 2021-03-01 2021-03-26 浙江大学 一种类脑计算机操作***的神经模型映射方法
WO2022183921A1 (zh) * 2021-03-01 2022-09-09 浙江大学 一种类脑计算机操作***的神经模型映射方法
CN114492782A (zh) * 2022-04-19 2022-05-13 之江实验室 基于强化学习的神经网络的片上核心编译映射方法及装置
CN115470889A (zh) * 2022-08-31 2022-12-13 南京大学 基于强化学习的片上网络自主最优映射探索***及方法
CN116225689A (zh) * 2022-12-15 2023-06-06 浙江大学 基于静态中继的神经元操作***任务资源配置方法及装置
CN116070682A (zh) * 2023-04-06 2023-05-05 浙江大学 神经元计算机操作***的snn模型动态映射方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
方伯 ; 孙林夫 ; 唐慧佳 ; .基于自组织I/O映射神经网络的产业链核心竞争力.计算机集成制造***.(01),全文. *

Also Published As

Publication number Publication date
CN117688992A (zh) 2024-03-12

Similar Documents

Publication Publication Date Title
CN107172166B (zh) 面向工业智能化服务的云雾计算***
Dolati et al. DeepViNE: Virtual network embedding with deep reinforcement learning
CN107533666B (zh) 具有用于可扩展事件驱动计算***的异构存储器结构的网络和分层路由构造
CN114492782B (zh) 基于强化学习的神经网络的片上核心编译映射方法及装置
CN112561042B (zh) 一种类脑计算机操作***的神经模型映射方法
Ayoubi et al. An autonomous IoT service placement methodology in fog computing
CN112468401B (zh) 用于类脑处理器的片上网络路由通信方法及片上网络
CN116070682B (zh) 神经元计算机操作***的snn模型动态映射方法及装置
Mohiz et al. Application mapping using cuckoo search optimization with Lévy flight for NoC-based system
CN115168281B (zh) 一种基于禁忌搜索算法的神经网络片上映射方法和装置
Firouz et al. A novel controller placement algorithm based on network portioning concept and a hybrid discrete optimization algorithm for multi-controller software-defined networks
Sarrafzade et al. A genetic-based approach for service placement in fog computing
CN115828831B (zh) 基于深度强化学习的多芯粒芯片算子放置策略生成方法
CN105634974A (zh) 软件定义网络中的路由确定方法和装置
Wang et al. A reinforcement learning approach for online service tree placement in edge computing
CN111352731A (zh) 在边缘计算网络中分配任务的方法、***、装置及介质
CN102325089A (zh) 基于差分进化和捕食搜索策略的胖树型片上网络映射方法
Vu et al. Low-latency K-means based multicast routing algorithm and architecture for three dimensional spiking neuromorphic chips
CN117688992B (zh) 神经元计算机操作***的资源映射方法和装置
Vu et al. Analytical performance assessment and high-throughput low-latency spike routing algorithm for spiking neural network systems
CN206100022U (zh) 一种基于无限带宽的直连架构计算集群***
Wang et al. An efficient framework for online virtual network embedding in virtualized cloud data centers
Hironaka et al. Towards an optimized multi FPGA architecture with STDM network: A preliminary study
Budenske et al. On-line use of off-line derived mappings for iterative automatic target recognition tasks and a particular class of hardware platforms
CN117648956B (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