神经形态芯片中计算核的布局的方法、装置及设备与流程

文档序号:21185046发布日期:2020-06-20 18:03阅读:154来源:国知局
神经形态芯片中计算核的布局的方法、装置及设备与流程

本申请涉及计算机技术领域,特别是涉及一种避免路由死锁风险的方法、装置、计算机设备和存储介质。



背景技术:

随着计算机技术的发展,出现了基于神经形态工程的新型计算系统,其中,模拟神经形态网络是该新型计算系统的一种实现方法,模拟神经形态网络可以采用软件模拟或者大规模集成电路模拟,使用软件模拟神经形态网络时存在效率低以及功耗高的问题,因此,目前常采用的方法是利用大规模集成电路实现神经形态的模拟和仿真。

然而,目前的利用大规模集成电路实现神经形态的模拟和仿真的方法,存在路由死锁风险。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够避免死锁风险的神经形态芯片中计算核的布局的方法、装置、计算机设备和存储介质。

一种神经形态芯片中计算核的布局的方法,所述方法包括:

获取神经形态芯片中计算核的布局所需的路由策略及路由包传播模式;其中,所述路由策略包括维序路由以及非维序路由,所述路由包传播模式包括正常模式以及多播模式;

根据所述路由策略以及所述路由包传播模式,选择约束条件;

根据所述约束条件,执行预设算法,检测所述神经形态芯片中计算核的布局是否存在路由死锁风险;

若所述神经形态芯片中计算核的布局不满足所述约束条件,所述神经形态芯片中计算核的布局存在所述路由死锁风险,则对所述神经形态芯片中计算核的布局重新进行所述预设算法,并将所述神经形态芯片中计算核的布局进行更新,直到所述神经形态芯片中计算核的布局满足所述约束条件,得到目标神经形态芯片中计算核的布局。

上述神经形态芯片中计算核的布局的方法,通过获取神经形态芯片中计算核的布局所需的路由策略及路由包传播模式,并根据该路由策略以及该路由包传播模式,选择约束条件,并执行预设算法,然后判断神经形态芯片中计算核的布局是否存在路由死锁风险,若神经形态芯片中计算核的布局存在路由死锁风险,则利用预设算法对该芯片进行重新布局,直到神经形态芯片中计算核的布局中不再存在路由死锁风险,并最终得到目标神经形态芯片中计算核的布局,可以避免路由死锁风险。

一种神经形态芯片中计算核的布局的装置,所述装置包括:

路由信息获取模块,用于获取神经形态芯片中计算核的布局所需的路由策略及路由包传播模式;其中,所述路由策略包括维序路由以及非维序路由,所述路由包传播模式包括正常模式以及多播模式;

约束条件选择模块,用于根据所述路由策略以及所述路由包传播模式,选择约束条件;

判断模块,用于根据所述约束条件,执行预设算法,检测所述神经形态芯片中计算核的布局是否存在路由死锁风险;

目标芯片获取模块,用于若所述神经形态芯片中计算核的布局不满足所述约束条件,所述神经形态芯片中计算核的布局存在所述路由死锁风险,则对所述神经形态芯片中计算核的布局重新进行所述预设算法,并将所述神经形态芯片中计算核的布局进行更新,直到所述神经形态芯片中计算核的布局满足所述约束条件,得到目标神经形态芯片中计算核的布局。

上述神经形态芯片中计算核的布局的装置,通过获取神经形态芯片中计算核的布局所需的路由策略及路由包传播模式,并根据该路由策略以及该路由包传播模式,选择约束条件,并执行预设算法,然后判断神经形态芯片中计算核的布局是否存在路由死锁风险,若神经形态芯片中计算核的布局存在路由死锁风险,则利用预设算法对该芯片进行重新布局,直到神经形态芯片中计算核的布局中不再存在路由死锁风险,并最终得到目标神经形态芯片中计算核的布局,可以避免路由死锁风险。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任意实施例的神经形态芯片中计算核的布局的方法的步骤。

上述计算机设备,通过获取神经形态芯片中计算核的布局所需的路由策略及路由包传播模式,并根据该路由策略以及该路由包传播模式,选择约束条件,并执行预设算法,然后判断神经形态芯片中计算核的布局是否存在路由死锁风险,若神经形态芯片中计算核的布局存在路由死锁风险,则利用预设算法对该芯片进行重新布局,直到神经形态芯片中计算核的布局中不再存在路由死锁风险,并最终得到目标神经形态芯片中计算核的布局,可以避免路由死锁风险。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现任意实施例中神经形态芯片中计算核的布局的方法的步骤。

上述可读存储介质,通过获取神经形态芯片中计算核的布局所需的路由策略及路由包传播模式,并根据该路由策略以及该路由包传播模式,选择约束条件,并执行预设算法,然后判断神经形态芯片中计算核的布局是否存在路由死锁风险,若神经形态芯片中计算核的布局存在路由死锁风险,则利用预设算法对该芯片进行重新布局,直到神经形态芯片中计算核的布局中不再存在路由死锁风险,并最终得到目标神经形态芯片中计算核的布局,可以避免路由死锁风险。

附图说明

图1为一个实施例中神经形态芯片中计算核的布局的方法的应用环境图;

图2为一个实施例提供的神经形态芯片中计算核的布局的方法的流程图;

图3为一个实施例提供的图2中步骤s200的流程图;

图4为一个实施例提供的图2中步骤s300的流程图;

图5为一个实施例提供的二维坐标系示意图;

图6为一个实施例提供的神经网络中路由包路由路径的示意图;

图7为另一个实施例提供的神经形态芯片中计算核的布局的方法的流程图;

图8为一个实施例中神经形态芯片中计算核的布局的装置的结构框图;

图9为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步的详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的神经形态芯片中计算核的布局的方法,可以应用于终端设备中,也可以应用于由终端设备以及云端网络组成的系统中。可选的,可以应用于如图1所示的应用环境中。其中,终端102与服务器104通过网络进行通信。终端102可以根据服务器104中储存的神经形态芯片中计算核的布局所需的路由策略及路由包传播模式选择约束条件;根据所述约束条件,执行预设算法,检测所述神经形态芯片中计算核的布局是否存在路由死锁风险;若根据所述约束条件,所述神经形态芯片中计算核的布局存在路由死锁风险,则对所述神经形态芯片中计算核的布局重新进行所述预设算法并将所述神经形态芯片中计算核的布局进行更新,直到根据所述约束条件所述神经形态芯片中计算核的布局中不再出现所述路由死锁,得到目标神经形态芯片中计算核的布局。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。可选的,该无线网络可以是2g网络、3g网络、4g网络或者5g网络、无线保真(wirelessfidelity,简称wifi)网络等。需要说明的是,该神经形态芯片中计算核的布局所需的路由策略及路由包传播模式可以存储在终端102中,也可以存储在服务器104中,还可以一部分存储在终端102中,另一部分存储在服务器104中,也就是说,本实施例对神经形态芯片中计算核的布局所需的路由策略及路由包传播模式并不做限定。

可以理解,本申请各个实施方式所涉及的方法,其执行主体可以是神经形态芯片中计算核的布局装置,该装置可以是通过软件、硬件或者软件硬件相结合的方式实现。该装置可以是终端的部分或全部,该装置也可以集成在云端服务器中,由终端设备在使用时进行调用。为了描述方便,下述方法实施例中的执行主体均以终端为例。

在一个实施例中,如图2所示,提供了一种神经形态芯片中计算核的布局的方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:

步骤s100,获取神经形态芯片中计算核的布局所需的路由策略及路由包传播模式;其中,所述路由策略包括维序路由以及非维序路由,所述路由包传播模式包括正常模式以及多播模式。

其中,神经形态芯片中计算核的布局是指,神经形态芯片中计算核的规划设计方案。路由策略是指,数据包的转发方案。路由包传播模式是用于判断路由包何时结束传播。维序路由是路由策略的一种,当路由策略为维序路由时,每个数据包一次只在一个维度上路由,当在这个维度上到达了目标坐标之后,才按由低维到高维的顺序在另外的维度上路由。非维序路由是路由策略的一种,当路由策略为非维序路由时,数据包的路由方式具有随机性或自适应性,或者二者兼有。正常模式是指,路由包传递到目标地址后即结束路由过程。多播模式是指,路由包传递到目标地址后,根据多播判断结果可以再次启动路由过程转发该路由包。

具体的,终端可以通过软件分析、硬件扫描或者人工输入等方式获取神经形态芯片中计算核的布局所需的路由策略以及路由包传播模式。

步骤s200,根据所述路由策略以及所述路由包传播模式,选择约束条件。

其中,约束条件是指判断神经形态芯片中计算核的布局是否存在路由死锁风险的方法。

具体的,终端根据神经形态芯片中计算核的布局的路由策略以及路由包传播模式,选择与路由策略以及路由包传播模式相对应的约束条件。

步骤s300,根据所述约束条件,执行预设算法,检测所述神经形态芯片中计算核的布局是否存在路由死锁风险。

其中,预设算法是指用户预设的用于对芯片中计算核进行布局优化的迭代更新优化算法,例如模拟退火算法。路由死锁是指两个或两个以上路由包在传播过程中由于竞争资源或者由于彼此通信而造成的一种阻塞的现象。

具体的,终端执行预设算法,并根据其所选择的约束条件检测神经形态芯片中计算核的布局是否存在路由死锁风险。

步骤s400,若所述神经形态芯片中计算核的布局不满足所述约束条件,所述神经形态芯片中计算核的布局存在所述路由死锁风险,则对所述神经形态芯片中计算核的布局重新进行所述预设算法,并将所述神经形态芯片中计算核的布局进行更新,直到所述神经形态芯片中计算核的布局满足所述约束条件,得到目标神经形态芯片中计算核的布局。

具体的,若根据终端所选择的约束条件判断神经形态芯片中计算核的布局存在路由死锁风险,则利用预设算法重新对该神经形态芯片中计算核的布局进行处理,并更新该神经形态芯片中计算核的布局,直到终端根据其所选择的约束条件,判断当前神经形态芯片中计算核的布局不存在路由死锁风险,则停止更新,将当前神经形态芯片中计算核的布局作为目标神经形态芯片中计算核的布局。

上述神经形态芯片中计算核的布局的方法,通过获取神经形态芯片中计算核的布局所需的路由策略及路由包传播模式,并根据该路由策略以及该路由包传播模式,选择约束条件,并执行预设算法,然后判断神经形态芯片中计算核的布局是否存在路由死锁风险,若神经形态芯片中计算核的布局存在路由死锁风险,则利用预设算法对该芯片进行重新布局,直到神经形态芯片中计算核的布局中不再存在路由死锁风险,并最终得到目标神经形态芯片中计算核的布局,可以避免路由死锁。

作为一种实施例,其中,如图3所示,步骤s200包括:

步骤s210,当所述路由策略为所述维序路由且所述路由包传播模式为所述多播模式时,则采用环路约束。

其中,环路约束是约束条件的一种,用于判断当前神经形态芯片中计算核的布局是否会造成路由包的路由路径出现闭合环路。

具体的,当终端判断路由策略为维序路由并且路由包传播模式为多播模式时,则终端根据环路约束判断神经形态芯片中计算核的布局是否存在路由死锁风险。

作为一种实施例,其中,如图4所示,步骤s300包括:

当所述约束方法为所述环路约束,所述判断所述神经形态芯片中计算核的布局是否存在路由死锁风险包括:

步骤s310,获取各个计算核的物理位置以及各个所述计算核之间的逻辑连接关系;

步骤s320,根据所述各个计算核的物理位置以及各个所述计算核之间的逻辑连接关系,检测从当前所述计算核的物理位置经过遍历各个计算核的物理位置之后,是否再次回到当前所述计算核的物理位置;

步骤s330,若能从当前所述计算核的物理位置经过遍历各个计算核的物理位置之后,再次回到当前所述计算核的物理位置,则判断所述神经形态芯片中计算核的布局存在所述路由死锁风险。

其中,计算核是指神经形态芯片上的计算核心,各个计算核心通过片上网络连接起来。物理位置是指计算核在二维神经网络中的二维坐标。逻辑连接关系是指,路由包从一个计算核路由到另一个计算核的路径。

具体的,对于迭代更新优化算法对神经形态芯片中计算核的布局的每一次更新,终端对每一个物理神经计算核进行遍历,并获取每一个物理神经计算核的物理位置序号以及神经计算核的逻辑连接关系,判断是否能从当前计算核的物理位置,根据逻辑连接关系遍历之后再次回到该计算核的物理位置,即判断路由路径中是否存在环路,若存在环路,则终端判定当前神经形态芯片中计算核的布局存在路由死锁风险。

例如,终端在遍历之前将神经形态芯片上的计算核设置为三个状态:white,grayandblack,分别代表还没搜索到的神经计算核、已经搜索到但是还没搜索完的神经计算核以及已经搜索完的神经计算核,然后对每一个物理神经计算核进行遍历,假设当前正在处理的神经计算核是v,那么v的状态时gray,其余正在处理的神经计算核的状态也是gray,如果从状态为gray的神经计算核v再次遍历到状态为gray的神经计算核v,就说明当前神经形态芯片中计算核的布局中存在环路,即当前神经形态芯片中计算核的布局存在路由死锁风险。本实施例可以通过以下伪代码实现:

detect_cycle函数

定义空数组visited;

定义变量cycle并设置初值为0;

对于每个神经计算核i:

如果i的状态为white,则执行visit函数。

visit函数

将i存入数组visited;

将i的状态设为gray;

找到所有源神经计算核为i的目标神经计算核的序号,并依次存入数组ns;

对于ns中的每一神经计算核j:

判断其状态:

如果j的状态为white,则递归执行visit函数;

如果j的状态为gray,说明存在环路,则将cycle的值设为1,终止此次检测程序;

如果j的状态为black,不进行任何操作。

将j的状态设为black。

作为一种实施例,其中,如图3所述,步骤s200包括:

步骤s220,当所述路由策略为所述非维序路由且所述路由包传播模式为所述正常模式时,则采用转弯约束。

其中,转弯约束是约束条件的一种,用于判断当前神经形态芯片中计算核的布局是否会造成路由包的路由路径出现用户设定需要避免的转弯方式。

具体的,当终端判断路由策略为非维序路由并且路由包的传播模式为正常模式时,则终端根据转弯约束判断神经形态芯片中计算核的布局是否存在路由死锁风险。

作为一种实施例,其中,如图4所示,步骤s300包括:

当所述约束方法为所述转弯约束,所述判断所述神经形态芯片中计算核的布局是否存在路由死锁风险包括:

步骤s340,获取各个所述计算核的物理位置以及各个所述计算核之间的逻辑连接关系;

步骤s350,根据各个所述计算核的物理位置以及各个所述计算核之间的逻辑连接关系,判断所述计算核之间的逻辑关系是否满足预设关系;其中,所述预设关系包括:在二维神经形态网络中,路由包在第一方向的传播方向为负方向、第二方向的传播方向为负方向,或所述路由包在所述第一方向的传播方向为正方向、所述第二方向的传播方向为所述负方向;

步骤s360,若所述计算核之间的逻辑关系满足所述预设关系,则判断所述神经形态芯片中计算核的布局存在所述路由死锁风险。

其中,二维神经形态网络是指可以用二维坐标表示的模拟神经形态的网络布局。第一方向是指二维神经网络中的一个方向分量,如图5所示,第一方向代表水平方向,用字母x表示该方向,其中箭头所指方向为x方向的正方向。第二方向是指二维神经网络中的另一个方向分量,如图5所示,第二方向代表垂直方向,用字母y表示该方向,其中箭头所指方向为y方向的正方向。

具体的,终端获取各个计算核的物理位置,即二维坐标,以及各个计算核之间的逻辑连接关系,判断数据包的路由路径是否满足如下关系:dx<0且dy<0,或dx>0且dy<0,若满足,则当前神经形态芯片中计算核的布局存在避免死锁风险,其中,dx>0代表第一方向的传播方向为正方向,dx<0代表第一方向的传播方向为负方向,dy>0代表第二方向的传播方向为正方向,dy<0代表第二方向的传播方向为负方向,其中dx表示路由包传播路径上的某个路由包先经过的计算核二维坐标的x分量值与一个路由包后经过的计算核二维坐标的x分量值的差值(后者减去前者的差值),dy表示路由包传播路径上的某个路由包先经过的计算核位置坐标的y分量值与一个路由包后经过的计算核位置坐标的y分量值的差值(后者减去前者的差值)。

例如,路由包传播路径上的一个路由包先经过的计算核的二维坐标是(1,3),另一个路由包后经过的计算核的位置坐标为(4,2),则dx=3且dy=-1,满足预设关系dx>0且dy<0,即路由包的传播方向在第一方向为正方向,第二方向为负方向,则终端判定该神经形态芯片中计算核的布局存在路由死锁风险。

例如,如图6所示,图中矩形方框代表神经网络中的计算核,框内数字代表该计算核的位置坐标,图中的两条折线箭头代表两种路由路径,折线a代表dx>0且dy<0的情况,折线b代表dx<0且dy<0的情况。本实施例可以通过以下伪代码实现:

turn_detect函数

定义变量turn并设置初值为0;

对于每个神经计算核i:

找到所有源神经计算核为i的目标神经计算核的序号,并依次存入数组ns;判断i与数组ns中的每一元素之间的相对位置关系是否为dx<0,dy<0及dx>0,dy<0中的一种,若是,则将turn的值设为1,终止此次检测程序。

作为一种实施例,其中,如图3所示,步骤s200包括:

步骤s230,当所述路由策略为所述非维序路由且所述路由包传播模式为所述多播模式时,则同时采用所述环路约束以及所述转弯约束。

具体的,当终端判断路由策略为非维序路由并且路由包的传播模式为多播模式时,则终端同时根据环路约束与转弯约束判断神经形态芯片中计算核的布局是否存在路由死锁风险。

作为一种实施例,其中,如图7所示,一种神经形态芯片中计算核的布局的方法还包括:

步骤s510,判断所述路由包传播模式是否为所述正常模式或所述多播模式;

步骤s520,若所述路由包传播模式是所述正常模式,则判断所述路由策略是否为所述维序路由或所述非维序路由;

步骤s530,若所述路由包传播模式是所述正常模式,且所述路由策略是所述维序路由,则不采用约束;

步骤s540,若所述路由包传播模式是所述正常模式,且所述路由策略是所述非维序路由,则采用所述转弯约束;

步骤s550,若所述路由包传播模式是所述多播模式,则判断所述路由策略是否为所述维序路由或所述非维序路由;

步骤s560,若所述路由包传播模式是所述多播模式,且所述路由策略是所述维序路由,则采用所述环路约束;

步骤s570,若所述路由包传播模式是所述多播模式,且所述路由策略是所述非维序路由,则同时采用所述转弯约束及所述环路约束。

具体的,终端判断路由包传播模式是正常模式还是多播模式,若路由包传播模式是正常模式,则判断路由策略是维序路由还是非维序路由,若路由包传播模式是正常模式,且路由策略是维序路由,则不采用约束;若路由包传播模式是正常模式,且路由策略是非维序路由,则采用转弯约束;若路由包传播模式是多播模式,则判断路由策略是否为维序路由或非维序路由,若路由包传播模式是多播模式,且路由策略是维序路由,则采用环路约束;若路由包传播模式是多播模式,且路由策略是非维序路由,则同时采用转弯约束及环路约束。

应该理解的是,虽然图1-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

请一并参阅图8,本申请的一个实施例汇总,还提供一种神经形态芯片中计算核的布局的装置6000,所述装置6000包括:

路由信息获取模块601,用于获取神经形态芯片中计算核的布局所需的路由策略及路由包传播模式;其中,所述路由策略包括维序路由以及非维序路由,所述路由包传播模式包括正常模式以及多播模式;

约束条件选择模块602,用于根据所述路由策略以及所述路由包传播模式,选择约束条件;

判断模块603,用于根据所述约束条件,执行预设算法,检测所述神经形态芯片中计算核的布局是否存在路由死锁风险;

目标芯片获取模块604,用于若执行所述预设算法的过程中,所述神经形态芯片中计算核的布局存在路由死锁风险,则对所述神经形态芯片中计算核的布局重新进行所述预设算法,并将所述神经形态芯片中计算核的布局进行更新,直到执行所述预设算法时所述神经形态芯片中计算核的布局满足所述约束条件,得到目标神经形态芯片中计算核的布局。

上述神经形态芯片中计算核的布局的装置,通过获取神经形态芯片中计算核的布局所需的路由策略及路由包传播模式,并根据该路由策略以及该路由包传播模式,选择约束条件,并执行预设算法,然后判断神经形态芯片中计算核的布局是否存在路由死锁风险,若神经形态芯片中计算核的布局存在路由死锁风险,则利用预设算法对该芯片进行重新布局,直到神经形态芯片中计算核的布局中不再存在路由死锁风险,并最终得到目标神经形态芯片中计算核的布局,可以避免路由死锁风险。

作为一种实施例,其中,所述约束条件选择模块602包括:

环路约束模块,用于当所述路由策略为所述维序路由且所述路由包传播模式为所述多播模式时,则采用环路约束。

作为一种实施例,其中,所述判断模块603包括:

当所述约束方法为所述环路约束,所述判断所述神经形态芯片中计算核的布局是否存在路由死锁风险包括:

计算核信息获取模块,用于获取各个计算核的物理位置以及各个所述计算核之间的逻辑连接关系;

遍历模块,用于根据所述各个计算核的物理位置以及各个所述计算核之间的逻辑连接关系,检测从当前所述计算核的物理位置经过遍历各个计算核的物理位置之后,是否再次回到当前所述计算核的物理位置;

第一判定模块,用于若能从当前所述计算核的物理位置经过遍历之后,再次回到当前所述计算核的物理位置,则判断所述神经形态芯片中计算核的布局存在所述路由死锁风险。

作为一种实施例,其中,所述约束条件选择模块602包括:

转弯约束模块,用于当所述路由策略为所述非维序路由且所述路由包传播模式为所述正常模式时,则采用转弯约束。

作为一种实施例,其中,所述判断模块603包括:

当所述约束方法为所述转弯约束,所述判断所述神经形态芯片中计算核的布局是否存在路由死锁风险包括:

计算核信息获取模块,用于获取各个所述计算核的物理位置以及各个所述计算核之间的逻辑连接关系;

关系分析模块,用于根据各个所述计算核的物理位置以及各个所述计算核之间的逻辑连接关系,判断所述计算核之间的逻辑关系是否满足预设关系;其中,所述预设关系包括:在二维神经形态网络中,路由包在第一方向的传播方向为负方向、第二方向的传播方向为负方向,或所述路由包在所述第一方向的传播方向为正方向、所述第二方向的传播方向为所述负方向;

第二判定模块,用于若所述计算核之间的逻辑关系满足所述预设关系,则判断所述神经形态芯片中计算核的布局存在所述路由死锁风险。

作为一种实施例,其中,所述约束条件选择模块602包括:

双重约束模块,用于当所述路由策略为所述非维序路由且所述路由包传播模式为所述多播模式时,则同时采用所述环路约束以及所述转弯约束。

作为一种实施例,其中,所述装置6000还包括:

第一路由包传播模式判断模块,用于判断所述路由包传播模式是否为所述正常模式或所述多播模式;

第一路由策略判断模块,用于若所述路由包传播模式是所述正常模式,则判断所述路由策略是否为所述维序路由或所述非维序路由;

第一约束选择模块,用于若所述路由包传播模式是所述正常模式,且所述路由策略是所述维序路由,则不采用约束;

第二路由包传播模式判断模块,用于若所述路由包传播模式是所述正常模式,且所述路由策略是所述非维序路由,则采用所述转弯约束;

第二路由策略判断模块,用于若所述路由包传播模式是所述多播模式,则判断所述路由策略是否为所述维序路由或所述非维序路由;

第二约束选择模块,用于若所述路由包传播模式是所述多播模式,且所述路由策略是所述维序路由,则采用所述环路约束;

第三约束选择模块,用于若所述路由包传播模式是所述多播模式,且所述路由策略是所述非维序路由,则同时采用所述转弯约束及所述环路约束。

关于神经形态芯片中计算核的布局的装置的具体限定可以参见上文中对于神经形态芯片中计算核的布局的方法的限定,在此不再赘述。上述神经形态芯片中计算核的布局的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储路由包传播模式等相关信息数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种神经形态芯片中计算核的布局的方法。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取神经形态芯片中计算核的布局所需的路由策略及路由包传播模式;其中,所述路由策略包括维序路由以及非维序路由,所述路由包传播模式包括正常模式以及多播模式;

根据所述路由策略以及所述路由包传播模式,选择约束条件;

根据所述约束条件,执行预设算法,检测所述神经形态芯片中计算核的布局是否存在路由死锁风险;

若根据所述约束条件,所述神经形态芯片中计算核的布局存在路由死锁风险,则对所述神经形态芯片中计算核的布局重新进行所述预设算法,并将所述神经形态芯片中计算核的布局进行更新,直到所述神经形态芯片中计算核的布局满足所述约束条件,得到目标神经形态芯片中计算核的布局。

上述计算机设备,通过获取神经形态芯片中计算核的布局所需的路由策略及路由包传播模式,并根据该路由策略以及该路由包传播模式,选择约束条件,并执行预设算法,然后判断神经形态芯片中计算核的布局是否存在路由死锁风险,若神经形态芯片中计算核的布局存在路由死锁风险,则利用预设算法对该芯片进行重新布局,直到神经形态芯片中计算核的布局中不再存在路由死锁风险,并最终得到目标神经形态芯片中计算核的布局,可以避免路由死锁风险。

作为一种实施例,其中,处理器执行的所述根据所述路由策略以及所述路由包传播模式,选择约束条件包括:

当所述路由策略为所述维序路由且所述路由包传播模式为所述多播模式时,则采用环路约束。

作为一种实施例,其中,处理器执行的所述根据所述约束条件,检验当前迭代能否使所述神经形态芯片中计算核的布局避免路由死锁风险包括:

当所述约束方法为所述环路约束,所述检验当前迭代能否使所述神经形态芯片中计算核的布局避免路由死锁风险包括:

获取各个计算核的物理位置以及各个所述计算核之间的逻辑连接关系;

根据所述各个计算核的物理位置以及各个所述计算核之间的逻辑连接关系,检测从当前所述计算核的物理位置经过遍历各个计算核的物理位置之后,是否再次回到当前所述计算核的物理位置;

若能从当前所述计算核的物理位置经过遍历之后,再次回到当前所述计算核的物理位置,则判断所述神经形态芯片中计算核的布局存在所述路由死锁风险。

作为一种实施例,其中,处理器执行的所述根据所述路由策略以及所述路由包传播模式,选择约束条件包括:

当所述路由策略为所述非维序路由且所述路由包传播模式为所述正常模式时,则采用转弯约束。

作为一种实施例,其中,处理器执行的所述根据所述约束条件,检验当前迭代能否使所述神经形态芯片中计算核的布局避免路由死锁情况包括:

当所述约束方法为所述转弯约束,所述检验当前迭代能否使所述神经形态芯片中计算核的布局避免路由死锁风险包括:

获取各个所述计算核的物理位置以及各个所述计算核之间的逻辑连接关系;

根据各个所述计算核的物理位置以及各个所述计算核之间的逻辑连接关系,判断所述计算核之间的逻辑关系是否满足预设关系;其中,所述预设关系包括:在二维神经形态网络中,路由包在第一方向的传播方向为负方向、第二方向的传播方向为负方向,或所述路由包在所述第一方向的传播方向为正方向、所述第二方向的传播方向为所述负方向;

若所述计算核之间的逻辑关系满足所述预设关系,则判断所述神经形态芯片中计算核的布局存在所述路由死锁风险。

作为一种实施例,其中,处理器执行的所述根据所述路由策略以及所述路由包传播模式,选择约束条件包括:

当所述路由策略为所述非维序路由且所述路由包传播模式为所述多播模式时,则同时采用所述环路约束以及所述转弯约束。

作为一种实施例,其中,处理器执行的所述方法还包括:

判断所述路由包传播模式是否为所述正常模式或所述多播模式;

若所述路由包传播模式是所述正常模式,则判断所述路由策略是否为所述维序路由或所述非维序路由;

若所述路由包传播模式是所述正常模式,且所述路由策略是所述维序路由,则不采用约束;

若所述路由包传播模式是所述正常模式,且所述路由策略是所述非维序路由,则采用所述转弯约束;

若所述路由包传播模式是所述多播模式,则判断所述路由策略是否为所述维序路由或所述非维序路由;

若所述路由包传播模式是所述多播模式,且所述路由策略是所述维序路由,则采用所述环路约束;

若所述路由包传播模式是所述多播模式,且所述路由策略是所述非维序路由,则同时采用所述转弯约束及所述环路约束。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取神经形态芯片中计算核的布局所需的路由策略及路由包传播模式;其中,所述路由策略包括维序路由以及非维序路由,所述路由包传播模式包括正常模式以及多播模式;

根据所述路由策略以及所述路由包传播模式,选择约束条件;

根据所述约束条件,执行预设算法,检测所述神经形态芯片中计算核的布局是否存在路由死锁风险;

若根据所述约束条件,所述神经形态芯片中计算核的布局存在路由死锁风险,则对所述神经形态芯片中计算核的布局重新进行所述预设算法,并将所述神经形态芯片中计算核的布局进行更新,直到所述神经形态芯片中计算核的布局满足所述约束条件,得到目标神经形态芯片中计算核的布局。

上述计算机可读存储介质,通过获取神经形态芯片中计算核的布局所需的路由策略及路由包传播模式,并根据该路由策略以及该路由包传播模式,选择约束条件,并执行预设算法,然后判断神经形态芯片中计算核的布局是否存在路由死锁风险,若神经形态芯片中计算核的布局存在路由死锁风险,则利用预设算法对该芯片进行重新布局,直到神经形态芯片中计算核的布局中不再存在路由死锁风险,并最终得到目标神经形态芯片中计算核的布局,可以避免路由死锁风险。

作为一种实施例,其中,处理器执行的所述根据所述路由策略以及所述路由包传播模式,选择约束条件包括:

当所述路由策略为所述维序路由且所述路由包传播模式为所述多播模式时,则采用环路约束。

作为一种实施例,其中,处理器执行的所述根据所述约束条件,检验当前迭代能否使所述神经形态芯片中计算核的布局避免路由死锁风险包括:

当所述约束方法为所述环路约束,所述检验当前迭代能否使所述神经形态芯片中计算核的布局避免路由死锁风险包括:

获取各个计算核的物理位置以及各个所述计算核之间的逻辑连接关系;

根据所述各个计算核的物理位置以及各个所述计算核之间的逻辑连接关系,检测从当前所述计算核的物理位置经过遍历各个计算核的物理位置之后,是否再次回到当前所述计算核的物理位置;

若能从当前所述计算核的物理位置经过遍历之后,再次回到当前所述计算核的物理位置,则判断所述神经形态芯片中计算核的布局存在所述路由死锁风险。

作为一种实施例,其中,处理器执行的所述根据所述路由策略以及所述路由包传播模式,选择约束条件包括:

当所述路由策略为所述非维序路由且所述路由包传播模式为所述正常模式时,则采用转弯约束。

作为一种实施例,其中,处理器执行的所述根据所述约束条件,检验当前迭代能否使所述神经形态芯片中计算核的布局避免路由死锁风险包括:

当所述约束方法为所述转弯约束,所述检验当前迭代能否使所述神经形态芯片中计算核的布局避免路由死锁风险包括:

获取各个所述计算核的物理位置以及各个所述计算核之间的逻辑连接关系;

根据各个所述计算核的物理位置以及各个所述计算核之间的逻辑连接关系,判断所述计算核之间的逻辑关系是否满足预设关系;其中,所述预设关系包括:在二维神经形态网络中,路由包在第一方向的传播方向为负方向、第二方向的传播方向为负方向,或所述路由包在所述第一方向的传播方向为正方向、所述第二方向的传播方向为所述负方向;

若所述计算核之间的逻辑关系满足所述预设关系,则判断所述神经形态芯片中计算核的布局存在所述路由死锁风险。

作为一种实施例,其中,处理器执行的所述根据所述路由策略以及所述路由包传播模式,选择约束条件包括:

当所述路由策略为所述非维序路由且所述路由包传播模式为所述多播模式时,则同时采用所述环路约束以及所述转弯约束。

作为一种实施例,其中,处理器执行的所述方法还包括:

判断所述路由包传播模式是否为所述正常模式或所述多播模式;

若所述路由包传播模式是所述正常模式,则判断所述路由策略是否为所述维序路由或所述非维序路由;

若所述路由包传播模式是所述正常模式,且所述路由策略是所述维序路由,则不采用约束;

若所述路由包传播模式是所述正常模式,且所述路由策略是所述非维序路由,则采用所述转弯约束;

若所述路由包传播模式是所述多播模式,则判断所述路由策略是否为所述维序路由或所述非维序路由;

若所述路由包传播模式是所述多播模式,且所述路由策略是所述维序路由,则采用所述环路约束;

若所述路由包传播模式是所述多播模式,且所述路由策略是所述非维序路由,则同时采用所述转弯约束及所述环路约束。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1