一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种类脑计算机操作系统的神经模型存储系统及方法

2022-04-14 00:36:50 来源:中国专利 TAG:


1.本发明涉及类脑计算机操作系统技术领域,尤其是涉及一种类脑计算机操作系统的神经模型存储系统及方法。


背景技术:

2.传统的冯诺伊曼体系结构计算机,在发展上已经日趋成熟。随着半导体工业的发展,半导体集成电路的制程已经由过去的微米级别,发展到现在的5纳米级别,即将接近物理极限。论文“the chips are down for moore’s law”和“fundamental limits to moore's law”,都已经预测了摩尔定律即将失效,传统的计算机架构,难以在性能、功耗等方面,继续保持高速增长。
3.在这样的背景下,类脑计算机及其操作系统,在学术界和工业界得到了越来越多的关注。类脑计算机是由多个类脑计算节点采用水平扩展的方式构建而成的分布式系统,通过模拟大脑神经网络连接的方式实现并行运算,可运行超大规模脉冲神经网络。每个计算节点包含若干个类脑计算芯片,以及一定容量的存储介质。类脑计算机操作系统统一管理计算资源和存储资源。
4.在类脑计算机上,用户以文件的形式上传神经网络模型,操作系统对模型文件进行集中管理,并通过通信协议,将神经网络模型部署到类脑芯片。由于大量的计算节点相互连接,操作系统需要管理大规模的存储资源,且类脑计算机需要支持多个大规模神经网络模型的同时运行,每个神经网络模型都有至少一个模型文件需要存储在类脑计算机中。大规模的节点、大量的神经网络模型,为神经模型在类脑计算机上的存储带来了极大的挑战。
5.公开号为的cn104408091b中国专利提出了一种分布式文件系统,该文件系统能将文件分散存储在多个服务器上。每个服务器都能存储和读取分布式文件系统中的所有文件。该专利通过lsm
‑ꢀ
tree数据结构、key-value数据库和缓存,提升了文件读写的性能,但需要占用较多的cpu和内存资源。
6.根据以上专利,目前分布式存储相关发明,主要针对的是多台服务器上文件的存储,服务器一般拥有充足的cpu、内存、存储资源,且服务器节点数量较小。而类脑计算机拥有节点规模大、单个节点存储与内存资源有限等特点,现有的技术并不能满足神经网络模型存储的需求。所以需要为类脑计算机操作系统设计专门的神经模型存储方法。


技术实现要素:

7.为解决现有技术的不足,实现神经模型在类脑计算机上保存与读取,并根据节点权重动态选择存储节点,同时提供了神经模型的跨节点访问与冗余机制,实现神经模型在节点间的读取,以及系统故障后的自我修复,本发明采用如下的技术方案:一种类脑计算机操作系统的神经模型存储系统,包括主控节点、备用主控节点和计算节点;所述主控节点,用于维护整个类脑计算机的资源,包括神经模型与计算节点之间
的关系及各计算节点的信息,通过构建权重,选择计算节点,综合考虑计算节点的空闲核心数量、计算节点故障次数及每次故障时间,并受计算节点可用存储空间的约束;所述备用主控节点,用于主控节点的冗余备份;所述计算节点,包括一组用于部署神经模型的类脑芯片,类脑芯片包括一组作为计算资源管理基本单元的核心,用于保存以模型文件形式存储的神经模型和执行计算任务,主控节点维护各计算节点剩余核心的数目。
8.进一步地,所述类脑芯片为二维网格结构,每个网格代表一个核心,基于类脑芯片资源的二维分布特性,类脑操作系统以核心作为资源管理基本单位,将类脑计算硬件资源抽象为统一的地址空间,即将类脑计算机中的所有计算节点上、所有芯片中的核心,抽象为一个大的二维网格。
9.一种类脑计算机操作系统的神经模型存储系统的存储方法,神经模型的保存包括如下步骤:步骤s1:选择存储神经模型的计算节点,为了减少因为节点故障导致神经任务中断的次数,实现提升类脑计算机系统整体的运行效率和稳定性的目标,计算节点的选择,通过构建权重,综合考虑计算节点的空闲核心数量、计算节点故障次数及每次故障时间,并受计算节点可用存储空间的约束;步骤s2:主控节点发送神经模型到计算节点,并维护神经模型与计算节点之间的关系;步骤s3:主控节点备份神经模型与计算节点之间的关系至备用主控节点;步骤s4:计算节点完成神经模型的部署。
10.步骤s1中,计算节点剩余核心越多,越会被优先选中;计算节点故障次数越少,越会被优先选中;计算节点近期故障与先前故障时间差越大,越会被优先选中;主控节点维护各个计算节点的剩余存储空间,对于剩余存储空间小于模型文件大小的计算节点,不参与存储模型文件的计算节点的选举;步骤s2中,主控节点将文件通过通信协议发送到存储模型文件的计算节点,计算节点接收并反馈主控节点,主控节点通过反馈,记录模型文件与存储模型文件的计算节点的对应关系,形成神经模型索引表并进行维护;所述索引表包含模型文件信息,模型文件信息包括文件名、文件唯一id,文件大小、文件校验码,以及存储文件的计算节点,通过文件名和/或文件id,查找到文件的其他信息;存储神经模型索引表的数据结构,根据类脑计算机的计算节点数量,以及神经模型的数量决定;步骤s3中,主控节点同步神经模型索引表至备用主控节点;神经模型索引表仅在主控节点和备份主控节点各存储一份,不在其他节点存储,这样既避免了索引表存储在所有节点带来的开销,也避免了索引表存储在单一节点,导致单点故障整个系统不可用,在可靠性和复杂程度上做到了平衡;步骤s4中,将模型文件存储到计算节点,用户进行部署模型操作,从存储模型文件的计算节点中读取模型文件,获取神经模型具体内容,发送给计算节点的类脑芯片,对类脑芯片中的核心进行配置。
11.进一步地,所述步骤s1中,神经模型的保存包括如下步骤:步骤s1.1:查找第一个计算节点;
步骤s1.2:获取计算节点剩余空间,当剩余空间满足模型文件存储要求时,获取计算节点的剩余核心数量、故障次数及每次故障时间,并根据核心数量、故障次数及每次故障时间计算权重;当剩余空间不满足模型文件存储要求时,直接进入步骤s1.3;步骤s1.3:判断下一个计算节点是否存在,若存在,则查找下一个计算节点并返回步骤s1.2;若不存在,则将模型文件发送给权重最大的三个计算节点。
12.进一步地,所述主控节点对各剩余存储空间满足要求的计算节点,按照如下公式进行权重计算:式中nodeweight示计算节点权重值,kc表示剩余芯片资源数量的影响参数,chipresnum表示剩余芯片资源数量,i表示计算节点第i次故障,n表示节点故障总次数,t
now
表示当前时间,ti表示第i次节点故障的时间,ks表示节点故障次数的影响参数,其中kc和ks是调节参数,需要根据类脑计算机的计算节点规模等,做适当的调试和调整,为了容忍存储模型文件的节点的一定故障情况,选择权重最大的三个计算节点,用于存储模型文件。
13.神经模型的读取,是将神经模型部署在模型文件所存储的计算节点上,计算节点直接读取本计算节点的模型文件进行部署,避免跨节点获取文件,带来模型传输上的开销,在读取模型文件时,对模型文件进行校验,当读取不到模型文件和/或校验失败的节点时,向主控节点发送消息,查找其他存储该模型文件的计算节点,并向存储该模型文件的计算节点发送消息,取回神经模型。读取不到模型文件和/或校验失败的节点包括:文件损坏、节点故障、当前节点被替换为新节点等情况、模型迁移到其他节点等情况,此时就会出现无法获取本节点存储的模型文件,以及模型文件校验失败等情况。
14.非主控节点故障的恢复,系统包括一组热备份计算节点,当有计算节点故障时,启动新的计算节点,替换原故障节点所在的抽象出的资源的坐标,接替故障计算节点继续运行,新的计算节点通过通信协议与主控节点通信,查找经神经模型与计算节点之间的关系,即神经模型索引表,查找到计算节点所需的模型文件,并从存储该模型文件的计算节点获取模型文件,将神经模型的内容存放在新的计算节点的内存中,并将神经模型发送给计算节点的类脑芯片,对类脑芯片进行配置部署。如果单个节点故障,恢复后的新节点持续稳定运行,新节点还会将所需的模型文件同步到自身,并保存在存储设备中。后续读取默认文件时,直接从本节点读取即可,无需从其他节点获取,避免了节点间通信带来的开销。并保证了模型文件在系统中至少存储三份,进一步提升了系统的健壮性。
15.主控节点故障的恢复,主控节点保存有神经模型索引表等重要数据,一旦神经模型索引表故障,会导致神经模型无法存储和跨节点读取,进而导致神经任务无法正常运行,将神经模型与计算节点之间的关系,即神经模型索引表,同时存储于主控节点和备用主控节点,两个节点的神经模型索引表互为备份,当主控节点故障后,备用主控节点成为新的主控节点,接替旧的主控节点继续工作,从而保证神经网络存储功能继续可用,为了避免新的主控节点故障,类脑操作系统选举出一个新的备用主控节点,新的主控节点将神经模型与计算节点之间的关系,即神经模型索引表,发送到新的备用主控节点,保证系统在受到多重节点故障后,仍能继续工作。
16.整机重启或故障后的恢复,由于主控节点、备用主控节点保存了神经模型索引表
等重要信息,如果遇到整机断电、异常重启等情况,主控节点和备用主控节点上神经模型索引表都不可用,就要进行神经模型索引表的恢复,将本计算节点实际存储的神经模型与计算节点之间的关系,即神经网络索引等信息保存在存储设备上,而不是保存完整的神经模型索引表,当类脑计算机整机异常恢复时,各个计算节点向主控节点发送自身的神经模型与计算节点之间的关系,即神经网络索引等信息,主控节点进行汇总,形成全局的神经模型与计算节点之间的关系,即神经网络索引。相较于主控节点将神经模型索引表同时保存在ram和存储设备上,避免了存在频繁的模型文件添加与删除时,神经模型索引表反复变化,导致存储设备反复读写,降低存储设备寿命。相较于将神经模型索引表保存在所有节点上,避免了将索引表保存多份,占用较多存储资源,同时节点间的同步降低效率。
17.本发明的优势和有益效果在于:本发明根据类脑计算机拥有大规模分布式计算节点的特点,提出了一种类脑计算机操作系统的神经模型存储系统及方法,提升了神经模型存储的可靠性和神经模型读取的便利性。同时本发明中动态调整计算节点权重,优选计算节点的方式,能够减少因为节点故障导致神经任务中断的次数,提升了类脑计算机系统整体的运行效率和稳定性。
附图说明
18.图1为本发明实施例的系统分布式架构图。
19.图2为本发明实施例中神经模型保存的流程图。
20.图3为本发明实施例中选择存储神经模型节点流程图。
21.图4为本发明实施例中神经模型所有内容的存储示意图。
22.图5为本发明实施例中神经模型保存时序图。
具体实施方式
23.以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
24.如图1所示,一种类脑计算机操作系统的神经模型存储系统,包括主控节点master、备用主控节点shadow、计算节点slave,主控节点master用于维护整个类脑计算机的资源,包括神经模型与计算节点之间的关系及各计算节点的信息,通过构建权重,选择计算节点,综合考虑计算节点的空闲核心数量、计算节点故障次数及每次故障时间,并受计算节点可用存储空间的约束;备用主控节点shadow用于主控节点master的冗余备份,计算节点slave包括一组用于部署神经模型的类脑芯片,类脑芯片包括一组作为计算资源管理基本单元的核心,用于保存以模型文件形式存储的神经模型和执行计算任务,主控节点维护各计算节点剩余核心的数目。
25.本发明将类脑计算机操作系统的神经模型存储方法分为五个部分进行分类管理,具体分类如下:第一部分:神经模型的保存;第二部分:神经模型的读取;第三部分:非主控节点故障的恢复;第四部分:主控节点master故障的恢复;
第五部分:整机重启或故障的恢复。
26.第一部分神经模型的保存,如图2、图3所示,具体步骤如下:步骤s1:选择存储神经模型的计算节点,计算节点的选择,通过构建权重,综合考虑计算节点的空闲核心数量、计算节点故障次数及每次故障时间,并受计算节点可用存储空间的约束。
27.计算节点剩余核心越多,越会被优先选中;计算节点故障次数越少,越会被优先选中;计算节点近期故障与先前故障时间差越大,越会被优先选中;主控节点维护各个计算节点的剩余存储空间,对于剩余存储空间小于模型文件大小的计算节点,不参与存储模型文件的计算节点的选举。包括如下步骤:步骤s1.1:查找第一个计算节点;步骤s1.2:获取计算节点剩余空间,当剩余空间满足模型文件存储要求时,获取计算节点的剩余核心数量、故障次数及每次故障时间,并根据核心数量、故障次数及每次故障时间计算权重;当剩余空间不满足模型文件存储要求时,直接进入步骤s1.3;步骤s1.3:判断下一个计算节点是否存在,若存在,则查找下一个计算节点并返回步骤s1.2;若不存在,则将模型文件发送给权重最大的三个计算节点。
28.具体地,神经模型以文件的形式存储,下文简称为“模型文件”。为了容忍存储模型文件的节点的一定故障情况,模型文件将存储在三个节点上,提供一定的冗余备份功能。主控节点master收到用户上传的模型文件,通过一定的策略选择三个节点用来存储,并维护神经模型与存储模型文件的节点之间的关系。为了减少因为节点故障导致神经任务中断的次数,实现提升类脑计算机系统整体的运行效率和稳定性的目标,节点的选择综合考虑计算节点的空闲核心数量、节点故障次数及每次故障的时间,并受到可用存储空间的约束,具体策略如下:由于神经模型需要部署到类脑芯片上,每个计算节点管理固定数目的类脑芯片,类脑芯片中包含一定数量的核心。类脑操作系统以核心作为计算资源管理基本单位。主控节点master维护各个节点剩余核心的数目。选择模型文件存储的节点时,节点剩余核心越多,越会被优先选中。
29.主控节点master同时维护了各个计算节点的故障次数,以及每次故障的时间。其中,计算节点的重启、文件读取失败、内存校验错误、通信超时等情况,均属于计算节点故障。节点故障次数越少,越会被优先选中。同时需要考虑节点故障的时间,近期的节点故障,比时间久远的节点故障,对节点选择带来的影响更大。
30.同时,主控节点master还会维护各个计算节点salve的剩余存储空间。对于剩余存储空间小于模型文件大小的节点,不参与存储模型文件节点的选举。
31.综合上述条件,主控节点对各个剩余存储空间满足要求的计算节点,按照如下公式进行权重计算:式中nodeweight表示计算节点权重值,k
c 表示剩余芯片资源数量的影响参数,chipresnum表示剩余芯片资源数量,i 表示计算节点第i 次故障,n 表示节点故障总次数,t
now 表示当前时间,t
i 表示第i 次节点故障的时间,k
s 表示节点故障次数的影响参数,其
中k
c 和k
s 是调节参数,需要根据类脑计算机的计算节点规模等,做适当的调试和调整,为了容忍存储模型文件的节点的一定故障情况,选择权重最大的三个计算节点,用于存储模型文件。
32.步骤s2:主控节点发送神经模型到计算节点,并维护神经模型与计算节点之间的关系。
33.主控节点将模型文件通过通信协议发送到存储模型文件的计算节点,计算节点接收并反馈主控节点,主控节点通过反馈,记录模型文件与存储模型文件的计算节点的对应关系,形成神经模型索引表并进行维护。
34.具体地,在步骤s1中选择好存储模型文件的节点后,主控节点master将模型文件通过通信协议发送到存储模型文件的计算节点,计算节点收到模型文件后,给主控节点回复消息,主控节点收到所有回复之后,记录模型文件与存储模型文件的节点的对应关系,形成神经模型索引表。
35.神经模型索引表中包含文件名、文件唯一id,文件大小、文件校验码,以及存储文件的计算节点等信息。可通过文件名或文件id,查找到文件的其他信息。存储神经模型索引表的数据结构可根据类脑计算机的计算节点数量,以及神经模型的数量决定。
36.步骤s3:主控节点备份神经模型与计算节点之间的关系至备用主控节点。
37.主控节点同步神经模型索引表至备用主控节点。
38.具体地,神经模型索引表仅在主控节点master和备份主控节点shadow各存储一份,不在其他节点存储,这样既避免了索引表存储在所有节点带来的开销,也避免了索引表存储在单一节点,导致单点故障整个系统不可用,在可靠性和复杂程度上做到了平衡。
39.步骤s4:计算节点完成神经模型的部署。
40.将模型文件存储到计算节点,用户进行部署模型操作,从存储模型文件的计算节点中读取模型文件,获取神经模型具体内容,发送给计算节点的类脑芯片,对类脑芯片中的核心进行配置。
41.具体地,在上述步骤完成之后,将模型文件存储到计算节点,用户可以进行部署模型操作。从存储模型文件的节点中读取模型文件,获取神经模型具体内容,发送给类脑芯片,对芯片中的核心进行配置。
42.经历步骤s3和步骤s4之后,神经模型存储的全部内容如图4所示。
43.神经模型保存的时序图如图5所示。
44.下面以一个模型的存储与部署为例,来详细描述一下神经模型存储的完整过程。
45.当前系统中,除了主控节点和备用主控节点,还存在六个计算节点s1、s2、s3、s4、s5、s6。六个节点的芯片资源、存储空间如表1所示:表1:节点芯片资源及存储空间表
用户上传大小为100mb模型文件到主控节点,主控节点收到后,根据模型文件的大小,查找到满足存储空间需求的节点s1、s2、s3、s4、s6。
46.查询节点计算资源表与故障记录,通过上述步骤s1中的公式,计算s1、s2、s3、s4、s6节点的权重。影响参数和通过实际调试得到,在此例中分别为0.0012和73。如果当前时间为2021年3月13日14:00(202103131400),经过计算得出这5个节点的权重值分别是8.39、8.40、5.24、4.80、1.20。
47.根据上述结果,权重最高的三个节点依次是s2、s1、s3。按照上述步骤s2、步骤s3将模型文件发送至这三个节点,并将模型文件相关信息、以及存储模型文件的节点信息记录在神经模型索引表中。
48.第二部分神经模型的读取,是将神经模型部署在模型文件所存储的计算节点上,计算节点直接读取本计算节点的模型文件进行部署,避免跨节点获取文件,带来模型传输上的开销,在读取模型文件时,对模型文件进行校验,当读取不到模型文件和/或校验失败的节点时,向主控节点发送消息,查找其他存储该模型文件的计算节点,并向存储该模型文件的计算节点发送消息,取回神经模型。
49.具体地,神经模型部署在模型文件所存储的节点上,这样可以直接读取本节点的模型文件进行部署,避免跨节点获取文件,带来模型传输上的开销。
50.在读取模型文件时,会对模型文件进行校验,如果出现文件损坏、节点故障、当前节点被替换为新节点等情况、模型迁移到其他节点等情况,就会出现无法获取本节点存储的模型文件,以及模型文件校验失败等情况。此时,读取不到模型、或者校验失败的节点,会向master节点发送消息,查找其他存储该模型的节点,然后向存储该模型的节点发送消息,取回神经模型。
51.第三部分非主控节点master故障的恢复,系统包括一组热备份计算节点,当有计算节点故障时,启动新的计算节点,替换原故障节点所在的抽象出的资源的坐标,接替故障计算节点继续运行,新的计算节点通过通信协议与主控节点通信,查找经神经模型与计算节点之间的关系,即神经模型索引表,查找到计算节点所需的模型文件,并从存储该模型文件的计算节点获取模型文件,将神经模型的内容存放在新的计算节点的内存中,并将神经模型发送给计算节点的类脑芯片,对类脑芯片进行配置部署。
52.具体地,对于非主控节点master故障的恢复。设备上存在一定数量的热备份节点,某个节点故障后,新的节点启动后,替换原来故障节点所在的抽象出来的资源的坐标,接替故障节点继续运行。新的节点还会通过通信协议与主控节点master通信,查找神经模型索引表,查找到节点所需的模型文件,并从存储该模型文件的节点获取模型文件,将神经模型
内容存放在新节点的内存中。并将神经模型发送给类脑芯片,对芯片进行配置部署。
53.上述操作的前提,是类脑计算机中存在多个节点,每个节点上有多个芯片,芯片由x*y的二维网格结构组成,每个网格代表一个核心。基于芯片资源的二维分布特性,类脑操作系统以核心作为资源管理基本单位,将类脑计算硬件资源抽象为统一的地址空间,即将类脑计算机中的所有节点上,所有芯片中的核心抽象为一个大的二维网格。
54.如果单个节点故障,恢复后的新节点持续稳定运行,新节点还会将所需的模型文件同步到自身,并保存在存储设备中。后续读取默认文件时,直接从本节点读取即可,无需从其他节点获取,避免了节点间通信带来的开销。并保证了模型文件在系统中至少存储三份,进一步提升了系统的健壮性。
55.第四部分主控节点master故障的恢复,主控节点保存有神经模型索引表等重要数据,一旦神经模型索引表故障,会导致神经模型无法存储和跨节点读取,进而导致神经任务无法正常运行,将神经模型与计算节点之间的关系,即神经模型索引表,同时存储于主控节点和备用主控节点,两个节点的神经模型索引表互为备份,当主控节点故障后,备用主控节点成为新的主控节点,接替旧的主控节点继续工作,从而保证神经网络存储功能继续可用,为了避免新的主控节点故障,类脑操作系统选举出一个新的备用主控节点,新的主控节点将神经模型与计算节点之间的关系,即神经模型索引表,发送到新的备用主控节点,保证系统在受到多重节点故障后,仍能继续工作。
56.第五部分整机重启或故障后的恢复,由于主控节点、备用主控节点保存了神经模型索引表等重要信息,如果遇到整机断电、异常重启等情况,主控节点和备用主控节点上神经模型索引表都不可用,就要进行神经模型索引表的恢复,将本计算节点实际存储的神经模型与计算节点之间的关系,即神经网络索引等信息保存在存储设备上,而不是保存完整的神经模型索引表,当类脑计算机整机异常恢复时,各个计算节点向主控节点发送自身的神经模型与计算节点之间的关系,即神经网络索引等信息,主控节点进行汇总,形成全局的神经模型与计算节点之间的关系,即神经网络索引。相较于主控节点将神经模型索引表同时保存在ram和存储设备上,避免了存在频繁的模型文件添加与删除时,神经模型索引表反复变化,导致存储设备反复读写,降低存储设备寿命。相较于将神经模型索引表保存在所有节点上,避免了将索引表保存多份,占用较多存储资源,同时节点间的同步降低效率。
57.以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献