CN114338506B - 一种类脑计算机操作系统的神经任务片内路由方法及装置 - Google Patents
一种类脑计算机操作系统的神经任务片内路由方法及装置 Download PDFInfo
- Publication number
- CN114338506B CN114338506B CN202210249528.7A CN202210249528A CN114338506B CN 114338506 B CN114338506 B CN 114338506B CN 202210249528 A CN202210249528 A CN 202210249528A CN 114338506 B CN114338506 B CN 114338506B
- Authority
- CN
- China
- Prior art keywords
- core
- relay
- routing
- target
- chip
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000001537 neural effect Effects 0.000 title claims abstract description 31
- 238000011430 maximum method Methods 0.000 claims abstract description 7
- 230000009191 jumping Effects 0.000 claims description 10
- 210000004556 brain Anatomy 0.000 claims description 8
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000004353 relayed correlation spectroscopy Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 7
- 210000005036 nerve Anatomy 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/12—Shortest path evaluation
- H04L45/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种类脑计算机操作系统的神经任务片内路由方法及装置,通过目标核心形成的区域、离边缘路由区域最远的一行核心,以及判断目标核心是否需要配置中继路由,找到最短的边缘路由核心,以从远及近的原则配置目标核心,采用最短路径方法以及单次路由步长最大方法找到中继路由核心和边缘路由核心;本发明通过选择步长较短的中继路由和边缘路由,解决了离输入边缘较远的核心路由不可达问题,解决了片内路由步长过长引起神经任务运行时间长问题。
Description
技术领域
本发明涉及类脑计算机操作系统技术领域,尤其是涉及一种类脑计算机操作系统的神经任务片内路由方法及装置。
背景技术
传统的冯诺依曼体系结构的计算机难以满足目前高速发展的人工智能计算性能需求,尤其是面对低功耗高性能计算领域,如边缘计算。因此,脉冲神经网络为寻求更低功耗和更高效计算性能提供了一条可行的路径,但在冯诺依曼体系结构计算机上仿真脉冲神经网络较困难,为了解决这一难题,出现了类脑计算芯片,类脑计算芯片通过对生物大脑结构的模仿来运行脉冲神经网络;相对于现有的计算体系结构,类脑计算是借鉴了生物大脑中信息处理的基本规律,在硬件实现与软件算法等多层面做出了本质变革,从而实现在功耗和计算能力等诸多方面的大幅改进。类脑计算机是由多个类脑计算芯片采用水平扩展的方式构建而成,具有运行超大规模脉冲神经任务能力的新型计算机模型。类脑操作系统为用户提供透明的计算资源管理及神经任务输入类脑计算芯片的能力。神经任务是指神经模型在类脑计算芯片上的运行实体。
类脑计算芯片是由m*n的二维网格结构组成,每个网格代表一个核心,每个核心既可存储神经任务的模型数据,同时也提供了路由的功能。片内路由是指为了将数据包从芯片边缘路由到目标核心而选择的通信路径;片内路由包括边缘路由核心和中继路由核心;由于类脑计算芯片的特性,类脑操作系统只能与类脑计算芯片的边缘核心交互,由边缘核心将数据包路由到目标核心,且单次路由的步长有限;如果目标核心距离边缘核心步长超过限制,则需要找到中继路由核心,即边缘路由核心先将数据包路由到中继路由核心,然后再由中继路由核心将数据包路由到目标核心;
类脑计算机支持多个神经任务并行,不同的神经任务分配了不同的核心,已经配置了神经任务的核心不能再配置给其他神经任务;对于超大规模神经任务会占用更多核心,如果神经任务的周围核心提前被配置,那么较远的核心面临着路由不可达的情况,就要面临着做任务拆分,从而增加了神经任务整体路由步长,进而影响任务的整体运行时间;因此类脑操作系统为了应对片内路由步长问题需要进行合理的路由选择。现有技术主要是面向冯诺依曼体系结构的计算机,对于类脑计算机上片内路由选择的研究依旧是空白。
发明内容
为解决现有技术的不足,实现片内路由步长较短,降低神经任务运行时间的目的,本发明采用如下的技术方案:
一种类脑计算机操作系统的神经任务片内路由方法,将类脑计算芯片中的核心构建成二维网格,每个网格代表一个核心,每个核心用于存储神经任务的模型数据和提供中继路由,包括如下步骤:
步骤S1:确定目标核心形成的区域R2(x2_min,y2_min,x2_max,y2_max),确定离边缘路由区域最远的一行核心R3(x2_min,y2_max,x2_max,y2_max);
步骤S2:判断目标核心R2是否需要配置中继路由;
步骤S3:采用步长最短方法,在边缘路由区域R1内,为目标核心形成的区域R2内的所有目标核心,找到最短的边缘路由核心,搜索完成后跳转至步骤S5;
步骤S4:为了利用未被配置的核心作为中继路由,以由远及近的原则配置目标核心,从需要搜索中继路由的目标核心形成的区域R4(x4_min,y4_min,x4_max,y4_max)中,确定起始搜索核心坐标search_core(x_search,y_search)=search_core(x4_min,y4_max);为了配置最少的中继路由且使第一级中继路由转发的目标核心数量达到最大,每次尽量搜索类脑芯片中中继路由核心支持配置的最大目标核心数量MAX_RELAY_CORES个;对于需要多级中继的核心,通过最短路径方法以及单次路由步长最大方法,找到多级中继核心和边缘路由;直到将需要搜索中继路由的目标核心形成的区域R4内的所有目标核心配置完成;
步骤S5:根据类脑芯片数据包封包规则,进行封装打包并配置到芯片中。
进一步地,所述的一种类脑计算机操作系统的神经任务片内路由方法,包括如下情形:
(1)目标核心形成的区域R2都不需要中继路由:离边缘路由区域最远的一行核心R3到边缘路由区域R1的步长,小于等于类脑芯片中中继路由核心可以路由的最大步长MAX_STEP,则通过边缘路由均路由可达,确定目标核心形成的区域R2为不需要搜索中继路由的核心区域R5(x5_min,y5_min,x5_max,y5_max)=R2,进入步骤S3找到所有目标核心的边缘路由;
(2)目标核心形成的区域R2均需中继路由:确定需要搜索中继路由的目标核心形成的区域R4(x4_min,y4_min,x4_max,y4_max);跳转至步骤S4找到相应的中继路由核心;
(3)部分目标核心需要配置中继路由,部分目标核心不需要配置中继路由:确定需要搜索中继路由的目标核心形成的区域R4(x4_min,y4_min,x4_max,y4_max),确定不需要搜索中继路由的核心区域R5(x5_min,y5_min,x5_max,y5_max);首先跳转至步骤S4为需要搜索中继路由的目标核心形成的区域R4找到相应的中继路由和边缘路由,将确定需要搜索中继路由的目标核心形成的区域R4全部配置完成;然后跳转至步骤S3配置不需要搜索中继路由的核心区域R5。
此方法是为了从离输入边缘最远的目标核心开始配置,如果较远的核心需要中继路由,则可以利用较近的核心作为中继路由,配置结束后清除中继路由,则继续配置较近的核心,可以带来的收益:在不拆分模型连接的情况下配置离输入边缘较远的核心。
进一步地,所述步骤S3中,最短的边缘路由核心是与目标核心的曼哈顿距离最短的作为边缘路由核心。
进一步地,所述步骤S4包括如下步骤:
步骤S4.1:从起始搜索核心坐标search_core开始遍历,横向遍历的步长最大为类脑芯片中中继路由核心可以路由的最大步长MAX_STEP,且不超过需要搜索中继路由的目标核心形成的区域R4,纵向遍历的步长最大为类脑芯片中中继路由核心可以路由的最大步长MAX_STEP,且不超过需要搜索中继路由的目标核心形成的区域,即计算任务的核心边缘R4,记录找到的目标核心数量,当目标核心数量达到类脑芯片中中继路由核心支持配置的最大目标核心数量64时,结束搜索;将找到的目标核心记录到一维数组列表config_cores中,并更新核心占用情况的二维数组,即表1“类脑资源使用表A”的占用情况config字段为1;将遍历到的空闲核心记录到空闲核心列表“free_cores”中作为配置一级中继路由核心范围;记录横向遍历的列x坐标和纵向遍历的行y坐标;每遍历一行,起始搜索核心坐标的行坐标y_search减1;记录横向遍历的最大步长X_STEPS;
当纵向遍历到需要搜索中继路由的目标核心形成的区域R4外时,即y_search小于y4_min,则结束此次遍历;更新起始搜索核心坐标的行、列坐标:y_search=y4_max,x_search=x_search+X_STEPS;
当遍历到的目标核心数量等于类脑芯片中中继路由核心支持配置的最大目标核心数量MAX_RELAY_CORES时,若此行没有遍历结束,则起始搜索核心坐标的行坐标y_search值不更新,将此行剩余未遍历到的核心加入空闲核心列表“free_cores”中作为中继路由核心选择;
当空闲核心列表“free_cores”为空时,将更新后的起始搜索核心坐标的行坐标y_search一行的核心加入空闲核心列表“free_cores”中作为中继路由核心选择;此方案可以保证一定找到一级中继路由核心;
上述方式遍历的收益是,尽可能使每次配置的目标核心数量达到最大值MAX_RELAY_CORES,可节省配置中继路由核心的数量;且一次遍历的步长都可达;
步骤S4.2:基于中继路由核心到所有目标核心曼哈顿距离之和最小原则,找到相应的核心作为第一级中继路由核心relay(x,y),将找到的中继路由核心relay(x,y)更新到表3“中继路由字典F”中,中继路由核心relay(x,y)的下一跳核心是此次搜索的所有目标核心“config_cores”;上述方式找到中继路由核心带来的收益:可以使中继路由核心到目标核心的步长最短;
步骤S4.3:计算中继路由核心relay(x,y)到边缘路由区域R1的最短步长,当步长小于等于类脑芯片中中继路由核心可以路由的最大步长MAX_STEP时,确定中继路由核心relay(x,y)的边缘路由edge(x,y_min);当步长大于类脑芯片中中继路由核心可以路由的最大步长MAX_STEP时,则继续搜索多级中继路由核心和边缘路由;
步骤S4.4:确定搜索多级中继的区域R6(x6_min,y6_min,x6_max,y6_max),R6(x_min,y_min,x_max,y_search),以中继路由核心relay(x,y)为第一级中继路由,通过最短路径方法以及单次路由步长最大方法,在多级中继的区域R6内找到多级中继核心和边缘路由,将找到的中继路由核心relay(x,y)更新到表3“中继路由字典F”中;
步骤S4.5:当搜索结束后,跳到步骤5,配置中继路由字典和目标核心;当配置结束后,根据更新后的起始搜索核心坐标search_core(x_search,y_search),返回步骤S4.1继续搜索和配置其他需要中继的目标核心,直至所有需要中继的目标核心配置完成。
进一步地,所述步骤S4.1中,需要搜索中继路由的目标核心形成的区域外,是指起始搜索核心坐标的行坐标小于需要搜索中继路由的目标核心形成的区域的行坐标最小值;更新起始搜索核心坐标的行、列坐标,是将需要搜索中继路由的目标核心形成的区域的行坐标最大值,作为起始搜索核心坐标的行,将起始搜索核心坐标的列坐标与横向遍历的最大步长的和,作为新的起始搜索核心坐标的列坐标。
进一步地,所述步骤S4.2中,循环遍历空闲核心列表“free_cores”(x,y),找出到一维数组列表config_cores中,所有目标核心曼哈顿距离之和最小的核心坐标,作为中继路由核心relay(x,y),目标核心曼哈顿距离之和如下:
其中,n表示一维数组列表中待配置核心的数量,x、y表示空闲核心列表中的空闲核心坐标,dest_x i 、dest_y i 表示一维数组列表中待配置核心的坐标。
进一步地,所述步骤S4.4中,通过最短路径方法找到具体路径和边缘路由核心的搜索,包括如下步骤:
步骤S4.4.1:初始化一个队列queue,队列每个元素存储当前核心坐标以及前继核心坐标;记录一个同样大小的二维数组标记位isVisited,用于记录搜索时被访问过的核心,对于核心占用情况的二维数组“类脑资源使用表A”中配置的核心位置,将二维数组标记位isVisited初始化为1;
步骤S4.4.2:中继路由核心relay(x,y)第一个入队,以中继路由核心的列坐标x与更新后的起始搜索核心坐标的行坐标y_search构成的坐标(x,y_search),作为第二个核心入队,(x,y_search)的前继核心是relay(x,y);
步骤S4.4.3:判断队列queue是否非空;若为非空,进入步骤步骤S4.4.4,否则继续判断;
步骤S4.4.4:若为非空,则队首节点A出队,循环找到此节点核心的相邻四个方向的核心B,检查核心B是否再搜索范围内,以及是否为未被访问过的核心,若是,则进入步骤步骤S4.4.5,否则返回步骤S4.4.3;
步骤S4.4.5:将核心B的前继核心设置为核心A,核心B入队,标记核心B位置的标记位isVisited为1,检查核心B是否为边缘核心,若是,则结束搜索,返回队列queue,否则步骤S4.4.3;
步骤S4.4.6:搜索结束后返回的非队列queue的最后一个元素是最短路径的边缘路由核心edge_core;从队列queue的最后一个元素edge_core开始,找到元素里记录的前继核心并记录到路径列表“path_list”中,直到搜索到起点中继路由核心relay(x,y),则路径列表“path_list”就是最短路径经过的所有核心。
进一步地,所述步骤S4.4中,单次路由步长最大方法是根据中继步长最大化且路由可达原则,从路径列表“path_list”中找到相应的多级中继,保证在路由可达的情况下,配置最少中继核心,减少因配置中继带来的开销;以中继路由核心relay(x,y)为第一级中继,从路径列表“path_list”中找到二级中继,且二级中继离一级中继的步长最长且不超过类脑芯片中中继路由核心可以路由的最大步长MAX_STEP;再继续以二级中继为起点,找到第三级中继,直到中继核心离边缘路由不超过类脑芯片中中继路由核心可以路由的最大步长MAX_STEP,将找到的每级中继记录到“中继路由字典F”中。
进一步地,所述步骤S3中,将遍历到的目标核心以及找到的边缘路由记录到如表2所示的“片内路由字典E”中;所述步骤S5中,根据类脑芯片数据包封包规则,将“中继路由字典F”和“片内路由字典E”封装打包成芯片可识别的数据包并配置到芯片中。
一种类脑计算机操作系统的神经任务片内路由装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于所述的类脑计算机操作系统的神经任务片内路由方法。
本发明的优势和有益效果在于:
本发明通过中继路由和边缘路由的选择策略,解决了现有技术中离输入边缘较远的核心路由不可达的技术问题,同时使片内路由步长较短,避免了片内路由步长过长,导致路由不可达而拆分模型,引起神经任务运行时间长的情况,从而降低神经任务运行时间。
附图说明
图1是本发明的实施例中数据包经过边缘路由路由到目标核心的示意图。
图2是本发明的实施例中数据资源的情况示意图。
图3是本发明实施例中的方法流程图。
图4是本发明实施例中最短路径方法找到具体路径和边缘路由核心的搜索流程图。
图5是本发明实施例中的装置结构图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
类脑操作系统维护一个全局变量MAX_STEP,即类脑芯片中中继路由核心可以路由的最大步长;本发明以最大步长15介绍;
类脑操作系统维护一个全局变量MAX_RELAY_CORES,即类脑芯片中中继路由核心支持配置的最大目标核心数量;本发明以64介绍;
类脑操作系统维护一个全局变量MAX_RELAY_IDS,即类脑芯片中中继路由核心支持的最大中继路由级数;本发明以最大中继级数为7介绍;
把计算任务的配置数据从用户空间写入到芯片的目标核心中,类脑操作系统只能把数据包输入到芯片的边缘路由,由边缘路由再路由到目标核心;如果边缘路由节点距离目标核心的步长超过MAX_STEP,则需要在中间位置找到中继路由核心,由中继路由核心将数据包转发到目标核心;若一个中继路由到达不了,则需要多级中继;如图1所示,数据包需经过边缘路由(1,0)(17)路由到目标核心(7,18)(18),从边缘路由核心(1,0)(17)先横向走6步(20),再纵向走18步(21)到目标核心(7,18)(18),由于纵向走的步长18(21)超过了芯片支持的最大步长MAX_STEP,则数据包是不能被送到目标核心(7,18)(18)位置的;因此需要找到一个合适的中继路由核心(3,15)(19),先从边缘路由(1,0)(17)横向走2步(22)、纵向走15步(23)到达中继路由核心(3,15)(19),再由中继路由核心(3,15)(19)横向走4步(24)、纵向走3步(25)到目标核心(7,18)(18);
类脑操作系统以核心坐标为下标维护一个二维数组如表1所述,记录核心占用情况和被占用的任务ID,“占用情况”字段中未被使用的核心为0,已被使用的核心为1,有脉冲神经任务需要配置的核心为2;需要配置的任务被分配成功后,将占用情况更新为1;对应的资源如图2所示,已经被分配了任务1(1)和任务2(2);
表1 类脑资源使用表A
核心 | 占用情况config | 任务ID |
(0,0) | 0 | -1 |
…… | ||
(5,2) | 1 | 1 |
(5,3) | 1 | 1 |
…… | ||
(15,1) | 1 | 2 |
(15,2) | 1 | 2 |
…… | ||
(17,7) | 2 | -1 |
…… | ||
(23,27) |
类脑操作系统维护一个全局变量R(x_min,y_min,x_max,y_max),即计算资源形成的长方形区域,(x_min,y_min)表示左上角坐标,(x_max,y_max)表示右下角坐标;如图2所示,R(0,0,23,27);
类脑操作系统维护一个边缘路由区域R1(x1_min,y1_min,x1_max,y1_min);如图2所示的R(0,0,23,0);
类脑操作系统接收到一个新的计算任务3(3),已知任务的目标核心坐标、基于片内路由走的步长最短原则搜索片内路由,具体方法如下:
如图3所示,一种类脑计算机操作系统的神经任务片内路由方法,将类脑计算芯片中的核心构建成二维网格,每个网格代表一个核心,每个核心用于存储神经任务的模型数据和提供中继路由,包括如下步骤:
步骤S1:确定目标核心形成的区域R2(x2_min,y2_min,x2_max,y2_max),确定离边缘路由区域最远的一行核心R3(x2_min,y2_max,x2_max,y2_max)。
如图2所示,遍历核心占用情况的二维数组,即“类脑资源使用表A”,确定目标核心形成的区域R2(3,7,22,24),确定离边缘最远的一行核心R3(3,24,22,24)。
步骤S2:判断目标核心形成的区域R2是否需要配置中继路由;包括如下情形:
(1)目标核心形成的区域R2都不需要中继路由:离边缘路由区域最远的一行核心R3到边缘路由区域R1的步长,小于等于类脑芯片中中继路由核心可以路由的最大步长MAX_STEP,则通过边缘路由均路由可达,确定目标核心形成的区域R2为不需要搜索中继路由的核心区域R5(x5_min,y5_min,x5_max,y5_max)=R2,进入步骤S3找到所有目标核心的边缘路由;
(2)目标核心形成的区域R2均需中继路由:确定需要搜索中继路由的目标核心形成的区域R4(x4_min,y4_min,x4_max,y4_max);跳转至步骤S4找到相应的中继路由核心;
(3)部分目标核心需要配置中继路由,部分目标核心不需要配置中继路由:确定需要搜索中继路由的目标核心形成的区域R4(x4_min,y4_min,x4_max,y4_max),确定不需要搜索中继路由的核心区域R5(x5_min,y5_min,x5_max,y5_max);首先跳转至步骤S4为需要搜索中继路由的目标核心形成的区域R4找到相应的中继路由和边缘路由,将确定需要搜索中继路由的目标核心形成的区域R4全部配置完成;然后跳转至步骤S3配置不需要搜索中继路由的核心区域R5。
至此计算任务中的所有目标核心均配置完成,如图2所示,确定R4(3,16,22,24),R5(3,7,22,15)。
此方法是为了从离输入边缘最远的目标核心开始配置,如果较远的核心需要中继路由,则可以利用较近的核心作为中继路由,配置结束后清除中继路由,则继续配置较近的核心,可以带来的收益:在不拆分模型连接的情况下配置离输入边缘较远的核心。
步骤S3:采用步长最短方法,在边缘路由区域R1内,为目标核心形成的区域R2内的所有目标核心,找到最短的边缘路由核心,将遍历到的目标核心以及找到的边缘路由记录到如表2所示的“片内路由字典E”中,搜索完成后跳转至步骤S5。
表2 片内路由字典E
所述最短的边缘路由核心,是与目标核心的曼哈顿距离最短的作为边缘路由核心。
如图2所示,目标核心(3,7)的边缘路由为(3,0),目标核心(21,9)的边缘路由为(21,0)。
步骤S4:为了利用未被配置的核心作为中继路由,以由远及近的原则配置目标核心,从需要搜索中继路由的目标核心形成的区域R4(x4_min,y4_min,x4_max,y4_max)中,确定起始搜索核心坐标search_core(x_search,y_search)=search_core(x4_min,y4_max);为了配置最少的中继路由且使第一级中继路由转发的目标核心数量达到最大,每次尽量搜索类脑芯片中中继路由核心支持配置的最大目标核心数量64个;对于需要多级中继的核心,通过最短路径方法以及单次路由步长最大方法,找到多级中继核心和边缘路由;直到将需要搜索中继路由的目标核心形成的区域R4内的所有目标核心配置完成;
中继路由的搜索,包括如下步骤:
步骤S4.1:从起始搜索核心坐标search_core开始遍历,横向遍历的步长最大为类脑芯片中中继路由核心可以路由的最大步长MAX_STEP,且不超过需要搜索中继路由的目标核心形成的区域R4,纵向遍历的步长最大为类脑芯片中中继路由核心可以路由的最大步长MAX_STEP,且不超过需要搜索中继路由的目标核心形成的区域,即计算任务的核心边缘R4,记录找到的目标核心数量,当目标核心数量达到类脑芯片中中继路由核心支持配置的最大目标核心数量64时,结束搜索;将找到的目标核心记录到一维数组列表config_cores中,并更新核心占用情况的二维数组,即表1“类脑资源使用表A”的占用情况config字段为1;将遍历到的空闲核心记录到空闲核心列表“free_cores”中作为配置一级中继路由核心范围;记录横向遍历的列x坐标和纵向遍历的行y坐标;每遍历一行,起始搜索核心坐标的行坐标y_search减1;记录横向遍历的最大步长X_STEPS;
当纵向遍历到需要搜索中继路由的目标核心形成的区域R4外时,即y_search小于y4_min,则结束此次遍历;更新起始搜索核心坐标的行、列坐标:y_search=y4_max,x_search=x_search+X_STEPS;
当遍历到的目标核心数量等于类脑芯片中中继路由核心支持配置的最大目标核心数量64时,若此行没有遍历结束,则起始搜索核心坐标的行坐标y_search值不更新,将此行剩余未遍历到的核心加入空闲核心列表“free_cores”中作为中继路由核心选择;
当空闲核心列表“free_cores”为空时,将更新后的起始搜索核心坐标的行坐标y_search一行的核心加入空闲核心列表“free_cores”中作为中继路由核心选择;此方案可以保证一定找到一级中继路由核心。
上述方式遍历的收益是,尽可能使每次配置的目标核心数量达到最大值64,可节省配置中继路由核心的数量;且一次遍历的步长都可达。
如图2所示,从search_core(3,24)开始遍历,坐标(16,20)是遍历到的第64个目标核心,遍历结束后更新x_search=3,y_search=20,遍历到的空闲核心free_cores={(3,23)(4,23)(6,23)(9,23)(3,22)(5,22)(7,21)(8,21)(10,21)(5,20)(17,20)}。
步骤S4.2:基于中继路由核心到所有目标核心曼哈顿距离之和最小原则,找到相应的核心作为第一级中继路由核心relay(x,y),将找到的中继路由核心relay(x,y)更新到表3“中继路由字典F”中,中继路由核心relay(x,y)的下一跳核心是此次搜索的所有目标核心“config_cores”。
表3 中继路由字典F
循环遍历空闲核心列表“free_cores”(x,y)找出到一维数组列表config_cores中
所有目标核心曼哈顿距离之和:最小的核心坐标,作为中
继路由核心relay(x,y),其中n表示待配置核心“config_cores”的数量,x和y表示搜索到的
空闲核心“free_cores”列表中某一个核心core(free_cores[y])的x坐标和y坐标,dest_x i
和dest_y i 表示config_cores[i]的x坐标和y坐标。
上述方式找到中继路由核心带来的收益:可以使中继路由核心到目标核心的步长最短;
如图2所示,在free_cores列表中搜索到的中继路由核心relay(10,21),步长总和最小为326;
步骤S4.3:计算中继路由核心relay(x,y)到边缘路由区域R1的最短步长,当步长小于等于类脑芯片中中继路由核心可以路由的最大步长MAX_STEP时,确定中继路由核心relay(x,y)的边缘路由edge(x,y_min);当步长大于类脑芯片中中继路由核心可以路由的最大步长MAX_STEP时,则继续搜索多级中继路由核心和边缘路由;
如图2所示,一级中继路由核心relay(10,21)距离边缘路由R1的最短步长是21,即核心(10,21)到核心(10,0)的步长,超过了MAX_STEP,需要继续找到合适的中继路由核心;
步骤S4.4:确定搜索多级中继的区域R6(x6_min,y6_min,x6_max,y6_max),R6(x_min,y_min,x_max,y_search),以中继路由核心relay(x,y)为第一级中继路由,通过最短路径方法以及单次路由步长最大方法,在多级中继的区域R6内找到多级中继核心和边缘路由。
所述最短路径方法找到具体路径和边缘路由核心,搜索步骤如图4所示,包括如下步骤:
步骤S4.4.1:初始化一个队列queue,队列每个元素存储当前核心坐标以及前继核心坐标;记录一个同样大小的二维数组标记位isVisited,用于记录搜索时被访问过的核心,对于核心占用情况的二维数组“类脑资源使用表A”中配置的核心位置,将二维数组标记位isVisited初始化为1;
步骤S4.4.2:中继路由核心relay(x,y)第一个入队,以中继路由核心的列坐标x与更新后的起始搜索核心坐标的行坐标y_search构成的坐标(x,y_search),作为第二个核心入队,(x,y_search)的前继核心是relay(x,y);
步骤S4.4.3:判断队列queue是否非空;若为非空,进入步骤步骤S4.4.4,否则继续判断;
步骤S4.4.4:若为非空,则队首节点A出队,循环找到此节点核心的相邻四个方向的核心B,检查核心B是否再搜索范围内,以及是否为未被访问过的核心,若是,则进入步骤步骤S4.4.5,否则返回步骤S4.4.3;
步骤S4.4.5:将核心B的前继核心设置为核心A,核心B入队,标记核心B位置的标记位isVisited为1,检查核心B是否为边缘核心,若是,则结束搜索,返回队列queue,否则步骤S4.4.3;
步骤S4.4.6:搜索结束后返回的非队列queue的最后一个元素是最短路径的边缘路由核心edge_core;从队列queue的最后一个元素edge_core开始,找到元素里记录的前继核心并记录到路径列表“path_list”中,直到搜索到起点中继路由核心relay(x,y),则路径列表“path_list”就是最短路径经过的所有核心。
所述单次路由步长最大方法,是根据中继步长最大化且路由可达原则,从路径列表“path_list”中找到相应的多级中继,保证在路由可达的情况下,配置最少中继核心,减少因配置中继带来的开销;以中继路由核心relay(x,y)为第一级中继,从路径列表“path_list”中找到二级中继,且二级中继离一级中继的步长最长且不超过类脑芯片中中继路由核心可以路由的最大步长MAX_STEP;再继续以二级中继为起点,找到第三级中继,直到中继核心离边缘路由不超过类脑芯片中中继路由核心可以路由的最大步长MAX_STEP,以此类推,将找到的每级中继记录到“中继路由字典F”中。
如图2所述,找到的最短路径的path_list={(10,21) (10,20) (10,19) (11,19)(11,18) (11,17) (11,16) (11,15) (11,14) (11,13) (11,12) (11,11) (11,10) (11,9) (11,8) (11,7) (11,6) (11,5) (11,4) (11,3) (11,2) (11,1) (11,0)},其中,(10,21)为第一级中继核心,核心(11,0)为边缘路由;根据中继步长最大化原则,离第一级中继(10,21)步长可达的最远核心是(11,6),因为(11,5)距离(10,21)的步长为16,(11,6)距离(10,21)的步长为15,因此选择(11,6)作为第二级中继;第二级中继(11,6)到边缘路由核心(11,0)的步长为6,小于MAX_STEP,因此多级中继核心只有一级中继和二级中继。
步骤S4.5:当搜索结束后,跳到步骤5,配置中继路由字典和目标核心;当配置结束后,根据更新后的起始搜索核心坐标search_core(x_search,y_search),返回步骤S4.1继续搜索和配置其他需要中继的目标核心,直至所有需要中继的目标核心配置完成。
步骤S5:根据类脑芯片数据包封包规则,进行封装打包并配置到芯片中。
根据类脑芯片数据包封包规则,将“中继路由字典F”和“片内路由字典E”封装打包成芯片可识别的数据包并配置到芯片中。
与前述类脑计算机操作系统的神经任务片内路由方法的实施例相对应,本发明还提供了类脑计算机操作系统的神经任务片内路由装置的实施例。
参见图5,本发明实施例提供的一种类脑计算机操作系统的神经任务片内路由装置,包括存储器和一个或多个处理器,存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述实施例中的类脑计算机操作系统的神经任务片内路由方法。
本发明类脑计算机操作系统的神经任务片内路由装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本发明类脑计算机操作系统的神经任务片内路由装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的类脑计算机操作系统的神经任务片内路由方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
Claims (8)
1.一种类脑计算机操作系统的神经任务片内路由方法,将类脑计算芯片中的核心构建成二维网格,每个网格代表一个核心,每个核心用于存储神经任务的模型数据和提供中继路由,其特征在于包括如下步骤:
步骤S1:确定目标核心形成的区域,确定目标核心形成的区域中离边缘路由区域最远的一行核心;
步骤S2:判断目标核心形成的区域是否需要配置中继路由;包括如下情形:
(1)目标核心形成的区域都不需要中继路由:离边缘路由区域最远的一行核心到边缘路由区域的步长,小于等于类脑芯片中中继路由核心可以路由的最大步长,则通过边缘路由均路由可达,确定目标核心形成的区域为不需要搜索中继路由的核心区域,进入步骤S3找到所有目标核心的边缘路由;
(2)目标核心形成的区域均需中继路由:确定需要搜索中继路由的目标核心形成的区域;跳转至步骤S4找到相应的中继路由核心;
(3)部分目标核心需要配置中继路由,部分目标核心不需要配置中继路由:确定需要搜索中继路由的目标核心形成的区域,确定不需要搜索中继路由的核心区域;首先跳转至步骤S4为需要搜索中继路由的目标核心形成的区域找到相应的中继路由和边缘路由,将确定需要搜索中继路由的目标核心形成的区域全部配置完成;然后跳转至步骤S3配置不需要搜索中继路由的核心区域;
步骤S3:采用步长最短方法,在边缘路由区域内,为目标核心形成的区域内的所有目标核心,找到最短的边缘路由核心,搜索完成后跳转至步骤S5;
步骤S4:以由远及近的原则配置目标核心,从需要搜索中继路由的目标核心形成的区域中,确定起始搜索核心坐标;每次搜索类脑芯片中中继路由核心支持配置的最大目标核心数量;对于需要多级中继的核心,通过最短路径方法以及单次路由步长最大方法,找到多级中继核心和边缘路由;直到将需要搜索中继路由的目标核心形成的区域内的所有目标核心配置完成;包括如下步骤:
步骤S4.1:从起始搜索核心坐标开始遍历,横向遍历的步长最大为类脑芯片中中继路由核心可以路由的最大步长,且不超过需要搜索中继路由的目标核心形成的区域,纵向遍历的步长最大为类脑芯片中中继路由核心可以路由的最大步长,且不超过需要搜索中继路由的目标核心形成的区域,记录找到的目标核心数量,当目标核心数量达到类脑芯片中中继路由核心支持配置的最大目标核心数量时,结束搜索;将找到的目标核心记录到一维数组列表中,并更新核心占用情况的二维数组;将遍历到的空闲核心记录到空闲核心列表中作为配置一级中继路由核心范围;记录横向遍历的列坐标和纵向遍历的行坐标;每遍历一行,起始搜索核心坐标的行坐标减1;记录横向遍历的最大步长;
当纵向遍历到需要搜索中继路由的目标核心形成的区域外时,则结束此次遍历;更新起始搜索核心坐标的行、列坐标;
当遍历到的目标核心数量等于类脑芯片中中继路由核心支持配置的最大目标核心数量时,若此行没有遍历结束,则起始搜索核心坐标的行坐标不更新,将此行剩余未遍历到的核心加入空闲核心列表中作为中继路由核心选择;
当空闲核心列表为空时,将更新后的起始搜索核心坐标的行坐标一行的核心加入空闲核心列表中作为中继路由核心选择;
步骤S4.2:基于中继路由核心到所有目标核心曼哈顿距离之和最小原则,找到相应的核心作为第一级中继路由核心,将找到的中继路由核心更新到中继路由字典中,中继路由核心的下一跳核心是此次搜索的所有目标核心;
步骤S4.3:计算中继路由核心到边缘路由区域的最短步长,当步长小于等于类脑芯片中中继路由核心可以路由的最大步长时,确定中继路由核心的边缘路由;当步长大于类脑芯片中中继路由核心可以路由的最大步长时,则继续搜索多级中继路由核心和边缘路由;
步骤S4.4:确定搜索多级中继的区域,以中继路由核心为第一级中继路由,通过最短路径方法以及单次路由步长最大方法,在多级中继的区域内找到多级中继核心和边缘路由,将找到的中继路由核心更新到中继路由字典中;
步骤S4.5:当搜索结束后,跳到步骤5,配置中继路由字典和目标核心;当配置结束后,根据更新后的起始搜索核心坐标,返回步骤S4.1继续搜索和配置其他需要中继的目标核心,直至所有需要中继的目标核心配置完成;
步骤S5:根据类脑芯片数据包封包规则,进行封装打包并配置到芯片中。
2.根据权利要求1所述的一种类脑计算机操作系统的神经任务片内路由方法,其特征在于所述步骤S3中,最短的边缘路由核心是与目标核心的曼哈顿距离最短的作为边缘路由核心。
3.根据权利要求1所述的一种类脑计算机操作系统的神经任务片内路由方法,其特征在于所述步骤S4.1中,需要搜索中继路由的目标核心形成的区域外,是指起始搜索核心坐标的行坐标小于需要搜索中继路由的目标核心形成的区域的行坐标最小值;更新起始搜索核心坐标的行、列坐标,是将需要搜索中继路由的目标核心形成的区域的行坐标最大值,作为起始搜索核心坐标的行,将起始搜索核心坐标的列坐标与横向遍历的最大步长的和,作为新的起始搜索核心坐标的列坐标。
5.根据权利要求1所述的一种类脑计算机操作系统的神经任务片内路由方法,其特征在于所述步骤S4.4中,通过最短路径方法找到具体路径和边缘路由核心的搜索,包括如下步骤:
步骤S4.4.1:初始化一个队列,队列每个元素存储当前核心坐标以及前继核心坐标;记录一个同样大小的二维数组标记位,用于记录搜索时被访问过的核心,对于核心占用情况的二维数组中配置的核心位置,将二维数组标记位初始化为1;
步骤S4.4.2:中继路由核心第一个入队,以中继路由核心的列坐标与更新后的起始搜索核心坐标的行坐标,作为第二个核心入队;
步骤S4.4.3:判断队列是否非空;若为非空,进入步骤步骤S4.4.4,否则继续判断;
步骤S4.4.4:若为非空,则队首节点A出队,循环找到此节点核心的相邻四个方向的核心B,检查核心B是否再搜索范围内,以及是否为未被访问过的核心,若是,则进入步骤步骤S4.4.5,否则返回步骤S4.4.3;
步骤S4.4.5:将核心B的前继核心设置为核心A,核心B入队,标记核心B位置的标记位为1,检查核心B是否为边缘核心,若是,则结束搜索,返回队列,否则步骤S4.4.3;
步骤S4.4.6:搜索结束后返回的非队列的最后一个元素是最短路径的边缘路由核心;从队列的最后一个元素开始,找到元素里记录的前继核心并记录到路径列表中,直到搜索到起点中继路由核心,则路径列表就是最短路径经过的所有核心。
6.根据权利要求1所述的一种类脑计算机操作系统的神经任务片内路由方法,其特征在于所述步骤S4.4中,单次路由步长最大方法是根据中继步长最大化且路由可达原则,从路径列表中找到相应的多级中继;以中继路由核心为第一级中继,从路径列表中找到二级中继,且二级中继离一级中继的步长最长且不超过类脑芯片中中继路由核心可以路由的最大步长;再继续以二级中继为起点,找到第三级中继,直到中继核心离边缘路由不超过类脑芯片中中继路由核心可以路由的最大步长,将找到的每级中继记录到中继路由字典中。
7.根据权利要求1所述的一种类脑计算机操作系统的神经任务片内路由方法,其特征在于所述步骤S3中,将遍历到的目标核心以及找到的边缘路由记录到片内路由字典中;所述步骤S5中,根据类脑芯片数据包封包规则,将中继路由字典和片内路由字典封装打包成芯片可识别的数据包并配置到芯片中。
8.一种类脑计算机操作系统的神经任务片内路由装置,其特征在于,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求1-7中任一项所述的类脑计算机操作系统的神经任务片内路由方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210249528.7A CN114338506B (zh) | 2022-03-15 | 2022-03-15 | 一种类脑计算机操作系统的神经任务片内路由方法及装置 |
PCT/CN2023/075811 WO2023173977A1 (zh) | 2022-03-15 | 2023-02-14 | 类脑计算机操作系统的神经任务片内路由方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210249528.7A CN114338506B (zh) | 2022-03-15 | 2022-03-15 | 一种类脑计算机操作系统的神经任务片内路由方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338506A CN114338506A (zh) | 2022-04-12 |
CN114338506B true CN114338506B (zh) | 2022-08-05 |
Family
ID=81033127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210249528.7A Active CN114338506B (zh) | 2022-03-15 | 2022-03-15 | 一种类脑计算机操作系统的神经任务片内路由方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114338506B (zh) |
WO (1) | WO2023173977A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338506B (zh) * | 2022-03-15 | 2022-08-05 | 之江实验室 | 一种类脑计算机操作系统的神经任务片内路由方法及装置 |
CN117640496B (zh) * | 2024-01-26 | 2024-05-17 | 之江实验室 | 面向神经拟态计算的片上网络路由中继方法、设备、介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111985181A (zh) * | 2020-08-25 | 2020-11-24 | 北京灵汐科技有限公司 | 一种节点布局方法、装置、计算机设备及存储介质 |
CN112134608A (zh) * | 2020-06-10 | 2020-12-25 | 合肥工业大学 | 对抗环境下无人机协同中继网络快速构建方法和系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0227889D0 (en) * | 2002-11-29 | 2003-01-08 | Isis Innovation | Brain connectivity mapping |
JP4592800B2 (ja) * | 2009-03-12 | 2010-12-08 | パナソニック株式会社 | 経路選択装置、経路選択方法、およびプログラム |
US8977578B1 (en) * | 2012-06-27 | 2015-03-10 | Hrl Laboratories, Llc | Synaptic time multiplexing neuromorphic network that forms subsets of connections during different time slots |
EP3144820A1 (en) * | 2015-09-18 | 2017-03-22 | Stichting IMEC Nederland | Inter-cluster data communication network for a dynamic shared communication platform |
CN106201651A (zh) * | 2016-06-27 | 2016-12-07 | 鄞州浙江清华长三角研究院创新中心 | 神经形态芯片的模拟器 |
CN111565152B (zh) * | 2020-03-27 | 2022-04-29 | 中国人民解放军国防科技大学 | 一种基于路由域划分的类脑芯片路由系统数据通信方法 |
CN112163673B (zh) * | 2020-09-28 | 2023-04-07 | 复旦大学 | 一种用于大规模类脑计算网络的种群路由方法 |
CN112511445B (zh) * | 2020-09-28 | 2022-03-25 | 复旦大学 | 一种基于负载加权的最短路径路由生成方法 |
CN112364988A (zh) * | 2020-11-12 | 2021-02-12 | 天津大学 | 一种基于fpga的分层异构类脑计算系统 |
CN112561042B (zh) * | 2021-03-01 | 2021-06-29 | 浙江大学 | 一种类脑计算机操作系统的神经模型映射方法 |
CN112561043B (zh) * | 2021-03-01 | 2021-06-29 | 浙江大学 | 一种类脑计算机操作系统的神经模型拆分方法 |
CN114338506B (zh) * | 2022-03-15 | 2022-08-05 | 之江实验室 | 一种类脑计算机操作系统的神经任务片内路由方法及装置 |
-
2022
- 2022-03-15 CN CN202210249528.7A patent/CN114338506B/zh active Active
-
2023
- 2023-02-14 WO PCT/CN2023/075811 patent/WO2023173977A1/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112134608A (zh) * | 2020-06-10 | 2020-12-25 | 合肥工业大学 | 对抗环境下无人机协同中继网络快速构建方法和系统 |
CN111985181A (zh) * | 2020-08-25 | 2020-11-24 | 北京灵汐科技有限公司 | 一种节点布局方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114338506A (zh) | 2022-04-12 |
WO2023173977A1 (zh) | 2023-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114338506B (zh) | 一种类脑计算机操作系统的神经任务片内路由方法及装置 | |
CN107301455B (zh) | 用于卷积神经网络的混合立方体存储系统及加速计算方法 | |
CN107203807B (zh) | 神经网络加速器的片上缓存带宽均衡方法、系统及其装置 | |
US11294599B1 (en) | Registers for restricted memory | |
KR101793890B1 (ko) | 자율 메모리 아키텍처 | |
CN114026569A (zh) | 使用脉动阵列的扩张卷积 | |
KR101747966B1 (ko) | 자율 서브시스템 아키텍처 | |
CN103810237A (zh) | 数据管理方法和系统 | |
US20200293866A1 (en) | Methods for improving ai engine mac utilization | |
JP2020095701A (ja) | ストレージでの最適な動的シャードを生成する装置及びシステム | |
CN104952032A (zh) | 图的处理方法、装置以及栅格化表示及存储方法 | |
US10816989B2 (en) | Methods and systems of distributing task areas for cleaning devices, and cleaning devices | |
US9996391B2 (en) | Parallel computer system, method of controlling parallel computer system, and recording medium | |
CN116070682B (zh) | 神经元计算机操作系统的snn模型动态映射方法及装置 | |
CN104239134A (zh) | 一种众核系统的任务管理方法和装置 | |
CN105677755A (zh) | 一种处理图数据的方法及装置 | |
CN104102549A (zh) | 一种实现多线程互斥操作的方法、装置和芯片 | |
US20210097396A1 (en) | Neural network training in a distributed system | |
US20210026695A1 (en) | Automatic memory management method, corresponding micro-controller unit and computer program product | |
CN105718392B (zh) | 细胞阵列文件存储系统及其文件存储设备与文件存储方法 | |
CN117093538A (zh) | 稀疏Cholesky分解硬件加速系统及其求解方法 | |
CN116108787A (zh) | 多fpga间的布线代价优化方法、系统、存储介质及电子设备 | |
CN102929562A (zh) | 基于识别标识的可扩展重排序方法 | |
CN105912404B (zh) | 一种基于磁盘的大规模图数据中寻找强连通分量的方法 | |
CN105718380B (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 |