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

存储设备、分布式存储系统以及数据处理方法与流程

2022-11-06 18:22:57 来源:中国专利 TAG:

存储设备、分布式存储系统以及数据处理方法
1.本技术是分案申请,原申请的申请号是201911109237.2,原申请日是2019年11月13日,原申请的全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及存储技术领域,特别涉及一种存储设备、分布式存储系统以及数据处理方法。


背景技术:

3.随着存储技术以及人工智能(artificial intelligence,ai)技术的发展,存储设备中可以存储用于ai计算的业务数据,该业务数据例如可以是用于模型训练的样本集,比如说用于训练人脸识别模型的人脸图片集、用于训练语音识别模型的音频样本集、用于训练语义识别模型的样本文本等。
4.以人脸图片集为例,由于待计算的数据量庞大,单个服务器已经不能满足计算需求,因此目前主流架构为多设备的集群式架构。在该架构中,包括ai集群、存储集群和交换机。其中ai集群由多个ai服务器组成,用于进行ai计算;存储集群由多个存储设备组成,用于存储业务数据;交换机用于在ai服务器与存储设备之间转发业务数据。在ai计算的过程中,ai服务器基于传输控制协议/因特网互联协议(transmission control protocol/internet protocol,tcp/ip)协议,与存储设备建立远程的网络连接。当ai服务器要获取ai计算所需的业务数据时,会通过交换机向存储设备发送数据获取请求,存储设备接收数据获取请求后,通过交换机向ai服务器发送存储的业务数据。然后,ai服务器再将该业务数据加载至内存,进行ai计算。
5.在上述架构中,业务数据要从存储设备通过网络发送至交换机,再通过网络从交换机发送至ai服务器,才能让ai服务器得到业务数据来进行ai计算,可见ai计算的过程中获取业务数据的路径过长,造成获取业务数据的速度过慢,导致获取业务数据的效率低下。


技术实现要素:

6.本技术实施例提供了一种存储设备、分布式存储系统以及数据处理方法,能够解决相关技术中业务数据获取速度过慢、获取效率低下的技术问题。所述技术方案如下:
7.第一方面,提供了一种存储设备,包括处理器、硬盘和ai装置,所述ai装置和所述处理器之间通过高速互联网络通信;所述处理器,用于接收业务数据,并将所述业务数据存储至所述硬盘中;所述ai装置,用于向所述处理器发送数据获取请求以获取所述业务数据,并对所述业务数据进行ai计算。
8.本实施例提供的存储设备,内部设置有ai装置,该存储设备既可以通过ai装置,提供ai计算的能力,又可以通过存储设备中的处理器和硬盘,提供业务数据存储的能力,从而实现了存储与ai算力的融合。当需要进行ai计算时,业务数据在存储设备的内部通过高速互联网络进行传输,而无需经过外部网络的转发,因此极大地缩短了业务数据的传输路径,
能够近距离地载入业务数据,从而提高了加载速度。可选地,所述数据获取请求包括第一数据获取请求;所述处理器,用于响应于所述第一数据获取请求,从所述硬盘中获取所述业务数据,并将所述业务数据发送给所述ai装置。通过该方式,提供了一种ai装置就近获取业务数据的方法,由于存储设备内部包含了ai装置、处理器和硬盘,当ai装置要获取业务数据时,通过向处理器发送数据获取请求,由存储设备的处理器从本地的硬盘中获取业务数据,发送给ai处理器,使得ai处理器能够从本地得到业务数据,免去了通过网络向远端存储设备请求业务数据带来的通信开销,从而节省了获取业务数据的时延。
9.可选地,所述数据获取请求包括第二数据获取请求;所述处理器,用于响应于所述第二数据获取请求,将所述业务数据的元数据发送给所述ai装置,所述元数据用于指示所述业务数据的地址;所述ai装置,用于当所述元数据指示所述业务数据位于所述存储设备本地时,向所述硬盘发送第一数据访问请求,所述第一数据访问请求包括所述元数据;所述硬盘,用于根据所述元数据获取所述业务数据,并通过dma方式将所述业务数据写入所述ai装置。通过该方式,可以实现ai装置和硬盘之间的dma直通,通过在ai装置和硬盘之间建立dma通路,ai装置和硬盘能够利用dma通路进行快速业务数据交换,从而提高ai装置载入业务数据的速度,进而提高ai装置可同时处理的业务数据量,从而降低ai装置之间的传输ai参数的通信开销,加快ai训练的速度。
10.可选地,所述数据获取请求包括第三数据获取请求;所述处理器,用于响应于所述第三数据获取请求,将所述业务数据的元数据发送给所述ai装置,所述元数据用于指示所述业务数据的地址;所述ai装置,用于当所述元数据指示所述业务数据位于其他存储设备时,向所述其他存储设备发送第二数据访问请求,所述第二数据访问请求包括所述元数据。通过这种可选方式,ai装置的ai内存与其他存储设备实现了rdma直通,通过ai内存和其他存储设备进行快速业务数据交换,加快ai训练的速度。
11.可选地,所述存储设备还包括内存,所述处理器,还用于从所述内存中划分一段内存空间预留给所述ai装置使用。通过这种可选方式,ai装置能够借用存储装置的内存来进行ai计算,从而扩大了ai装置的可用内存空间,让ai装置能够在更大的内存上进行ai计算,从而提高ai计算的效率。
12.可选地,所述ai装置包括ai处理器和ai内存;所述ai处理器用于当所述ai内存的可用容量达到预设阈值时,向所述处理器发送内存申请请求,所述ai内存的可用容量通过设定的批尺寸确定,所述内存申请请求用于请求所述处理器从所述内存中划分一段内存空间预留给所述ai装置使用。通过这种可选方式,ai处理器可以利用内存的内存空间来进行训练,那么由于可用的内存空间更大,能够提高ai训练的批尺寸,从而提高ai装置一批可处理的业务数据量,降低不同ai装置之间交换ai参数的通信开销,提高ai训练的速度。经实验,如果仅通过ai内存进行ai训练,批尺寸最高设定为256,而通过这种方式,可以将批尺寸设定为32000,由此可见,批尺寸得到显著提升。
13.相关技术中,存储设备的内存的容量是固定的,这就导致存储业务数据时经常面临内存不足的问题。而通过这种可选方式,存储装置能够借用ai装置的ai内存来进行业务数据的读写,从而扩大了存储装置的可用内存空间,让存储装置能够在更大的内存上存储业务数据,从而节省业务数据的读写时间,提高业务数据的读写效率。
14.可选地,所述ai装置包括ai处理器;所述ai处理器,用于将计算任务划分为至少两
个子任务,将所述至少两个子任务中的第一子任务发送给所述处理器;所述处理器,还用于执行所述第一子任务,并将计算结果发送给所述ai处理器。通过这种可选方式,实现ai处理器和处理器的算力协同,ai处理器能够通过借用存储设备自身的处理器的算力,来提高ai处理器的算力,从而加快了ai处理器处理ai计算的速度。
15.可选地,所述ai处理器,还用于在将计算任务划分为至少两个子任务之前确定所述ai处理器的算力不足。通过这种可选方式,ai处理器能够自身的算力不足时,借用处理器的算力来处理ai计算,从而打破了ai训练过程中算力资源不足的瓶颈。
16.可选地,所述处理器,用于将计算任务划分为至少两个子任务,将所述至少两个子任务中的第二子任务发送给所述ai处理器;所述ai处理器,还用于执行所述第二子任务,并将计算结果发送给所述ai处理器。通过这种可选方式,实现ai处理器和处理器的算力协同,存储设备自身的处理器能够通过借用ai处理器的算力,来提高存储设备自身的处理器的算力,从而加快了存储设备自身的处理器处理业务数据的读写的速度。
17.所述处理器,还用于执行所述第一子任务,并将计算结果发送给所述ai处理器。
18.可选地,所述ai内存和所述存储设备的内存之间通过内存结构(memory fabric)通信。
19.可选地,所述ai内存和其他存储设备的ai内存通过memory fabric通信。
20.可选地,所述存储设备的内存和其他存储设备的内存通过memory fabric通信。
21.可选地,所述存储设备的内存和其他存储设备的ai内存通过memory fabric通信。
22.通过memory fabric,可以实现同一存储设备中的内存与ai内存、不同存储设备的内存、不同存储设备的ai内存统一调度,从而提高存储系统调度内存资源和使用内存资源的效率。
23.可选地,所述ai装置和所述处理器之间通过高速串行计算机扩展总线标准(peripheral component interconnect express,简称:pcie)总线通信;
24.可选地,所述处理器用于当所述内存的可用容量达到预设阈值时,向所述ai处理器发送内存申请请求,所述内存申请请求用于请求所述处理器从所述ai内存中划分一段内存空间预留给所述处理器使用。
25.可选地,所述ai装置还包括ai算力单元,所述ai算力单元,具体用于从所述ai内存中获取所述业务数据,并进行ai计算。可选地,所述ai处理器,还用于从所述ai内存中划分一段内存空间预留给所述存储设备的处理器使用。
26.可选地,将ai内存为第一层级,以内存为第二层级,对ai参数进行分层缓存,其中,第一层级的优先级高于第二层级的优先级。通过这一方式,实现了内存与ai内存之间的分层,会优先将ai参数缓存在ai内存中。
27.第二方面,提供了一种分布式存储系统,包括多个存储设备,所述多个存储设备包括第一存储设备;其中,所述第一存储设备包括第一处理器、第一硬盘和第一ai装置,所述第一ai装置和所述第一处理器之间通过高速互联网络通信;所述第一处理器,用于接收业务数据,并将所述业务数据存储至所述第一硬盘中;所述第一ai装置,用于向所述第一处理器发送数据获取请求以获取所述业务数据,并对所述业务数据进行ai计算。
28.本实施例提供的分布式存储系统,位于不同存储设备的两个ai装置,利用第一网络来交换ai参数;位于不同存储设备的两个存储装置,利用第二网络来交换业务数据,从而
根据ai参数以及业务数据来协同进行ai计算,通过融合多个存储设备的存储能力和ai算力,能够提高系统整体的存储能力和ai算力。
29.可选地,所述第二存储设备用于通过第二网络将所述业务数据传输给所述第一存储设备;所述第二存储设备,还用于通过第一网络将ai参数传输给所述第一存储设备,所述ai参数用于对所述业务数据进行ai计算。通过部署第一网络和第二网络,ai参数可以通过第一网络传输,而业务数据可以通过第二网络传输,因此,对于该系统而言,转发ai参数所使用的网络资源与转发其他数据所使用的网络资源能够相互分离,可以避免传递ai参数时占用存储设备原有的存储网络资源,从而避免ai计算的过程中因占用存储设备的网络带宽而导致存储设备的网络传输性能下降。并且,第一网络能够专用于转发ai相关的业务数据,因此基于该网络,可以避免对已有的业务数据中心的组网或存储设备集群产生影响。
30.可选地,所述第二存储设备,还用于通过所述第一网络将其他业务数据传输给所述第一存储设备。可选地,当所述第二网络的网络资源低于设定的存储网络资源阈值时,所述第一存储设备和所述第二存储设备之间通过所述第一网络传输其他业务数据。通过这种可选方式,为存储装置之间交换业务数据提供了一条新的通路,通过在第二网络的网络资源不足时,使用第一网络来交换业务数据,第一网络可以作为业务数据的一条新增的转发路径,那么业务数据既可以通过第二网络传输,也可以通过第一网络传输,因此提高了传输业务数据的网络带宽,从而缩短了交换业务数据的时延,提高了交换业务数据的速度,进而提高了进行ai计算的速度。
31.可选地,所述第二存储设备,还用于通过所述第二网络传输其他ai参数,所述其他ai参数用于对所述其他业务数据进行ai计算。
32.可选地,当第一网络的网络资源低于设定的ai网络资源阈值时,所述第一ai装置和所述第二ai装置之间通过所述第二网络传输其他ai参数。通过这种可选方式,为ai装置之间交换ai参数提供了一条新的通路,通过在第一网络的网络资源不足时,使用第二网络来交换ai参数,提高了传输ai参数的网络带宽,从而缩短了交换ai参数的时延,提高了交换ai参数的速度,进而提高了进行ai计算的速度。
33.可选地,所述第一ai装置包括第一ai处理器和第一ai内存,所述第二存储装置包括第二处理器,所述第二ai装置包括第二ai内存;所述第一ai处理器,用于向所述第二处理器发送第二网络的网络资源请求,并且向所述第二处理器发送内存rdma访问请求;所述第一ai处理器,用于从所述第一内存中读取其他业务数据,通过所述第二网络将所述其他业务数据发送给所述第二ai装置;所述第二ai装置将所述其他业务数据写入所述第二内存。通过这种可选方式,实现了第一存储设备和第二存储设备的内存直通,第一存储设备的内存与第二存储设备的内存之间能够通过rdma的方式来交换业务数据,如此,能够免去第一处理器与第二处理器的处理开销,让业务数据从第一内存直接到达第二内存,从而加快业务数据交换的速度,提高业务数据交换的效率。
34.可选地,该系统还包括管理装置;所述管理装置,用于接收第一作业请求,根据所述第一作业请求确定待训练的数据集的分布,所述数据集包括所述业务数据;当确定所述业务数据分布在所述第一存储设备时,向所述第一存储设备发送第一计算请求,所述第一计算请求用于请求所述第一ai装置对所述业务数据进行ai计算。通过这种可选方式,由于管理装置选择了业务数据所在的第一存储设备来提供ai计算,而第一存储设备通过内部的
第一存储装置,即可得到业务数据来进行ai计算,从而避免业务数据的跨存储设备移动,通过免去了访问其他存储设备以得到业务数据带来的时延,从而减少了获取业务数据的时延,也就提高了进行ai计算的速度。
35.可选地,所述第一ai装置,用于基于所述第一计算请求,从所述第一存储设备的第一存储装置获取所述业务数据,对所述业务数据进行ai计算,获得第一计算结果。可选地,所述管理装置向所述第一存储设备的第一ai装置发送第一计算请求之前,还用于确定所述第一存储设备的运行状态满足设定条件。通过这种可选方式,能够保证选中的第一存储设备当下未被占用,能够提供ai算力,避免选中已被占用的存储设备进行ai计算导致设备开销过大、ai计算任务无法及时完成的问题。
36.可选地,所述数据集还包括其他业务数据;所述管理装置,还用于当确定所述其他业务数据分布在所述多个存储设备中的第二存储设备中时,进一步确定所述第二存储设备的运行状态,当所述第二存储设备的运行状态不满足所述设定条件时,向所述第一存储设备发送第二计算请求,所述第一存储设备与所述第二存储设备之间的距离低于设定的距离阈值;所述第一ai装置,还用于基于所述第二计算请求,从所述第二存储设备中获取所述其他业务数据,对所述其他业务数据进行ai计算,获得第二计算结果。通过这种可选方式,如果业务数据所在的存储设备已被占用,管理装置能够选择与业务数据距离近的存储装置来提供ai计算,从而缩短业务数据的传输距离,减少业务数据的跨节点移动。
37.可选地,所述管理装置确定所述第二存储设备的运行状态是否满足设定条件之前,还用于接收第二作业请求,根据所述第二作业请求确定待训练的第二数据集的分布在第二存储设备。
38.第三方面,提供了一种数据处理方法,所述方法应用于分布式存储系统中,所述分布式存储系统包括多个存储设备;所述多个存储设备包括第一存储设备,该方法用于实现第二方面任意一种实现方式所提供的功能。
39.第四方面,提供了一种数据处理方法,所述方法应用于存储设备,其中,所述存储设备包括处理器、硬盘和ai装置,所述ai装置和所述处理器之间通过高速互联网络通信;该方法用于实现第一方面任意一种实现方式所提供的功能。
40.第五方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由存储设备读取以使存储设备执行上述第四方面或第四方面任一种可选方式所提供的数据处理方法。
41.第六方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由分布式存储系统读取以使所述分布式存储系统执行上述第三方面或第三方面任一种可选方式所提供的数据处理方法。
42.第七方面,提供了一种计算机程序产品,当计算机程序产品在存储设备上运行时,使得存储设备执行上述第四方面或第四方面任一种可选方式所提供的数据处理方法。
43.第八方面,提供了一种计算机程序产品,当计算机程序产品在分布式存储系统上运行时,使得分布式存储系统执行上述第三方面或第三方面任一种可选方式所提供的数据处理方法。
附图说明
44.图1是本技术实施例提供的一种分布式存储系统的架构图;
45.图2是本技术实施例提供的一种存储设备的结构示意图;
46.图3是本技术实施例提供的一种存储设备的结构示意图;
47.图4是本技术实施例提供的一种分布式存储系统的架构图;
48.图5是本技术实施例提供的一种存储设备的结构示意图;
49.图6是本技术实施例提供的一种存储设备的结构示意图;
50.图7是本技术实施例提供的一种数据处理方法的流程图;
51.图8是本技术实施例提供的一种数据处理方法的流程图;
52.图9是本技术实施例提供的一种数据处理方法的流程图;
53.图10是本技术实施例提供的一种数据传输流程的示意图;
54.图11是本技术实施例提供的一种数据传输流程的示意图;
55.图12是本技术实施例提供的一种数据处理方法的流程图;
56.图13是本技术实施例提供的一种数据传输流程的示意图;
57.图14是本技术实施例提供的一种数据处理方法的流程图;
58.图15是本技术实施例提供的一种数据处理方法的流程图;
59.图16是本技术实施例提供的一种数据处理方法的流程图;
60.图17是本技术实施例提供的一种数据处理方法的流程图;
61.图18是本技术实施例提供的一种数据处理方法的流程图;
62.图19是本技术实施例提供的一种数据处理方法的流程图;
63.图20是本技术实施例提供的一种数据传输流程的示意图;
64.图21是本技术实施例提供的一种数据处理方法的流程图;
65.图22是本技术实施例提供的一种数据处理方法的流程图;
66.图23是本技术实施例提供的一种数据传输流程的示意图;
67.图24是本技术实施例提供的一种数据处理方法的流程图;
68.图25是本技术实施例提供的一种数据传输流程的示意图;
69.图26是本技术实施例提供的一种数据处理方法的流程图;
70.图27是本技术实施例提供的一种数据传输流程的示意图;
71.图28是本技术实施例提供的一种数据处理方法的流程图;
72.图29是本技术实施例提供的一种数据传输流程的示意图;
73.图30是本技术实施例提供的一种数据处理方法的流程图;
74.图31是本技术实施例提供的一种数据处理方法的流程图;
75.图32是本技术实施例提供的一种数据处理方法的流程图;
76.图33是本技术实施例提供的一种数据处理方法的逻辑架构图。
具体实施方式
77.以下对本技术涉及的术语进行解释:
78.人工智能(artificial intelligence,ai):是通过计算机或者计算机控制的机器,对人的智能进行模拟、延伸和扩展,来感知环境、获取知识并使用知识获得最佳结果的
理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它基于智能的实质,生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
79.通常来讲,ai的实现包括两个环节:训练以及推理。训练,是指通过大量标记过的样本训练出一个神经网络模型,使神经网络模型可以具有特定的功能。推理,也称预测或推断,是指利用训练好的神经网络模型,使用新的业务数据推理出各种结论。
80.高速串行计算机扩展总线标准(peripheral component interconnect express,简称:pcie)总线:在外设部件互连标准(peripheral component interconnect,简称:pci)总线的基础上发展的一种局部总线,用于将处理器与至少一个外部设备连接。符合pcie总线标准的外部设备称为pcie设备。pcie总线上具有至少一个pcie接口,每个pcie接口的物理形态可以是一个插糟。每个pcie接口用于连接一个pcie设备。pcie总线上的各个pcie设备采用了串行互联方式,pcie总线上的不同pcie设备之间可以通过点对点的形式进行业务数据传输。pcie协议中通常会兼容pci协议相关的技术以及pci设备。
81.缓存一致性系统(huawei cache-coherent system,hccs):维护多端口(socket)之间业务数据一致性的协议标准。
82.ai参数:是指通过ai训练确定出的ai模型中的参数。通俗地说,ai模型可以视为一种函数,ai参数可以视为函数中的系数。例如,如果ai模型是神经网络,ai参数可以是神经网络中卷积核的权重。又例如,如果ai模型是支持向量机,ai参数可以是支持向量机中的支持向量;又例如,如果ai模型是线性回归模型或逻辑回归模型,ai参数可以是线性回归或逻辑回归模型中的系数。当然,列举的ai模型仅是示例,ai模型还可以是其他类型的模型,例如决策树模型、随机森林模型、置信网络、强化学习模型、迁移学习模型、归纳学习模型中的一项及其组合,相应地,ai参数也可以是其他类型的模型中的参数,本技术实施例并不限定ai参数和ai模型的具体类型。
83.ai参数的调整过程对于ai计算来讲是至关重要的。具体来讲,ai计算的过程中,通常会将数据集中的业务数据,输入至ai模型,ai模型会基于ai参数对业务数据进行推理预测,得到预测结果。根据预测结果与真实结果之间的误差,会对ai参数进行调整,使得根据调整后的ai参数来进行下一次推理预测时,误差得以减小。通过循环执行ai参数调整的过程,能够让ai参数通过调整来逐渐精确,当训练结束时,利用包含了精确的参数的ai模型,可以实现精确的推理预测,比如精确的将人脸图像中的人脸识别出来。通过实施本技术的一些实施例,可以极大的加速ai参数的调整过程。例如,通过执行下述图17实施例,可以通过借用存储设备的处理器的算力,来极大地提升ai算力,那么通过更大的ai算力,可以提高ai参数的计算速度。又如,通过执行下述图26实施例,可以通过借用存储后端网络资源(即第二网络的网络资源),来极大地提升ai计算可用的网络资源,那么通过更多的网络资源,可以加速ai参数的传输,从而提高ai参数调整更新的速度。
84.直接内存存取(direct memory access,简称:dma):一种在内存与外部设备之间传输数据的技术。通过dma,可以无需通过中央处理器(central processing unit,cpu)的参与,而是由外部设备直接将数据写入内存或者访问内存中的数据。例如,外部设备可以向处理器申请内存空间,处理器会为外部设备分配内存缓存区(buffer),之后,外部设备可以直接将数据写入至该内存缓存区,或者从内存缓存区直接读取数据。这里所说的外部设备
在dma相关的协议中,可以称为dma控制器。
85.在本技术的图9实施例中,硬盘可以是上面描述的外部设备,ai内存可以是上面描述的内存,硬盘可以通过上面描述的dma的方式,来绕开存储设备的处理器和ai处理器的参与,直接访问ai内存,从而加快访问ai内存的速度。
86.远程直接内存访问(remote direct memory access,简称:rdma):一种将数据从一台设备的内存直接传输至另一台设备的内存的技术。rdma提供了基于消息队列的点对点通信,每个应用可以通过消息队列来获取自己的消息,从而免去了cpu的介入。在rdma相关的协议中,执行rdma操作(rdma verb)的装置可以称为远程直接数据存取网络接口控制器(rdma network interface controller,简称:rnic)。rdma操作可以包括存储操作(memory verb)和消息操作(messaging verb)。存储操作可以用于传输数据,存储操作包括rdma写操作、rdma读操作和原子操作。例如,rdma写操作的过程可以包括:目的设备的cpu将内存区域的虚拟地址以及内存区域的权限信息发送给源设备的cpu;源设备的cpu将待写入的数据存储至源设备的内存区域;源设备的cpu根据源设备的内存区域的虚拟地址、目的设备的内存区域的虚拟地址、目的设备的内存区域的权限信息,生成rdma写指令,将rdma写指令加入至rnic的发送队列。之后,源设备会通过门铃机制,通知rnic执行发送队列中的指令。之后,rnic会从发送队列中读取指令,得到rdma写指令,根据rdma写指令,执行rdma写操作。rdma读操作可以包括:目的设备的cpu将数据存储在内存区域,将内存区域的虚拟地址以及目的设备的内存区域的权限信息发送给源设备的cpu,源设备的cpu接收虚拟地址以及权限信息,根据源设备的内存区域的虚拟地址、目的设备的内存区域的虚拟地址、目的设备的内存区域的权限信息,生成rdma读指令,将rdma读指令加入发送队列中。之后,源设备会通过门铃机制,通知rnic执行发送队列中的指令。rnic会从发送队列中读取指令,得到rdma读指令,根据rdma写指令,执行rdma读操作。消息操作可以用于控制消息,消息操作可以包括rdma发送操作和rdma接收操作。
87.在本技术的图26实施例中,ai装置中的第一网络接口(可以称为ai参数网络接口)可以是rnic,可以通过上面描述的rdma方式,来访问其他存储设备中的ai内存,或者通过rdma来将ai参数写入其他存储设备中的ai内存;在本技术的图22实施例中,存储装置中的第二网络接口(可以称为后端交换接口)可以是rnic,可以通过上面描述的rdma方式,来访问其他存储设备中的内存,或者通过rdma来将业务数据写入其他存储设备中的内存。
88.以下,对本技术提供的分布式存储系统进行示例性描述。
89.图1是本技术实施例提供的一种分布式存储系统的架构图,分布式存储系统1包括多个存储设备,该多个存储设备包括第一存储设备10。
90.第一存储设备10用于存储业务数据以及处理ai计算,第一存储设备10包括第一存储装置100和第一ai装置101,第一ai装置101设置于第一存储设备10内部。第一存储装置100可以包括第一处理器1001和第一硬盘1002。
91.第一ai装置101和第一处理器1001之间通过高速互联网络通信。
92.第一处理器1001,用于接收业务数据,并将业务数据存储至第一硬盘1002中。
93.第一ai装置101,用于向第一处理器1001发送数据获取请求以获取业务数据,并对业务数据进行ai计算。
94.可选地,数据获取请求包括第一数据获取请求;
95.第一处理器1001,用于响应于第一数据获取请求,从第一硬盘1002中获取业务数据,并将业务数据发送给第一ai装置101。
96.可选地,数据获取请求包括第二数据获取请求;
97.第一处理器1001,用于响应于第二数据获取请求,将业务数据的元数据发送给第一ai装置101,元数据用于指示业务数据的地址;
98.第一ai装置101,用于当元数据指示业务数据位于第一存储设备本地时,向第一硬盘1002发送第一数据访问请求,第一数据访问请求包括元数据;
99.第一硬盘1002,用于根据元数据获取业务数据,并通过dma方式将业务数据写入第一ai装置101。
100.可选地,该多个存储设备还包括第二存储设备11,该第一存储设备10和第二存储设备11为两个不同的存储设备,第一存储设备10与第二存储设备11之间通过网络通信。
101.第二存储设备11用于存储业务数据以及处理ai计算,第二存储设备11包括第二存储装置110和第二ai装置111,第二ai装置111设置于第二存储设备11内部。
102.其中,第二存储设备11包括第二处理器1101和第二硬盘1102,第二ai装置和第二处理器1101之间通过高速互联网络通信;
103.第二处理器1101,用于接收业务数据,并将业务数据存储至第二硬盘1102中;
104.第二ai装置,用于向第二处理器1101发送数据获取请求以获取业务数据,并对业务数据进行ai计算。
105.可选地,数据获取请求包括第三数据获取请求;
106.第一处理器1001,用于响应于第三数据获取请求,将业务数据的元数据发送给第一ai装置101,元数据用于指示业务数据的地址;
107.第一ai装置101,用于当元数据指示业务数据位于多个存储设备中的第二存储设备11时,向第二存储设备11发送第二数据访问请求,第二数据访问请求包括元数据;接收第二存储设备11响应于第二数据访问请求所发送的业务数据。
108.可选地,第二存储设备11用于通过第二网络12将业务数据传输给第一存储设备10;第二存储设备11,还用于通过第一网络13将ai参数传输给第一存储设备10,ai参数用于对业务数据进行ai计算。
109.第一网络13可以称为ai参数网络,用于在第一存储设备10和第二存储设备11之间传输ai参数。第一网络13中可以设置一个或多个网络设备,例如路由器、交换机等。具体地,该网络设备13可以分别和第一ai装置101以及第二ai装置111相连,第一ai装置101和第二ai装置111之间通过网络设备传输ai参数。例如,网络设备可以和第一ai装置101的第一网络接口以及第二ai装置111的第一网络接口相连。
110.第二网络12可以称为存储后端网络,用于在第一存储设备10和第二存储设备11之间传输业务数据。第二网络12中可以设置一个或多个网络设备,例如路由器、交换机等。具体地,该网络设备可以和第一存储装置100以及第二存储装置110相连,第一存储装置100和第二存储装置110之间通过网络设备传输业务数据。例如,网络设备可以和第一存储装置100的第二网络接口以及第二存储装置110的第二网络接口相连。
111.通过部署第一网络13和第二网络12,ai参数可以通过第一网络13传输,而业务数据可以通过第二网络12传输,因此,对于存储系统1而言,转发ai参数所使用的网络资源与
转发其他数据所使用的网络资源能够相互分离,可以避免传递ai参数时占用存储设备原有的存储网络资源,从而避免ai计算的过程中因占用存储设备的网络带宽而导致存储设备的网络传输性能下降。并且,第一网络13能够专用于转发ai相关的业务数据,因此基于该网络,可以避免对已有的业务数据中心的组网或存储设备集群产生影响。
112.可选地,还可以为分布式存储系统1部署第三网络14,第三网络14可以称为业务网络。第一存储设备10和第二存储设备11可以通过第三网络14通信。第三网络14可以包括一个或多个网络设备,网络设备可以分别和第一存储装置100的业务接口以及第二存储装置110的业务接口相连。应理解,本实施例仅是以分布式存储系统1中的第一存储设备10以及第二存储设备11为例进行描述,本领域技术人员可以知晓,分布式存储系统1包含的存储设备的数量可以更多或更少,例如分布式存储系统1可以仅包括第一存储设备10以及第二存储设备11,或者包括几十个或几百个存储设备,或者更多存储设备,此时上述分布式存储系统1还包括第一存储设备10以及第二存储设备11之外的其他存储设备,本实施例对存储设备的数量不做限定。尤其是,随着ai计算对算力需求的增长,本实施例所示的存储系统1的规模可以相应增加,例如存储系统1可以包括百万个存储设备,从而将系统1整体的算力向百万级以上提升。
113.另外,第一存储设备10可以泛指分布式存储系统1中多个存储设备中的任一个存储设备,第二存储设备11可以泛指分布式存储系统1中多个存储设备中第一存储设备10之外的任一个存储设备,本实施例仅是以第一存储设备10和第二存储设备11来举例说明。
114.本实施例提供的分布式存储系统,位于不同存储设备的两个ai装置,利用第一网络来交换ai参数;位于不同存储设备的两个存储装置,利用第二网络来交换业务数据,从而根据ai参数以及业务数据来协同进行ai计算,通过融合多个存储设备的存储能力和ai算力,能够提高系统整体的存储能力和ai算力。其中,第一网络可以是pcie高速互联网络、fibre channel(fc)、scsi、以太网、rdma、或者memory fabric等。第二网络可以是pcie高速互联网络、fc、scsi、以太网、rdma、或者memory fabric等。
115.可选地,第二存储设备110,还用于通过第一网络13将其他业务数据传输给第一存储设备10;第二存储设备110,还用于通过第二网络12传输其他ai参数,其他ai参数用于对其他业务数据进行ai计算。
116.例如,当第二网络资源低于设定的存储网络资源阈值时,第一存储装置100和第二存储装置110之间可以通过第一网络13传输其他业务数据。具体来说,第一存储装置100包括第一处理器和第一内存,第二存储装置110包括第二处理器和第二内存。第一ai装置101包括第一ai处理器和第一ai内存。第一ai处理器,向第二ai处理器发送第一网络的网络资源请求,并且向第二处理器发送内存rdma访问请求。第一ai装置101从第一内存中读取其他业务数据,通过第一网络13将其他业务数据发送给第二ai装置111。第二ai装置111将其他业务数据写入第二内存。
117.可选地,当第一网络资源低于设定的ai网络资源阈值时,第一ai装置101和第二ai装置111之间通过第二网络12传输其他ai参数。具体来说,第一ai处理器,向第二处理器发送第二网络的网络资源请求。第一ai处理器,用于从第一ai内存中获取其他ai参数,将其他ai参数以rdma方式通过第二网络12传输至第二ai内存。
118.可选地,系统1还包括管理装置,管理装置是一个软件模块,从功能上讲它用于管
理分布式存储系统1中的所有存储设备,例如进行存储设备的调度以处理ai计算。管理装置可以位于一个独立的设备,例如可以是主机、服务器、个人电脑或其他设备。另外,管理装置也可以位于任意一个存储设备中。当管理装置是一个独立的设备时,它可以通过网络与该系统中的任意一个存储设备通信。
119.下面举一个具体的例子来说明管理装置如何实现各个存储设备之间的调度。当管理装置接收第一作业请求时,根据第一作业请求确定待训练的数据集的分布。当确定该数据集中的业务数据分布在第一存储设备10时,管理装置向第一存储设备10的第一ai装置101发送第一计算请求。第一ai装置101,用于基于第一计算请求,从第一存储设备10获取业务数据,对业务数据进行ai计算,获得第一计算结果。这是一种近数据的ai计算方式,即优先选择数据集所在的存储设备的ai装置对该数据集进行ai计算。可以在一定程度上避免跨网络传输数据,节省了网络资源。应理解,在某些情况下可能数据集所在的存储设备的运行状态不佳,以致于不适合接收ai计算任务,因此在本实施例中管理装置向第一存储设备10的第一ai装置101发送第一计算请求之前,还用于确定第一存储设备10的运行状态满足设定条件。
120.那么,当第一存储设备10的运行状态不满足设定条件时,可以选择与第一存储设备10之间的距离低于设定的距离阈值的存储设备,例如第二存储设备11,来进行ai计算。
121.在一些实施例中,待训练的数据集可以还包括其他业务数据;
122.管理装置,还用于当确定其他业务数据分布在多个存储设备中的第二存储设备11中时,进一步确定第二存储设备11的运行状态,当第二存储设备11的运行状态不满足设定条件时,向第一存储设备10发送第二计算请求,第一存储设备10与第二存储设备11之间的距离低于设定的距离阈值;
123.第一ai装置101,还用于基于第二计算请求,从第二存储设备11中获取其他业务数据,对其他业务数据进行ai计算,获得第二计算结果。
124.在一些可能的实施例中,存储系统1还可以包括主机(图1中未示出),主机用于和第一存储设备10、第二存储设备11协同进行ai计算。其中,主机可以是ai服务器,也可以是应用服务器。ai服务器用于执行ai计算任务。例如,ai服务器可以进行模型训练或业务数据处理。在ai服务器运行的过程中,ai服务器可以与第一存储设备10和/或第二存储设备11交换模型参数。应用服务器可以从终端接收模型训练或业务数据处理的指令,为ai计算的过程进行资源调度、存储ai算法或更新ai算法等。其中,主机可以通过cpu等通用的处理器,来提供ai算力,也可以通过图形处理器(英文:graphics processing unit,简称:gpu)、神经网络处理器(英文:neural-network processing unit,简称:npu)、张量处理单元(英文:tensor processing unit,简称:tpu)或现场可编程门阵列(英文:field-programmable gate array,简称:fpga)等处理器,来提供ai算力。主机可以是物理的设备,也可以是虚拟化设备,比如从云平台租用的弹性云服务器。在ai计算的过程中,第一存储设备10和第二存储设备11可以承担主要的计算任务,主机承担次要的计算任务。或者,主机承担主要的计算任务,第一存储设备10和第二存储设备11承担次要的计算任务。
125.在一些可能的实施例中,第二网络12可以包括内置网络设备以及外置网络设备。
126.内置网络设备可以设置在第一存储设备10和/或第二存储设备11的内部,内置网络设备可以通过高速互联网络与第一存储设备10和/或第二存储设备11的部件连接。内置
网络设备可以为总线,具体可以是串行接口总线,比如pcie总线、hccs总线、以太网、ib、fc中的任意一种。第一存储设备10和/或第二存储设备11可以通过内置网络设备,对存储的数据进行备份,从而保护业务数据以及ai参数。
127.外置网络设备可以设置在第一存储设备10和第二存储设备11外部,外置网络设备与第一存储设备10和第二存储设备11通过网络相连。外置网络设备可以为交换机、路由器等。第一存储设备10和第二存储设备11可以通过外置网络设备,向应用提供数据存储业务,例如文件存储、对象存储或者块存储业务。外置网络设备可以为交换机、路由器等。
128.在一些可能的实施例中,第一网络13中可以设置内置网络设备以及外置网络设备。第一网络中的内置网络设备以及外置网络设备分别与第二网络12中的内置网络设备以及外置网络设备同理,在此不做赘述。
129.在一些可能的实施例中,第二网络12和/或第一网络13中的内置网络设备和外置网络设备可以合一部署。
130.在一些可能的实施例中,系统1中存储设备的数量可以根据对ai算力的需求,动态地进行伸缩,实现弹性扩容或弹性缩容的功能。具体来讲,存储系统1可以视为一个资源池,存储设备可以视为资源池中的资源,该资源能够同时提供ai算力以及存储能力。如果存储系统1的ai算力不足,比如所有ai装置的负载已经超过负载阈值,可以向存储系统1添加存储设备,通过存储系统1已有的存储设备以及新增的存储设备共同提供ai算力,从而实现扩容,减轻单个存储设备中ai装置的负载。如果存储系统1空闲,可以减少存储系统1中存储设备的数量,从而实现缩容。
131.以下,对本技术提供的存储设备进行示例性描述。
132.图2是本技术实施例提供的一种存储设备的结构示意图,存储设备2可以是图1所示系统1中的第一存储设备10,也可以是图1所示系统1中的第二存储设备11,当然也可以是图1未示出的其他存储设备。
133.如图2所示,该存储设备2包括存储装置20和ai装置21。
134.存储装置20包括硬盘201和处理器202。
135.处理器202用于接收业务数据,并将业务数据存储至硬盘201中。其中,业务数据可以作为ai计算的输入,例如,业务数据可以为用于模型训练的样本集、用于推理预测的数据集等。比如说,在模型训练阶段,业务数据可以包括样本图像、样本视频、样本语音或者样本文本中的一项或多项,样本图像可以用于训练得到图像识别模型,样本视频可以用于训练得到视频识别模型或目标分析模型,样本文本可以用于训练得到语义识别模型等。又比如说,在模型应用阶段,业务数据可以是待识别的图像、视频、语音或者文本等,可以用于进行图像识别,人脸识别,语音识别或文本理解等。在一些实施例中,处理器202可以提供计算资源,存储装置20可以通过处理器202来处理业务数据。
136.硬盘201可以提供存储空间,硬盘201用于存储业务数据。其中,硬盘201可以为智能硬盘,智能硬盘具有自己的处理器、内存、dma控制器等组件,因此可以承担比传统硬盘更多的功能,例如通过dma方式传输数据等。
137.ai装置21,用于向处理器202发送数据获取请求以获取业务数据,并对业务数据进行ai计算。ai装置设置于存储设备2内部。ai装置21为存储设备2提供ai计算的能力,通过运行ai装置21,可以执行下述方法实施例中的ai计算方法。该ai装置21的形态可以是一个芯
片或者其他物理组件,例如可以是用于构建神经网络模型的训练芯片,也可以是利用神经网络模型进行推理的推理芯片。其中,数据获取请求用于请求获取硬盘201存储的业务数据。
138.ai装置21和处理器202之间通过高速互联网络22通信。其中,高速互联网络22用于提供ai装置21和处理器202之间的数据通信功能,高速互联网络22可以是pcie、memory fabric、高速以太网、hccs、无限带宽(infiniband,ib)、光纤通道(fibre channel,fc)中的任意一种,高速互联网络22的形态可以是总线,那么,高速互联网络22也可以称为高速互联交换机或高速互联总线。示例性地,存储设备2可以包括高速互联总线,ai装置21和处理器202可以与该高速互联总线连接,从而接入高速互联网络。在一些可能的实施例中,ai装置21可以包括高速互联网络接口,处理器202可以包括高速互联网络接口,ai装置21通过ai装置21的高速互联网络接口与高速互联总线连接,处理器202通过处理器202的高速互联网络接口与高速互联总线连接。其中,高速互联网络接口可以为串行总线接口,具体地,高速互联网络接口可以为pcie接口、hccs接口、以太网接口、ib接口、fc接口中的任意一种。如果高速互联网络接口的类型不同,ai装置21与处理器202之间传输业务数据的速度可以也不同。经实验,基于各种不同类型的接口,可以将业务数据的加载速率提升2-10倍不等。此外,存储设备2可以通过ai装置21的高速互联网络接口,向ai装置21提供电能。应理解,高速互联总线仅是高速互联网络22的举例说明,高速互联网络22也可以不是高速互联总线,而是具有内存直通功能的其他总线,本实施例对高速互联网络22的具体类型并不做限定。
139.在存储设备中,通过高速互联网络22通信的部件可以有多种。例如,存储设备中的内存203和ai内存210之间可以通过高速互联网络22通信;又如,硬盘201和ai内存210之间可以通过高速互联网络22通信;又如,硬盘201和内存203之间可以通过高速互联网络22通信;又如,存储设备中的处理器202和ai处理器213之间可以通过高速互联网络22通信。此外,如果内存203的数量为多个,不同内存之间可以通过高速互联网络22通信;如果ai内存210的数量为多个,不同ai内存之间可以通过高速互联网络22通信,当然,上述进行通信的部件仅是举例说明,通过高速互联网络22相连的不同部件均可以通过高速互联网络22通信,本实施例对通过高速互联网络22通信的执行主体不做限定。
140.通过高速互联网络22进行通信的方式可以有多种,以下通过两种方式进行举例说明。
141.方式一、采用dma的方式进行通信。dma的通信方式可以参见下述图9实施例以及上述对dma技术原理的介绍,在此不做赘述。
142.方式二、采用内存结构(memory fabric)进行通信。
143.参见图3,存储设备可以包括memory fabric23,memory fabric23可以集成高速互联网络22的功能和第一网络接口211的功能。ai内存210和内存203可以通过memory fabric23连接,ai内存210和内存203可以通过memory fabric23通信。此外,memory fabric23也可以实现跨设备的内存之间的通信。例如,ai内存210和其他存储设备的ai内存也可以通过memory fabric23连接,ai内存210和其他存储设备的ai内存也可以通过memory fabric23通信;又如,内存203和其他存储设备的内存也可以通过memory fabric23连接,内存203和其他存储设备的内存也可以通过memory fabric23通信;ai内存210和其他存储设备的内存也可以通过memory fabric23连接,ai内存210和其他存储设备的内存也可以通过
memory fabric23通信;又如,内存203和其他存储设备的ai内存也可以通过memory fabric23连接,内存203和其他存储设备的ai内存也可以通过memory fabric23通信。此外,在一些实施例中,memory fabric23还可以集成第二网络接口204的功能,或者集成存储设备中其他用于进行网络通信的部件的功能,此时,存储设备中内存之外的其他部件也可以通过memory fabric23来进行通信。
144.关于通过memory fabric23通信的方式,在一些可能的实施例中,可以将通过memory fabric23互联的每个内存组成内存资源池,为该内存资源池中的每个内存的内存空间统一分配对应的地址,使得该内存资源池中的每个内存的内存空间属于同一个地址范围。将业务数据或ai参数写入该内存资源池中任一个内存中的任一内存空间后,可以根据该内存空间的地址,获取业务数据或ai参数的元数据,此后根据该元数据,可以通过memory fabric23寻址至对应的内存空间,从内存空间中读取到业务数据或ai参数。其中,寻址的对象可以是存储设备本地的内存空间,也可以是远端存储设备的内存空间。
145.示例性地,参见图4,第一内存、第二内存、第一ai内存、第二ai内存可以通过memory fabric通信,可以将第一内存、第二内存、第一ai内存、第二ai内存组成为系统1的内存资源池。例如,当第一ai处理器或第一处理器要获取ai参数时,会根据ai参数的元数据,确定ai参数在该内存资源池中所处的内存空间的地址,通过memory fabric寻址到该内存空间。
146.通过memory fabric,可以实现同一存储设备中的内存与ai内存、不同存储设备的内存、不同存储设备的ai内存统一调度,从而提高存储系统调度内存资源和使用内存资源的效率。
147.ai装置21与存储装置20通过高速互联网络22通信的效果至少可以包括:在ai计算的过程中,当ai装置21要加载ai计算所需的业务数据时,业务数据能够从存储装置20通过高速互联网络22发送至ai装置21,载入ai装置21的ai内存210。当ai装置21要存储ai计算的计算结果时,计算结果能够从ai装置21通过高速互联网络22发送至存储装置20的硬盘201,得以在硬盘201中存储。如此,一方面,通过将业务数据的加载路径以及存储路径,从在存储设备2的外部,经过一条或多条网络链路以及一个或多个交换机的转发,改进为在存储设备2的内部,通过高速互联网络22进行传输,可以极大地缩短业务数据的传输路径,从而让ai装置21可以就近获取到存储装置20存储的业务数据,就近将计算结果存入存储装置20。另一方面,通过将业务数据的传输方式,从通常基于tcp/ip协议的远程网络传输方式,改进为基于高速互联网络22的业务数据传输方式,由于高速互联网络22的传输速度通常远快于远程网络的传输速度,并且可以免去网络通信时所需进行的三次握手等建立网络通信连接的繁琐流程,因此,ai装置21能够从存储装置20快速地加载ai计算所需的业务数据,将ai计算的计算结果快速地存入存储装置20的硬盘201。经实验,每一次加载业务数据可以缩短30%以上的时延。
148.应理解,存储设备2包括的ai装置21的数量可以为一个或多个,ai装置21的数量可以根据存储设备2的构造、空间或需求设置,本实施例对存储设备2包括多少个ai装置21不做限定。
149.如果存储设备2中包括多个ai装置21,多个ai装置21可以通过高速互联网络22进行通信,例如通过高速互联网络22交换ai参数。其中,存储设备2的不同的ai装置21的形状
和构造可以相同,或者根据实际需求存在细微的差异。
150.存储设备2可以是分布式控制的存储设备2,也可以是集中式控制的存储设备2。存储设备2的形态可以而不限存储服务器、存储阵列、或者其他专用的存储设备2,存储设备2可以而不限于运行在云环境、边缘环境或终端环境。
151.本实施例提供的存储设备,通过设置有存储装置以及ai装置,该存储设备既可以通过ai装置,提供ai计算的能力,又可以通过存储装置,提供业务数据存储的能力,从而实现了存储与ai算力的融合,ai参数以及业务数据在存储设备的内部通过高速互联网络进行传输,而无需经过外部网络的转发,因此极大地缩短了业务数据以及ai参数的传输路径,能够近距离地载入业务数据,从而提高了加载速度。此外,ai装置能够借用存储装置的计算资源来处理业务数据,从而通过算力的协同,提高了ai装置的算力,加快ai计算的速度。
152.上述实施例中,ai装置21可以通过向处理器202发送数据获取请求,来获取硬盘201中的业务数据,以便根据业务数据来进行ai计算。通过这种方式,ai装置21从本地的存储设备即可得到业务数据,免去了通过网络向远端存储设备请求业务数据带来的通信开销,从而节省了获取业务数据的时延。
153.其中,ai装置21获取业务数据的实现方式具体可以包括多种,相应地,ai装置发送的数据获取请求可以包括多种情况。不同情况下的数据获取请求可以存在细微的差异,以下通过方式一、方式二和方式三进行举例说明。为了区分描述,将方式一中的数据获取请求称为第一数据获取请求,将方式二中的数据获取请求称为第二数据获取请求,将方式三中的数据获取请求称为第三数据获取请求:
154.方式一、存储设备可以利用处理器202,将硬盘201中存储的业务数据传输至ai装置21。具体来讲,ai装置21,还用于向处理器202发送第一数据获取请求,第一数据获取请求用于请求获取业务数据。处理器202,还用于接收第一数据获取请求,响应于第一数据获取请求,从硬盘201中获取业务数据,并将业务数据发送给ai装置21。
155.方式二、存储设备可以通过dma的方式,将硬盘201中存储的业务数据传输至ai装置21。具体来讲,ai装置21,还用于向处理器202发送第二数据获取请求。第二数据获取请求用于请求获取业务数据。处理器202,还用于接收第二数据获取请求,响应于第二数据获取请求,将业务数据的元数据发送给ai装置21;ai装置21可以根据元数据,判断业务数据是否位于存储设备本地,当元数据指示业务数据位于存储设备本地时,ai装置21向硬盘201发送第一数据访问请求,第一数据访问请求包括元数据,例如,第一数据访问请求可以是dma请求。硬盘201,用于根据元数据获取业务数据,并通过dma方式将业务数据写入ai装置21。其中,元数据用于指示业务数据的地址,在方式二中,业务数据的地址位于存储设备本地。
156.其中,硬盘201与ai装置21可通信,因此能够实现上述基于第二数据访问请求的交互流程。在一个示例性实施例中,硬盘201可以包括高速互联网络接口,硬盘201可以通过高速互联网络接口与ai装置21相连,ai装置21可以通过高速互联网络接口对应的控制器或驱动来读写硬盘201。例如,硬盘201的高速互联网络接口可以是串行连接scsi(serial attached scsi,sas)接口,ai装置21可以通过sas控制器,与sas接口进行通信,从而读写硬盘201。当然,硬盘201的高速互联网络接口还可以是sas接口之外的其他接口,例如高技术配置(advanced technology attachment,ata)接口、电子集成驱动器(integrated drive electronics,ide)接口、fc、小型计算机系统接口(small computer system interface,
scsi)等。
157.方式三、存储设备可以通过rdma的方式,将其他存储设备中存储的业务数据传输至ai装置21。具体来讲,ai装置21,还用于向处理器202发送第三数据获取请求。第三数据获取请求用于请求获取业务数据。处理器202,还用于接收第三数据获取请求,响应于第三数据获取请求,将业务数据的元数据发送给ai装置21;ai装置21可以根据业务数据的元数据,判断业务数据是否位于其他存储设备。当元数据指示业务数据位于其他存储设备时,ai装置21向其他存储设备发送第二数据访问请求,第二数据访问请求包括元数据,例如,第二数据访问请求可以是rdma请求。其他存储设备可以响应于第二数据访问请求,根据元数据获取业务数据,并通过rdma方式将业务数据写入ai装置21。其中,元数据用于指示业务数据的地址,在方式三中,业务数据的地址位于其他存储设备。
158.ai装置21可以包括ai内存210,ai内存210用于缓存ai参数和/或ai算力单元212或ai处理器213刚用过或循环使用的业务数据。如果ai算力单元212或ai处理器213需要再次使用业务数据,可从ai内存210中直接调用,从而避免重复存取,减少了ai算力单元212或ai处理器213的等待时间,提高了计算效率。在进行ai计算的过程中,ai内存210可以缓存ai计算的输入业务数据、中间结果或者最终结果。示例性地,ai内存210可以是高速缓冲存储器。ai内存210可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、通用闪存存储器(universal flash storage,ufs)等。
159.ai装置21,用于向硬盘201发送第一数据访问请求,第一数据访问请求包括元数据。元数据(metadata)用于指示业务数据的地址。作为示例,元数据可以包括磁道标识和扇区标识,磁道标识用于标识业务数据在硬盘中所处的磁道,例如,磁道标识可以是磁道id;扇区标识用于标识业务数据在硬盘中所处的扇区,例如,扇区标识可以是扇区id。硬盘根据磁道标识,可以找到对应的磁道,根据扇区标识,可以在该磁道上找到对应的扇区,然后读取该扇区中的数据,得到ai装置21通过第一数据访问请求来请求的业务数据。应理解,元数据指示地址的方式可以有多种,例如,元数据可以通过指示业务数据的起始地址和长度的方式,来指示业务数据的地址。又如,元数据可以通过指示业务数据的起始地址和结束地址的方式,来指示业务数据的地址,本实施例对此不做限定。
160.硬盘201,用于根据元数据获取业务数据,并通过dma方式将业务数据写入ai内存210。
161.可选地,存储设备2与其他存储设备通信。例如,存储设备2可以是图1所示系统1中的第一存储设备10,其他存储设备可以是图1所示系统1中的第二存储设备11,第一存储设备10可以与第二存储设备11通信。
162.在一种可能的实现方式中,ai装置21可以包括第一网络接口211,第一网络接口211的形态可以为网卡,第一网络接口211可以提供网络通信的能力,ai装置21能够通过第一网络接口211与其他存储设备2通信,例如通过第一网络接口211与其他存储设备2交换ai参数。可选地,第一网络接口211可以支持远程直接内存访问(remote direct memory access,简称:rdma)的功能,第一网络接口211可以是远程直接数据存取网络接口控制器(rdma network interface controller,简称:rnic)。
163.在一个示例性应用场景中,在训练或推理的过程中,如果ai装置21计算出ai参数,ai装置21可以通过第一网络接口211,向其他存储设备2,发送ai参数,以便其他存储设备2
接收ai参数。同理地,如果其他存储设备2计算出ai参数,其他存储设备2可以将ai参数发送至第一网络接口211,第一网络接口211可以接收ai参数。
164.ai装置21,还用于根据元数据确定业务数据位于其他存储设备2时,向其他存储设备2发送第二数据访问请求,使得业务数据以rdma方式写入ai内存210,第二数据访问请求包括元数据。
165.可选地,ai装置21还包括ai算力单元212。ai算力单元212用于提供ai算力。在一个示例性实施例中,ai算力单元212上可以运行ai算法,从而进行模型训练或推理预测,其中,该ai算法可以为神经网络模型,从本质上讲,ai算法包括矩阵或向量的乘法以及加法,另外还可以包括除法以及指数运算。ai算力单元212可以包括一个或多个图形处理器(graphics processing unit,gpu)、神经网络处理器(neural-network processing unit,npu)、张量处理单元(tensor processing unit,tpu)、现场可编程门阵列(field-programmable gate array,fpga)、专用集成电路(application specific integrated circuit,asic)、类脑芯片、可重构通用ai芯片、cpu、可编程逻辑器件(programmable logic device,pld)、控制器、状态机、门逻辑、分立硬件部件、或者其他能够提供ai算力的电路的任意组合。ai算力单元212可以包括一个或多个处理核心。
166.ai算力单元212具体用于从ai内存210中获取业务数据,并进行ai计算。
167.可选地,ai装置21包括ai处理器213,ai处理器213和ai内存210之间可以通过高速互联网络22相连。ai处理器213可以为cpu,ai处理器213可以用于进行管理和资源调度。ai处理器213可以运行操作系统或者应用程序。ai处理器213可以包括一个或多个处理核心。
168.可选地,存储装置20包括处理器202和内存203,处理器202和内存203之间可以通过高速互联网络22相连。处理器202可以是存储装置20的中央处理器(central processing unit,cpu)。处理器202可以采用数字信号处理(digital signal processing,dsp)、fpga、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。
169.在一些可能的实施例中,存储设备可以是集中式控制的存储设备。具体地,存储设备可以包括一个或多个控制器,可以通过控制器来控制硬盘。此外,存储设备还可以包括一个或多个级联板,级联板可以用于级联存储设备中的不同硬盘,级联板可以和硬盘以及控制器连接。例如,参见图5,存储设备可以是双控的架构,双控架构是指存储设备中控制器的数量是2个,例如图5中,系统1可以包括控制器1和控制器2这2个控制器。又如,参见图6,存储设备可以是四控架构,四控架构是指存储设备中控制器的数量是4个,例如图6中,系统1可以包括控制器1、控制器2、控制器3和控制器4这4个控制器。
170.其中,如果存储设备是集中式控制的存储设备,ai装置可以设置在控制器内部,那么,控制器可以在实现原有的控制硬盘的功能的基础上,还提供ai算力。如果存储设备包括多个控制器,可以在每个控制器中均设置ai装置,也可以在部分控制器中设置ai装置,在另一部分控制器中不设置ai装置,本实施例对此不做限定。
171.内存203:用于缓存业务数据,可选地,在支持ai内存210与内存203直通的功能下,内存203也可以用于缓存ai参数。通过内存203来缓存业务数据和/或ai参数,处理器202、ai算力单元212或ai处理器213需要使用业务数据和/或ai参数时,可从内存203中直接调用,从而避免重复存取,减少了处理器202、ai算力单元212或ai处理器213的等待时间,提高了计算效率。示例性地,内存203可以是高速缓冲存储器。内存203可以包括高速随机存取存储
器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、通用闪存存储器(universal flash storage,ufs)等。
172.ai装置21包括ai处理器213,ai处理器213和ai内存210之间可以通过高速互联网络22相连。ai处理器213可以为cpu,ai处理器213可以用于进行管理和资源调度。在一个示例性实施例中,ai处理器213可以运行操作系统或者应用程序
173.通过在ai装置21中设置ai处理器213,可以将ai计算任务和非ai计算任务分配给不同的处理器执行,通过ai算力单元212执行ai计算任务,通过ai处理器213执行非ai计算任务,从而实现计算任务的负载分担,免去ai算力单元213为执行非ai计算任务而导致算力被占用的情况。在一些实施例中,存储设备还可以使用ai处理器201可以分担处理器202的计算任务,例如,处理器202可以将从硬盘中获取业务数据的任务发送给ai处理器201,ai处理器201可以执行从硬盘中获取业务数据的任务,将得到的业务数据发送给ai处理器201。外,能够利用不同处理器各自的性能优势,比如利用cpu对逻辑控制的优势,将cpu作为ai处理器213以进行资源调度和管理,利用gpu或npu对浮点运算以及并行计算的优势,将gpu或npu作为ai算力单元212来进行模型训练或者其他ai计算,从而提高ai计算的整体效率,帮助ai加速。此外,能够避免ai计算的过程与资源调度管理的过程相互干扰,提高ai计算的整体效率,帮助ai加速。
174.可选地,处理器202,还用于从内存203中划分一段内存空间预留给ai装置21使用。
175.可选地,ai处理器213,用于当ai内存210的可用容量达到预设阈值时,向处理器202发送内存申请请求。处理器202,用于基于内存申请请求,从内存203中划分一段内存空间预留给ai装置21使用。
176.可选地,ai内存210的可用容量通过设定的batchsize确定。
177.可选地,ai处理器213,用于将计算任务划分为至少两个子任务,将至少两个子任务中的第一子任务发送给处理器202;处理器202,还用于执行第一子任务,并将计算结果发送给ai处理器213。这一可选方式可以应用在多种情况下,例如,ai处理器可以当确定ai处理器213的算力不足时,执行该可选方式。
178.可选地,存储装置20可以包括第二网络接口204。第二网络接口204用于进行网络通信,第二网络接口204可以是网卡,第二网络接口204可以通过高速互联网络22与ai装置21、处理器202、内存203连接。
179.可选地,存储装置20可以包括业务接口205。
180.在一些可能的实施例中,存储装置20可以用于将操作系统加载至ai装置21,通过操作系统启动ai装置21。具体来讲,存储装置20可以存储操作系统的镜像文件,如果存储装置20要启动ai装置21时,存储装置20可以通过高速互联网络22,向ai装置21发送操作系统的镜像文件,将操作系统的镜像文件加载至ai装置21的ai内存210,基于操作系统的镜像文件运行操作系统,从而启动ai装置21。其中,操作系统可以为linux
tm
、unix
tm
、或windows
tm
等。
181.通过由存储装置20将操作系统加载至ai装置21,ai装置21可以无需安装操作系统,从而避免操作系统占用ai装置21的存储空间,因此可以保证ai装置21的存储容量。尤其是,如果存储装置20包括多个ai装置21,通常来讲,多个ai装置21的操作系统均相同,因此存储装置20可以将同一操作系统,批量化的分别加载至每个ai装置21,从而批量化的启动
各个ai装置21。那么,既能够避免每个ai装置21分别安装相同的操作系统,导致相同的操作系统在每个ai装置21上均占用存储空间的情况,从而节省每个ai装置21的存储空间,提高存储效率,并且,可以通过批量化的启动方式,提高多个ai装置21的启动效率。
182.可选地,ai装置21还可以包括非易失性存储介质,下述方法实施例的全部或部分步骤可以以计算机软件产品的形式体现出来,该计算机软件产品可以存储在ai装置21的非易失性存储介质中或者上面描述的ai内存210中,计算机软件产品包括一个或多个指令,用以使得ai装置21执行全部或部分步骤。
183.可选地,ai装置21和存储装置20可以集成在一起,作为一套产品共同销售或使用,ai装置21与存储装置20不相互分离。在另一些可能的实施例中,ai装置21也可以作为一个独立的产品销售,并配合存储装置20使用,例如ai装置21可以插入存储设备2的高速互联总线,或者从存储设备2的高速互联总线拔出,从而实现和存储装置20的接触和分离。
184.应理解,图2所示的存储设备2的每个部件的数量可以更多或更少,比如部件的数量可以为一个,或者可以为几十个或几百个,或者更多数量。例如,ai装置21可以包括多个ai算力单元212,本实施例对存储设备2的每个部件的数量不做限定。
185.应理解,本实施例示意的结构并不构成对存储设备2的具体限定。在本技术另一些实施例中,存储设备2可以包括比图2所示的更多或更少的部件,或者将图2中的两个或两个以上的部件进行组合,或者将图2中某一个部件拆分为两个或两个以上的节点,或者将图2中的两个或两个以上的部件布置在不同的位置。
186.以上介绍了本技术实施例提供的分布式存储系统以及存储设备,以下示例性介绍应用于该分布式存储系统以及存储设备的方法流程。
187.图7是本技术实施例提供的一种数据处理方法的流程图,该方法可以应用于存储设备,该存储设备可以是图1或图2所示的任意一个存储设备,该方法包括:
188.s71,存储设备的处理器将业务数据存储至硬盘中。
189.例如,客户端可以将业务数据发送给存储设备,存储设备可以接收来自客户端的业务数据,将业务数据写入至硬盘,从而通过硬盘来存储业务数据。
190.s72,存储设备的ai装置向存储设备的处理器发送数据获取请求以获取业务数据,并对业务数据进行ai计算。
191.可选地,存储设备的处理器的计算资源以及ai装置的计算资源可以组成资源池,存储设备可以调度资源池中的资源,来处理ai计算。通过协同处理器的算力以及ai装置的算力,能够提高存储设备的整体的ai算力,从而加速ai计算的过程。
192.其中,ai计算的处理过程可以而不限于下述情况(1)至(2)中的一项或多项。
193.(1)模型训练。
194.具体地,存储设备可以通过存储设备自身的处理器的计算资源以及ai装置的计算资源对样本集进行模型训练,得到ai模型。示例性地,ai模型可以是神经网络模型。比如,可以通过样本图像训练得到图像识别模型,该图像识别模型可以而不限于是卷积神经网络(convolutional neural networks,cnn),当然也可以是建立在cnn基础上的其他神经网络,比如区域cnn(region-cnn,r-cnn)、快的r-cnn(fast r-cnn)、更快的r-cnn(faster r-cnn)、单阶段多框检测(single shot multibox detector,ssd)等。又如,ai装置可以通过样本文本,训练得到语义识别模型,该语义识别模型可以而不限于是循环神经网络
(recurrent neural networks,rnn)。又如,ai装置可以通过样本语音,训练得到语音识别模型。
195.(2)推理预测。
196.具体地,存储设备可以将待识别的业务数据输入至已训练的ai模型,通过处理器的计算资源以及ai装置的计算资源,使用ai模型进行业务数据推理,得到业务数据的识别结果。比如,可以将待识别的图像输入至图像识别模型,输出图像识别结果。该图像识别结果可以而不限于图像的类别、图像的特征或图像中物体的位置中的一项或多项。该图像的类别可以指示图像中包含了哪一种物体,比如,如果是人脸识别的场景,图像识别模型为人脸识别模型,图像的类别可以为人脸的类别;如果是场景识别的场景,图像识别模型为场景识别模型,图像的类别可以为场景的类别,比如是天花板,还是草坪,还是地面;如果是字符识别的场景,图像识别模型为字符识别模型。图像的类别可以为字符的类别。该图像的特征可以而不限于是一维的特征值、二维的特征图、三维的特征立方体或者更高维的张量。图像中物体的位置可以通过物体所处的边界框(bounding box)的坐标来表示。又如,可以将待识别的文本输入至语义识别模型,输出语义识别结果。又如,可以将待识别的语音输入至语音识别模型,输出语音识别结果。
197.本实施例提供的存储设备,通过设置有处理器以及ai装置,该存储设备既可以通过ai装置,提供ai计算的能力,又可以通过处理器,提供业务数据存储的能力,从而实现了存储与ai算力的融合,ai参数以及业务数据在存储设备的内部通过高速互联网络进行传输,而无需经过外部网络的转发,因此极大地缩短了业务数据以及ai参数的传输路径,能够近距离地加业务数据,从而提高了加载速度。此外,ai装置能够借用处理器的计算资源来处理业务数据,从而提高了ai装置的算力,加快ai计算的速度。
198.上述图7实施例中,ai装置获取业务数据的实现方式具体可以包括多种,以下通过图8实施例、图9实施例和图10实施例进行举例说明。
199.在一些实施例中,ai装置能够从存储设备本地就近获取业务数据。以下通过图8实施例和图9实施例,对就近获取业务数据的实现方式进行举例说明。
200.示例性地,参见图8,图8是本技术实施例提供的一种数据处理方法的流程图,ai装置就近获取业务数据的流程可以包括以下步骤:
201.s81,ai处理器向处理器发送第一数据获取请求。
202.ai处理器可以生成第一数据获取请求,通过高速互联网络,将第一数据获取请求发送给处理器。其中,第一数据获取请求用于请求硬盘中存储的业务数据,第一数据获取请求可以携带业务数据的标识,业务数据的标识可以是业务数据的id。
203.s82,处理器响应于第一数据获取请求,从硬盘中获取业务数据,并将业务数据发送给ai装置。
204.处理器可以通过高速互联网络,接收第一数据获取请求。处理器可以解析第一数据获取请求,得到第一数据获取请求携带的业务数据的标识。处理器可以根据业务数据的标识,确定业务数据在硬盘中的地址。处理器可以根据业务数据的地址,访问硬盘,得到硬盘存储的业务数据。处理器可以通过高速互联网络,将业务数据返回给ai装置。
205.s83,ai装置接收处理器发送的业务数据,对业务数据进行ai计算。
206.本实施例提供了一种ai装置就近获取业务数据的方法,由于存储设备内部包含了
ai装置、处理器和硬盘,当ai装置要获取业务数据时,通过向处理器发送数据获取请求,由存储设备的处理器从本地的硬盘中获取业务数据,发送给ai处理器,使得ai处理器能够从本地得到业务数据,免去了通过网络向远端存储设备请求业务数据带来的通信开销,从而节省了获取业务数据的时延。
207.上述图8实施例提供了一种就近获取业务数据的流程,在本技术的另一些实施例中,就近获取业务数据也可以通过其他实现方式实现。以下通过图9实施例示例性说明。
208.参见图9,图9是本技术实施例提供的一种数据处理方法的示意图,ai装置就近获取业务数据的流程可以包括以下步骤:
209.s91,ai装置向处理器发送第二数据获取请求。
210.当ai装置要从处理器获取业务数据时,ai处理器可以生成第二数据获取请求,通过高速互联网络,将第二数据获取请求发送给处理器。其中,第二数据获取请求用于请求获取业务数据,第二数据获取请求可以携带业务数据的标识,该业务数据的标识可以是业务数据的id。
211.s92,处理器响应于第二数据获取请求,将业务数据的元数据发送给ai装置,元数据用于指示业务数据的地址。
212.处理器可以解析第二数据获取请求,得到第二数据获取请求携带的业务数据的标识,获取该业务数据的元数据,将元数据通过高速互联网络发送给ai处理器。其中,元数据用于指示业务数据的地址,即业务数据的存储位置。例如,元数据可以指示业务数据的起始地址以及业务数据的长度,或者,元数据可以指示业务数据的起始地址和结束地址。
213.参见图10,其示出了一种ai处理器和存储设备的处理器进行交互的示意图。
214.可选地,处理器可以根据业务数据的地址,判断业务数据是否能够通过dma的方式发送给ai装置,如果业务数据能够通过dma的方式发送给ai装置,则将业务数据的元数据发送给ai装置,以触发图9实施例提供的方法流程。此外,处理器可以判断业务数据是否能够通过rdma的方式发送给ai装置,如果业务数据能够通过rdma的方式发送给ai装置,则将业务数据的元数据发送给ai装置,以触发图12实施例提供的方法流程。此外,如果业务数据不能通过dma的方式或rdma的方式发送给ai装置,则将业务数据从硬盘载入内存,再将业务数据从内存传输至ai内存。
215.s93,当元数据指示业务数据位于存储设备本地时,ai装置向硬盘发送第一数据访问请求。
216.第一数据访问请求包括业务数据的元数据,第一数据访问请求可以是dma请求。在一个示例性实施例中,ai装置的ai处理器可以根据业务数据的元数据,确定业务数据的地址,判断业务数据的地址在本地的硬盘还是在其他存储设备,如果确定业务数据的地址位于本地的硬盘,则根据元数据,生成第一数据访问请求,通过高速互联网络,将第一数据访问请求发送给硬盘。
217.s94,硬盘根据元数据获取业务数据,并通过dma方式将业务数据写入ai装置。
218.硬盘可以解析第一数据访问请求,得到第一数据访问请求携带的元数据,根据元数据确定业务数据的地址,访问该地址,得到业务数据。硬盘和ai内存之间可以建立dma通道,硬盘可以将业务数据通过该dma通道发送到ai内存中。其中,硬盘可以是智能盘,硬盘可以包括cpu,硬盘可以通过自身的cpu来执行写入业务数据的操作。
219.示例性地,参见图11,图11是本技术实施例提供的一种业务数据传输的示意图,从图11可以看出,硬盘存储的业务数据能够通过高速互联网络,以dma的方式传输至ai内存。
220.本实施例提供的方法,可以实现ai装置和硬盘之间的dma直通,通过在ai装置和硬盘之间建立dma通路,ai装置和硬盘能够利用dma通路进行快速业务数据交换,从而提高ai装置载入业务数据的速度,进而提高ai装置可同时处理的业务数据量,从而降低ai装置之间的传输ai参数的通信开销,加快ai训练的速度。
221.在另一些实施例中,ai装置能够从其他存储设备获取业务数据。以下通过图12实施例,对从其他存储设备获取业务数据进行举例说明。具体地,参见图12,本技术实施例提供了一种数据处理方法,该方法可以应用于存储设备,该存储设备可以是图1或图2所示的任意一个存储设备,包括以下步骤。
222.s1201,ai装置向处理器发送第三数据获取请求。
223.s1202,处理器响应于第三数据获取请求,将业务数据的元数据发送给ai装置。
224.s1203,当元数据指示业务数据位于其他存储设备时,ai装置向其他存储设备发送第二数据访问请求。
225.ai处理器可以根据业务数据的元数据,确定业务数据的地址,根据业务数据的地址,判断业务数据存储在本地还是在存储在其他存储设备,如果确定业务数据存储在其他存储设备,则ai处理器生成第二数据访问请求,将第二数据访问请求发送给第一网络接口,第一网络接口可以将第二数据访问请求发送给其他存储设备。其中,第二数据访问请求可以包括业务数据的元数据。第二数据访问请求可以是rdma请求,第二数据访问请求可以包括存储设备的ai内存中的目的地址,以指示其他存储设备将业务数据写入至该目的地址。
226.s1204,其他存储设备响应于第二数据访问请求,将业务数据发送至ai装置。
227.例如,其他存储设备可以采用rdma方式,将业务数据写入ai内存。具体地,其他存储设备可以解析第二数据访问请求,得到第二数据访问请求携带的业务数据的元数据,根据业务数据的元数据,确定业务数据的地址,访问存储介质中的该地址,得到业务数据。此外,其他存储设备可以根据第二数据访问请求,建立与ai装置的ai内存之间的rdma通路,将业务数据通过rdma通路写入到ai装置的ai内存。具体地,其他存储设备可以根据ai内存的目的地址以及业务数据,生成rdma消息,向ai装置发送rdma消息,该rdma消息包括业务数据以及ai内存的目的地址,ai装置的第一网络接口可以接收rdma消息,解析rdma消息,得到rdma消息携带的业务数据以及ai内存的目的地址,通过高速互联网络访问ai内存,将业务数据写入到该ai内存的目的地址中。
228.示例性地,参见图13,图13是本技术实施例提供的一种业务数据传输的示意图,从图13可以看出,其他存储设备存储的业务数据能够通过高速互联网络,以rdma的方式传输至ai内存。
229.通过这种可选方式,ai装置的ai内存与其他存储设备实现了rdma直通,通过ai内存和其他存储设备进行快速业务数据交换,加快ai训练的速度。
230.可选地,ai装置可以通过ai算力单元来提供ai算力。例如,参见图14,本技术实施例提供了一种ai计算的处理方法,该方法可以应用于存储设备,该存储设备可以是图1或图2所示的任意一个存储设备,该方法的执行主体为存储设备的ai算力单元,包括以下步骤。
231.s1401,ai算力单元从ai内存中获取业务数据。
232.ai算力单元和ai内存之间可以通过高速互联网络通信,ai算力单元可以通过高速互联网络,访问ai内存,得到ai内存缓存的业务数据。
233.s1402,ai算力单元对业务数据进行ai计算。
234.进行ai计算的细节可以参见上述图7实施例的步骤s72,在此不做赘述。
235.通过这种可选方式,ai装置能够通过ai算力单元来提供ai算力,从而避免ai计算占用存储装置本身的算力,也就可以避免ai计算对存储设备本身的性能造成严重影响。
236.可选地,存储设备的内存和ai内存可以实现内存资源的协同。实现内存资源协同的方式可以有多种,以下通过图15实施例和图16实施例举例说明。
237.在一些实施例中,ai装置能够借用存储装置的内存来进行ai计算。参见图15,本技术实施例提供了一种数据处理方法,该方法可以应用于存储设备,该存储设备可以是图1所示的系统1中的第一存储设备10或第二存储设备11,也可以是图2所示的存储设备2,该方法的交互主体包括存储设备的ai处理器以及该存储设备的处理器,包括以下步骤。
238.s1501,ai处理器确定ai内存的可用容量达到预设阈值。
239.s1502,ai处理器向处理器发送内存申请请求。
240.其中,内存申请请求用于借用处理器的内存,内存申请请求可以携带待借用的内存空间的大小。可以理解的是,s1501中所规定的触发条件仅是一种示例,ai处理器也可以在其他情况下,或者没有任何触发条件的情况下向处理器发送内存申请请求。
241.s1503,处理器基于内存申请请求,从内存中划分一段内存空间预留给ai处理器使用。
242.s1504,ai处理器使用存储设备的内存中的内存空间进行ai计算。
243.ai处理器可以通过pcie总线或memory fabric,访问存储设备的处理器预留的内存空间,使用内存的内存空间以及ai内存的内存空间来进行ai计算。在进行ai计算的过程中,内存可以和ai内存之间通过dma、pcie或memory fabric进行快速交换,那么由于内存空间更大,可以提高单个ai处理器一批可处理的数据量,降低不同ai处理器之间的参数通信开销,以加速ai训练的速度。此外,当ai处理器停止进行ai计算,不再使用存储设备的内存的内存空间时,ai处理器可以向处理器发送内存释放请求,使得处理器释放预留的内存空间,将内存空间还给处理器使用。
244.相关技术中,gpu的显存是固定的,这就导致进行ai计算时经常面临内存不足的问题。而通过这种可选方式,ai装置能够借用存储装置的内存来进行ai计算,从而扩大了ai装置的可用内存空间,让ai装置能够在更大的内存上进行ai计算,从而提高ai计算的效率。
245.需要说明的一点是,存储设备的处理器在ai处理器发送了内存申请请求的触发条件下,划分内存空间给ai处理器的方式仅是可选方式。在另一些实施例中,存储设备的处理器也可以在其他情况下,从内存中划分一段内存空间预留给ai装置使用。例如,存储设备的处理器可以主动划分内存空间,预留给ai装置,例如,存储设备的处理器可以当确定内存的可用容量高于预设阈值时,则划分内存空间预留给ai装置使用,又如,存储设备的处理器可以监控ai内存的可用容量,存储设备的处理器确定ai内存的可用容量达到预设阈值时,则划分内存空间预留给ai装置使用。应理解,本实施例并不限定存储设备的处理器划分内存空间预留给ai处理器这一特征的应用场景,在一些实施例中,存储设备的处理器可以在任意预先设定的条件下,划分内存空间预留给ai处理器。
246.可选地,ai内存的可用容量通过设定的批尺寸(batchsize)确定。其中,批尺寸为一次训练使用的数据数量。具体地,ai处理器可以根据设定的批尺寸,确定ai内存的可用容量,即要基于设定的批尺寸进行ai计算,需要多大容量的ai内存。ai处理器可以对ai内存的可用容量与预设阈值进行比较,如果ai内存的可用容量达到预设阈值,表明ai内存不足,则触发执行借用存储设备的内存的流程。
247.通过这种可选方式,ai处理器可以利用存储设备的内存的内存空间来进行训练,那么由于可用的内存空间更大,能够提高ai训练的批尺寸,从而提高ai装置一批可处理的业务数据量,降低不同ai装置之间交换ai参数的通信开销,提高ai训练的速度。经实验,如果仅通过ai内存进行ai训练,批尺寸最高设定为256,而通过这种方式,可以将批尺寸设定为32000,由此可见,批尺寸得到显著提升。
248.在一些实施例中,存储设备在读写ai参数的过程中,可以优先使用ai内存,其次使用存储设备的内存,以便利用ai内存通常比存储设备的内存性能更好的优势(例如ai内存的访问速度可能高于内存),来加快ai参数的读写速度。具体地,可以将ai内存为第一层级,以内存为第二层级,对ai参数进行分层缓存,其中,第一层级的优先级高于第二层级的优先级。通过这一方式,实现了存储设备的内存与ai内存之间的分层,会优先将ai参数缓存在ai内存中。作为一种可能的实现,介质控制器可以建立ai内存和存储设备的内存之间的映射关系,如果ai内存溢出,则将ai内存缓存的ai参数存入存储设备的内存。
249.在一些实施例中,存储装置能够借用ai装置的内存来处理业务数据的读写,从而加速访问业务数据的速度或存储业务数据的速度。参见图16,本技术实施例提供了一种数据处理方法,该方法可以应用于存储设备,该存储设备可以是图1或图2所示的任意一个存储设备,包括以下步骤。
250.s1601,存储设备的处理器确定存储设备的内存的可用容量达到预设阈值。
251.s1602,存储设备的处理器向ai处理器发送内存申请请求。
252.其中,内存申请请求用于借用ai处理器的ai内存,内存申请请求可以携带待借用的内存空间的大小。可以理解的是,s1111中所规定的触发条件仅是一种示例,存储设备的处理器也可以在其他情况下,或者没有任何触发条件的情况下向ai处理器发送内存申请请求。
253.s1603,ai处理器基于内存申请请求,从ai内存中划分一段内存空间预留给存储设备的处理器使用。
254.s1604,存储设备的处理器使用ai内存中的内存空间进行ai计算。
255.存储设备的处理器可以通过高速互联网络或memory fabric,访问ai处理器预留的内存空间,使用ai内存的内存空间以及内存的内存空间来读写业务数据。在读写业务数据的过程中,ai内存可以和内存之间通过dma、高速互联网络或memory fabric进行快速交换,那么由于内存空间更大,可以提高单个处理器一批可处理的数据量,降低不同处理器之间的参数通信开销,以加速业务数据的读写。此外,当存储设备的处理器停止读取业务数据或写入业务数据,不再使用ai内存的内存空间时,处理器可以向ai处理器发送内存释放请求,使得ai处理器释放预留的内存空间,将内存空间还给ai处理器使用。
256.在一个示例性应用场景中,用户对一个人脸图片集进行了标注,要将该人脸图片集存储到存储设备中,以便后续利用该人脸图片集来进行ai训练。此时,用户可以通过对客
户端触发操作,使得客户端将人脸图片集发送至存储设备。存储设备接收到人脸图片集后,存储设备的处理器通常会先将人脸图片集缓存至内存中,再将内存中的人脸图片集写入至硬盘,从而实现人脸图片集的持久化存储。由于人脸图片集的数据量庞大,存储设备的内存的容量可能不满足需求,导致存储设备的内存的可用容量达到预设阈值。此时,存储设备的处理器可以通过执行上述步骤s1601至步骤s1604,借用ai内存的内存空间,通过更多的内存空间来缓存人脸图片集,进而加速人脸图片集的存储速度。
257.相关技术中,存储设备的内存的容量是固定的,这就导致存储业务数据时经常面临内存不足的问题。而通过这种可选方式,存储装置能够借用ai装置的ai内存来进行业务数据的读写,从而扩大了存储装置的可用内存空间,让存储装置能够在更大的内存上存储业务数据,从而节省业务数据的读写时间,提高业务数据的读写效率。
258.可选地,存储设备的处理器和ai处理器可以实现算力的协同。实现算力协同的方式可以有多种,以下通过图17实施例和图18实施例举例说明。
259.在一些实施例中,ai处理器能够借用存储设备的处理器的算力来处理ai计算,从而支持存储设备的处理器和ai处理器算力协同的功能。参见图17,本技术实施例提供了一种数据处理方法,该方法可以应用于存储设备,该存储设备可以是图1或图2所示的任意一个存储设备,包括以下步骤。
260.s1701,当确定ai处理器的算力不足时,ai处理器将计算任务划分为至少两个子任务。
261.在ai处理器进行ai训练以及资源调度的过程中,ai处理器由于执行计算操作,导致cpu被占用,由此出现算力不足的情况,此时,ai处理器可以通过对计算任务进行划分,利用处理器分担计算任务。
262.s1702,ai处理器将至少两个子任务中的第一子任务发送给存储设备的处理器。
263.第一子任务为该至少两个子任务中待由存储设备的处理器执行的任务。ai处理器可以通过高速互联网络来发送第一子任务。
264.s1703,存储设备的处理器执行第一子任务。
265.s1704,存储设备的处理器将计算结果发送给ai处理器。
266.存储设备的处理器可以在完成第一子任务后,将第一子任务的计算结果反馈给ai处理器,ai处理器可以接收计算结果,根据计算结果执行下一步计算任务,或根据计算结果来调度ai算力单元。
267.通过这种可选方式,ai处理器能够在自身的算力不足时,借用存储设备的处理器的算力来处理ai计算,从而实现ai处理器和存储设备的处理器的算力协同,提高了ai处理器的算力,从而加快了ai训练的速度。
268.在一些实施例中,存储设备的处理器能够借用ai处理器的算力来处理业务数据的读写,从而加速访问业务数据的速度或存储业务数据的速度。参见图18,本技术实施例提供了一种数据处理方法,该方法可以应用于存储设备,该存储设备可以是图1或图2所示的任意一个存储设备,包括以下步骤。
269.s1811,当确定存储设备的处理器的算力不足时,存储设备的处理器将计算任务划分为至少两个子任务。
270.在存储设备的处理器处理业务数据的过程中,处理器由于执行读操作或写操作,
导致cpu不足,由此可以出现算力不足的情况。此时,存储设备的处理器可以通过对计算任务进行划分,利用ai处理器分担计算任务。
271.s1812,存储设备的处理器将至少两个子任务中的第二子任务发送给ai处理器。
272.第二子任务为该至少两个子任务中待由ai处理器执行的任务。例如,第二子任务可以是从硬盘中获取业务数据。处理器可以通过高速互联网络来发送第二子任务。
273.s1813,ai处理器执行第二子任务。
274.s1814,ai处理器将计算结果发送给存储设备的处理器。
275.ai处理器可以在完成第二子任务后,将第二子任务的计算结果反馈给存储设备的处理器,存储设备的处理器可以接收计算结果,根据计算结果执行下一步计算任务。
276.例如,如果第二子任务是从硬盘中获取业务数据,ai处理器从硬盘中获取业务数据后,可以将得到的业务数据发送给存储设备的处理器。
277.通过这种可选方式,存储设备的处理器能够在自身的算力不足时,借用ai处理器的算力来处理业务数据的读写,从而实现ai处理器和存储设备的处理器的算力协同,提高了存储设备的处理器的算力,从而加快了业务数据的读写速度。
278.在一个可选的实施例中,存储设备处理ai计算之前,存储设备的处理器可以将操作系统加载到ai装置,存储设备的处理器通过操作系统启动ai装置。在另一个可选的实施例中中,ai装置也可以预存有操作系统,存储设备的处理器可以向ai装置发送启动指令,ai装置可以接收到启动指令,响应于启动指令,加载操作系统,运行操作系统,从而得以启动。其中,处理器可以从终端或上层应用接收到ai计算指令,ai计算指令用于指示处理器进行ai计算,处理器可以在ai计算指令的触发下,执行将操作系统加载到ai装置的步骤。当然,处理器也可以在其他时机下执行将操作系统加载到ai装置的步骤,本实施例对此不做限定。
279.上述实施例描述了单个存储设备处理ai计算的方法流程,在本技术的一些实施例中,可以通过分布式存储系统中的多个存储设备协同进行ai计算,从而提高整体的ai算力。以下进行具体描述。
280.图19是本技术实施例提供的一种数据处理方法的流程图,该方法可以应用于图1所示的存储系统,该方法可以应用于图1所示的系统1,该方法的交互主体包括存储系统中的第一存储设备以及第二存储设备,包括以下步骤。
281.s1901,第一存储设备的第一ai装置和第二存储设备的第二ai装置之间通过第一网络传输ai参数。
282.在第一存储设备和第二存储设备处理ai计算的过程中,第一存储设备可以和第二存储设备交换ai参数。具体地,ai计算通常基于神经网络模型进行,而神经网络模型的计算过程主要分为前向传播算法以及后向传播(back propagation neural networks,bp)算法两大部分。前向传播算法,用于计算神经网络模型的输出结果。在运行前向传播算法的过程中,数据会从神经网络模型的输入层开始,按照输入层、一个或多个隐藏层直至输出层的方向,经过每个层的计算,逐层传递,直至从输出层输出。后向传播算法,用于减小模型的输出结果与实际结果之前的误差。在运行后向传播算法的过程中,会通过调整ai参数,例如各个神经元的权重,来优化神经网络模型。总结来说,神经网络模型的运行包括前向传播算法与后向传播算法的循环迭代,在此过程中,需要通过交换ai参数。来使模型通过ai参数的调整
不断优化。
283.当第一ai装置计算出ai参数,第一ai装置可以通过第一网络接口输出ai参数,第一网络可以从第一ai装置的第一网络接口接收ai参数,第一网络可以将接收的ai参数发送至第二ai装置的第一网络接口,该第二ai装置可以从第一网络接口接收输入的ai参数。
284.可选地,如果存储系统还包括用于处理ai计算的主机,第一网络可以用于在第一存储设备、第二存储设备和主机之间传输ai参数。
285.s1902,第一存储设备的第一存储装置和第二存储设备的第二存储装置之间通过第二网络传输业务数据。
286.示例性地,参见图20,图20是本技术实施例提供的一种数据传输的示意图,从图20可以看出,ai参数可以通过第一网络在不同存储设备的ai装置之间传输,业务数据可以通过第二网络在不同存储设备的存储装置之间传输。
287.本实施例提供的方法,两个存储设备通过各自的ai装置,利用第一网络来交换ai参数,通过各自的存储装置,利用第二网络来交换业务数据,从而根据ai参数以及业务数据来协同进行ai计算,通过融合多个存储设备的存储能力和ai算力,能够提高系统整体的存储能力和ai算力。
288.可选地,存储装置可以借用第一网络来交换业务数据。具体地,参见图21,本技术实施例提供了一种业务数据传输方法,该方法可以应用于图1所示的系统1,该方法的交互主体包括第一存储装置和第二存储装置,包括以下步骤。
289.s2111,第一存储装置确定第二网络的网络资源低于设定的存储网络资源阈值。
290.第一存储装置或管理装置可以检测第一存储装置的第二网络的网络资源,判断第一存储装置的第二网络的网络资源是否低于设定的存储网络资源阈值,如果确定第二网络的网络资源低于设定的存储网络资源阈值时,可以触发执行步骤s2112。在一些实施例中,可以还检测第一ai装置的第一网络的网络资源以及第二ai装置的第一网络的网络资源,判断第一ai装置的第一网络的网络资源以及第二ai装置的第一网络的网络资源是否高于设定的ai网络资源阈值,如果确定第二网络的网络资源低于设定的存储网络资源阈值,且第一ai装置的第一网络的网络资源高于设定的ai网络资源阈值,且第二ai装置的第一网络的网络资源高于设定的ai网络资源阈值时,表明当前的第二网络的网络资源不足而ai网络资源充足,可以在这种情况的触发下,执行步骤s2112。另外,可以理解的是,即使没有s2111的限定条件,存储装置也可以借用第一网络来交换业务数据。
291.s2112,第一存储装置和第二存储装置之间通过第一网络传输其他业务数据。
292.以第一存储装置为源设备,第二存储装置为目的设备为例,其他业务数据的传输流程可以包括:第一ai装置的第一网络接口可以通过高速互联网络,访问第一存储装置的硬盘,从第一存储装置的硬盘读取其他业务数据,通过第一网络,将其他业务数据发送给第二存储设备,第二ai装置的第一网络接口可以通过第一网络,接收其他业务数据,通过高速互联网络,将其他业务数据写入至第二存储装置的内存。
293.在一个示例性场景中,当分布式存储系统启动作业,各个存储设备首次加载业务数据时,由于存储设备通过第二网络来加载业务数据,导致第二网络出现拥塞,而此时由于ai装置尚未启动作业或者刚开始启动作业,第一网络通常是空闲的,因此能够利用空闲的第一网络来传输业务数据,从而加快业务数据的传输,使得业务数据能够通过第一网络和
第二网络的协同快速加载到各个存储设备。
294.相关技术中,业务数据通常只会通过第二网络传输,相当于仅有第二网络这一条转发路径。通过这种可选方式,达到的效果至少可以包括:为存储装置之间交换业务数据提供了一条新的通路,通过在第二网络的网络资源不足时,使用第一网络来交换业务数据,第一网络可以作为业务数据的一条新增的转发路径,那么业务数据既可以通过第二网络传输,也可以通过第一网络传输,因此提高了传输业务数据的网络带宽,从而缩短了交换业务数据的时延,提高了交换业务数据的速度,进而提高了进行ai计算的速度。
295.可选地,不同存储设备之间可以通过rdma实现内存直通。具体地,参见图22,本技术实施例提供了一种数据处理方法,该方法可以应用于图1所示的系统1,该方法的交互主体包括第一存储设备中的第一ai装置和第二存储设备中的第二ai装置,该方法包括以下步骤。
296.s2211,第一ai装置向第二ai处理器发送第一网络的网络资源请求,并且向第二处理器发送内存rdma访问请求。
297.其中,第一网络的网络资源请求用于请求占用第二ai装置的部分第一网络的网络资源来传输业务数据。内存rdma访问请求用于以rdma的方式访问第二内存,内存rdma访问请求可以包括第二内存的目的地址,以指明要将业务数据写入到该目的地址。
298.在一个可选实施例中,第一ai装置的第一ai处理器可以生成第一网络的网络资源请求和内存rdma访问请求,将第一网络的网络资源请求和内存rdma访问请求发送给第一网络接口,第一网络接口可以将第一网络的网络资源请求发送至第二ai处理器,将内存rdma访问请求发送至第二处理器。第二ai处理器接收到第一网络的网络资源请求后,可以划分部分第一网络的网络资源,预留给第一ai装置使用。第二ai处理器接收到内存rdma访问请求后,第二ai处理器可以生成内存rdma访问响应,向第一ai装置返回内存rdma访问响应,该内存rdma访问响应携带第二内存的目标地址,以便第一ai装置以rdma的方式,将数据写到第二内存的目标地址。通过上述流程,可以建立第二ai装置与第一ai装置之间的rdma通路。
299.s2212,第一ai装置从第一内存中读取其他业务数据。
300.第一ai装置可以包括第一网络接口,该第一网络接口支持rdma功能,第一ai装置的第一网络接口可以通过高速互联网络,访问第一内存,根据其他业务数据在第一内存的地址,从第一内存读取其他业务数据。
301.s2213,第一ai装置通过第一网络将其他业务数据发送给第二ai装置。
302.第一ai装置的第一网络接口可以将读取的其他业务数据发送出去,其他业务数据可以通过第一网络传输至第二ai装置。
303.s2214,第二ai装置将其他业务数据写入第二内存。
304.具体地,第二ai装置可以包括第一网络接口,该第一网络接口支持rdma功能,第二ai装置的第一网络接口可以接收到来自第一ai装置的其他业务数据,第二ai装置的第一网络接口可以通过高速互联网络,向第二内存的目的地址写入其他业务数据。
305.此外,第二ai装置对其他业务数据完成写操作后,第一ai装置与第二ai装置可以释放占用的第一网络的网络资源,结束第一ai装置与第二ai装置之间的数据交换任务。
306.参见图23,图23示出了通过第一网络实现不同内存之间数据直通的示意图,从图23可以看出,第一网络能够作为一条新的业务数据的转发路径,第一内存缓存的业务数据
能够通过第一网络直接传输至第二内存。
307.通过这种可选方式,第一内存与第二内存之间能够通过rdma的方式进行业务数据交换,如此,能够免去第一处理器与第二处理器的处理开销,让业务数据从第一内存直接到达第二内存,从而加快业务数据交换的速度,提高业务数据交换的效率。
308.图23实施例示出了两个存储设备的内存之间通过第一网络实现rdma数据直通的流程,本技术的一些实施例中,还可以采用同理的方式,在源存储设备的硬盘与目的存储设备的内存之间实现rdma数据直通,以下通过图24实施例具体描述:
309.参见图24,本技术实施例提供了一种数据处理方法,该方法可以应用于图1所示的系统1,该方法的交互主体包括第一存储设备中的第一ai装置和第二存储设备中的第二ai装置,该方法包括以下步骤。
310.s2411,第一ai装置向第二ai处理器发送第一网络的网络资源请求,并且向第二处理器发送内存rdma访问请求。
311.s2412,第一ai装置从第一存储装置的硬盘中读取其他业务数据。
312.第一ai装置的第一网络接口可以通过高速互联网络,访问第一存储装置的硬盘,根据其他业务数据在第一存储装置的硬盘的地址,从第一存储装置的硬盘读取其他业务数据。
313.s2413,第一ai装置通过第一网络将其他业务数据发送给第二ai装置。
314.s2414,第二ai装置将其他业务数据写入第二内存。
315.参见图25,图25示出了通过第一网络实现硬盘与存储设备的内存之间数据直通的示意图,从图25可以看出,第一网络能够作为一条新的业务数据的转发路径,第一存储装置的硬盘存储的业务数据能够通过第一网络,以rdma的方式直接传输至第二内存,从而实现了源存储节点的硬盘和目标存储节点的内存之间的数据直通。
316.通过这种可选方式,第一存储装置的硬盘与第二内存之间能够通过rdma的方式进行业务数据交换,如此,能够免去第一处理器与第二处理器的处理开销,让业务数据从第一存储装置的硬盘直接到达第二内存,从而加快业务数据交换的速度,提高业务数据交换的效率。
317.可选地,ai装置可以借用第二网络的网络资源来交换ai参数。具体地,第一ai装置和第二ai装置之间通过第二网络传输其他ai参数。
318.这一功能可以在多种情况下触发,例如,当第一网络的网络资源低于设定的ai网络资源阈值时,第一ai装置和第二ai装置之间通过第二网络传输其他ai参数。另外,可以理解的是,即使没有网络资源低于设定的ai网络资源阈值的限定条件,第一ai装置和第二ai装置之间也可以通过第二网络传输其他ai参数。
319.在一个可选实施例中,第一ai装置、第二ai装置或管理装置可以检测第一网络的网络资源的大小,判断第一网络的网络资源是否低于设定的ai网络资源阈值,如果第一网络的网络资源低于设定的ai网络资源阈值,则通过第二网络传输其他ai参数。其中,第一ai装置、第二ai装置或管理装置还可以检测第二网络的大小,判断第二网络是否高于设定的存储网络资源阈值,如果第一网络的网络资源低于设定的ai网络资源阈值且第二网络高于设定的存储网络资源阈值,则通过第二网络传输其他ai参数。
320.在一个示例性应用场景中,如果第一ai装置要加载的业务数据全部或大部分位于
本地的第一存储装置时,第一ai装置能够就近在本地加载业务数据,从而免去了大量通过第二网络来访问远端存储设备的操作,从而使得本地的第二网络的网络资源充足。而由于频繁的与远端ai装置进行ai参数交换,导致第一网络的网络资源不足,在这种场景中,可以利用相对充足的第二网络的网络资源作为ai参数的新通路,加速ai参数的交换速度。
321.通过这种可选方式,为ai装置之间交换ai参数提供了一条新的通路,通过在第一网络的网络资源不足时,使用第二网络来交换ai参数,提高了传输ai参数的网络带宽,从而缩短了交换ai参数的时延,提高了交换ai参数的速度,进而提高了进行ai计算的速度。
322.可选地,不同存储设备之间可以通过rdma实现ai内存直通。具体地,参见图26,本技术实施例提供了一种数据处理方法,该方法可以应用于图1所示的系统1,该方法的交互主体包括第一存储设备以及第二存储设备,包括以下步骤。
323.s2601,第一ai处理器向第二处理器发送第二网络的网络资源请求。
324.第一ai处理器可以生成第二网络的网络资源请求,发送给第一网络接口,第一网络接口可以将第二网络的网络资源请求发送给第二处理器。其中,第二网络的网络资源请求用于请求占用第二ai装置的部分第二网络的网络资源来传输其他ai参数,第二网络请求可以携带其他ai参数的目的地址。
325.其中,第二网络的网络资源请求可以是内存rdma访问请求,第二网络的网络资源请求用于请求以rdma的方式访问第二ai内存,第二网络请求携带的目的地址可以是第二ai内存中的地址。第二处理器接收到第二网络请求后,可以建立第一ai内存与第二ai内存之间的rdma通路。
326.s2602,第一ai处理器从第一ai内存中获取其他ai参数。
327.s2603,第一ai处理器将其他ai参数以rdma方式通过第二网络传输至第二ai内存。
328.第一ai处理器可以访问本地的第一ai内存,得到其他ai参数,将其他ai参数发送给第一ai装置的第一网络接口,第一ai装置的第一网络接口可以将其他ai参数发送给第二ai装置的第一网络接口,第二ai装置的第一网络接口可以接收其他ai参数,将其他ai参数写入到第二ai内存。在此过程中,可以通过rdma的方式,免去第二ai装置的第二ai处理器的参与,从而避免占用第二ai处理器的处理资源,提高转发性能。
329.参见图27,图27示出了通过第二网络实现两个存储设备的ai内存之间数据直通的示意图,从图27可以看出,第二网络能够作为一条新的ai参数的转发路径,第一存储设备的第一ai内存的ai参数能够通过第一网络,以rdma的方式直接传输至第二ai内存,从而实现了源存储设备和目标存储设备的ai内存之间的数据直通。
330.通过这种可选方式,第一ai内存与第二ai内存之间能够通过rdma的方式进行ai参数交换,如此,能够免去第一ai处理器与第二ai处理器的处理开销,让ai参数从第一ai内存直接到达第二ai内存,从而加快ai参数交换的速度,提高ai参数交换的效率。
331.可选地,如果ai装置借用存储设备的内存来进行训练,存储设备的内存可以缓存有ai参数,不同存储设备之间可以通过rdma实现内存直通,利用第二网络来交换不同存储设备的内存缓存的ai参数。具体地,参见图28,本技术实施例提供了一种业务数据传输方法,该方法的交互主体包括第一存储设备以及第二存储设备,包括以下步骤。
332.s2801,第一ai处理器向第二处理器发送第二网络的网络资源请求。
333.s2802,第一ai处理器从第一内存中获取其他ai参数。
334.第一ai处理器可以通过高速互联网络,访问第一内存,得到第一内存缓存的其他ai参数。
335.s2803,第一ai处理器将其他ai参数以rdma方式通过第二网络传输至第二内存。
336.参见图29,图29示出了通过第二网络实现两个存储设备的内存之间ai参数直通的示意图,从图29可以看出,第二网络能够作为一条新的ai参数的转发路径,第一存储设备的第一内存的ai参数能够通过第一网络,以rdma的方式直接传输至第二内存,从而实现了源存储节点和目标存储节点的内存之间的ai参数直通。
337.通过这种可选方式,第一内存与第二内存之间能够通过rdma的方式进行ai参数交换,如此,能够免去第一ai处理器与第二ai处理器的处理开销,让ai参数从第一内存直接到达第二内存,从而加快ai参数交换的速度,提高ai参数交换的效率。
338.可选地,可以通过管理装置来调度存储系统中数据集所在的存储设备进行ai计算,具体参见下述方法实施例。
339.图30是本技术实施例提供的一种数据处理方法的流程图,该方法可以应用于图1所示的系统1,该方法的交互主体包括管理装置以及第一存储设备,该方法包括以下步骤:
340.s3001,管理装置接收第一作业请求。
341.第一作业请求用于请求基于数据集进行训练,数据集包括业务数据。第一作业请求可以包括数据集的标识,该数据集的标识用于指示数据集,例如可以是数据集的id、名称等。在一些实施例中,客户端可以生成第一作业请求,向管理装置发送第一作业请求,管理装置可以接收来自客户端的第一作业请求。其中,第一作业请求可以由用户的输入操作触发,例如,客户端可以显示图形用户界面,用户可以在图形用户界面上输入数据集的标识,客户端可以接收输入的数据集的标识,生成第一作业请求。
342.s3002,管理装置根据第一作业请求确定待训练的数据集的分布。
343.管理装置可以解析第一作业请求,得到第一作业请求携带的数据集的标识,根据数据集的标识,查询数据集的标识与数据集的元数据之间的映射关系,得到数据集的元数据,该数据集的元数据用于指示数据集的地址,管理装置可以根据数据集的元数据,确定数据集的分布。例如,管理装置可以查询数据集中每个业务数据所在的存储设备,生成存储设备列表,该存储设备列表包括设备标识,该设备标识用于标识目标存储设备,目标存储设备存储有数据集中的部分业务数据或全部业务数据。可选地,存储设备列表中的设备标识的数量可以有多个,多个设备标识的排列顺序用于表示数据集在对应目标存储设备上存储的数据量的大小。例如,存储设备列表中第一个设备标识对应的目标设备存储的数据集的业务数据最多,存储设备列表中最后一个设备标识对应的目标设备存储的数据集的业务数据最少。
344.s3003,当确定业务数据分布在第一存储设备时,管理装置向第一存储设备发送第一计算请求。
345.第一计算请求用于请求第一ai装置对业务数据进行ai计算,第一计算请求可以包括数据集的标识,通过携带数据集的标识来指明要获取数据集中的业务数据。示例性地,如果分布式存储系统中包括n个存储设备,分别是存储设备1、存储设备2至存储设备n,其中数据集分布在存储设备1、存储设备2和存储设备3,管理装置可以选择在存储设备1、存储设备2和存储设备3上进行ai计算,则向存储设备1、存储设备2和存储设备3的ai装置发送第一计
算请求。其中n为正整数。
346.s3004,第一ai装置基于第一计算请求,从第一存储设备的第一存储装置获取业务数据。
347.第一ai装置可以解析第一计算请求,得到第一计算请求携带的数据集的标识,根据数据集的标识,确定数据集在第一存储装置的地址,通过高速互联网络访问第一存储装置,得到第一存储装置存储的数据集的全部业务数据或部分业务数据。
348.s3005,第一ai装置对业务数据进行ai计算,获得第一计算结果。
349.通过这种可选方式,由于管理装置选择了业务数据所在的第一存储设备来提供ai计算,而第一存储设备通过内部的第一存储装置,即可得到业务数据来进行ai计算,从而避免业务数据的跨存储设备移动,通过免去了访问其他存储设备以得到业务数据带来的时延,从而减少了获取业务数据的时延,也就提高了进行ai计算的速度。
350.可选地,管理装置可以确定第一存储设备的运行状态是否满足设定条件,如果管理装置确定第一存储设备的运行状态满足设定条件,则管理装置向第一存储设备发送第一计算请求。
351.运行状态可以包括存储设备的内存的空闲空间、ai内存的空闲空间、ai算力单元的占用状态、ai处理器的占用率、存储设备的处理器的占用率、网络资源的使用率中的一项或多项。预设条件包括以下条件(1)至(5)中的任意一种及其组合:
352.(1)存储设备的内存的空闲空间是否高于设定的空间阈值。
353.(2)ai内存的空闲空间是否高于设定的空间阈值。
354.(3)ai处理器的占用率是否低于设定的占用率阈值。
355.(4)存储设备的处理器的占用率是否低于设定的占用率阈值。
356.(5)网络资源的使用率是否低于设定的占用率阈值。
357.通过这种可选方式,能够保证选中的第一存储设备当下未被占用,能够提供ai算力,避免选中已被占用的存储设备进行ai计算导致设备开销过大、ai计算任务无法及时完成的问题。
358.可选地,如果数据集所在的存储设备已被占用,可以通过管理装置来调度存储系统中与数据集距离近的存储设备进行ai计算。具体地,参见图31,本技术实施例提供了一种数据处理方法的流程图,该方法可以应用于图1所示的系统1,该方法的交互主体包括管理装置、第一存储设备以及第二存储设备,该方法包括以下步骤。
359.s3101,管理装置接收第二作业请求。
360.步骤s3101与步骤s3001同理,在此不做赘述。
361.s3102,管理装置根据第二作业请求确定待训练的数据集的分布。
362.步骤s3101与步骤s3002同理,在此不做赘述。
363.s3103,当其他业务数据分布在多个存储设备中的第二存储设备时,管理装置进一步确定第二存储设备的运行状态是否满足设定条件。
364.s3104,当第二存储设备的运行状态不满足设定条件时,管理装置向第一存储设备发送第二计算请求。其中,第一存储设备与第二存储设备之间的距离低于设定的距离阈值。
365.在一些实施例中,对于分布式存储系统中每个存储设备,管理装置可以确定该存储设备的运行状态以及该存储设备与第二存储设备之间的距离,管理装置可以根据每个存
储设备的运行状态以及与第二存储设备之间的距离,从分布式存储系统中确定运行状态满足设定条件,且与第二存储设备之间的距离低于设定的距离阈值的存储设备,得到第一存储设备。
366.作为一种可能的实现,管理装置可以采用基于代价的优化方式(cost-based optimization,简称:cbo)确定出第一存储设备。示例性地,对于分布式存储系统中每个存储设备,管理装置可以根据存储设备的运行状态、存储设备与第二存储设备之间的距离、存储设备存储的第二数据集的数据量,计算存储设备的代价值,该代价值表示启用该存储设备进行ai计算的开销大小。管理装置可以每个存储设备的代价值,选择代价值满足设定条件的存储设备作为第一存储设备,通过这种算法,由于离数据集最近的存储设备的代价值小,可以选中离数据集最近的存储设备来启用ai计算。作为示例,可以为本地存储和远端存储分别分配权重x1和权重y1,x1小于y1,对于任一个存储设备而言,如果第二数据集在该存储设备本地存储的数据量为x,第二数据集不在本存储设备的数据量为y,则根据权重x1和权重y1,对x和y进行加权求和,将得到的加权和值作为该存储设备的代价值,对每个存储设备按照代价值从小到大的顺序排序,如果ai计算需要n个存储设备,则从排序结果中选择排在前n位的存储设备,作为第一存储设备。示意性地,可以设定从本地加载数据的权重是1,从远端加载数据的权重是10,如果某个存储设备中存储有30%的数据集,数据集剩余的70%不在该存储设备,则该存储设备的代价值为30%*1 70%*10=7.3。
367.可选地,管理装置选中第一存储设备后,可以向客户端输出推荐列表,该推荐列表表示管理装置推荐启动进行ai计算的存储设备,该推荐列表可以包括第一存储设备的标识。
368.s3105,第一ai装置基于第二计算请求,从第二存储设备获取其他业务数据。
369.s3106,第一ai装置对其他业务数据进行ai计算,获得第二计算结果。
370.通过这种可选方式,如果数据集所在的存储设备已被占用,管理装置能够选择与数据集距离近的存储装置来提供ai计算,从而缩短数据集的传输距离,减少业务数据的跨节点移动。
371.以下,对本技术实施例的应用场景进行示例性介绍。
372.随着深度学习的应用,经常需要使用包含大量数据的数据集来进行模型训练,从而拟合出神经网络。例如,参见图32,图32示出了模型训练的逻辑流程,模型训练可以包括模型加载阶段、数据加载阶段、参数初始化阶段、前向传播阶段、损失计算阶段、反向传播阶段、参数更新阶段、权重保存阶段。其中,由于需要大量的迭代训练才能得到模型参数,而迭代次数可以达到从几百到上万不等,因此要加载大量的数据、进行参数更新和交换,导致模型训练非常耗时。由此可见,充分利用软件资源和硬件资源,提高调度性能,优化数据传输路径对于模型训练十分重要。
373.应用本技术实施例提供的方法,可以对模型训练的各个阶段进行优化。
374.具体来讲,在模型加载阶段,可以应用图30和图31实施例提供的方法,来提供近数据的ai训练。具体地,可以根据训练模型所需的数据的地址,选择近数据的ai装置,作为训练节点来进行启动。
375.在数据加载阶段,可以应用图7实施例、图8实施例、图9实施例、图12实施例、图14实施例提供的方法,缩短业务数据的传输路径,基于近存储的方式来执行数据读写操作。此
外,还可以利用内存与ai内存之间的高速互联,实现内存与ai内存之间的rdma直通。
376.在前向传播阶段,可以应用图18实施例提供的方法,基于高速互联网络,来实现处理器与ai处理器的算力协同,从而加速ai算子的计算速度。
377.在参数更新阶段,可以应用图26实施例提供的方法、图28实施例提供的方,实现不同存储设备的ai内存之间的rdma通路,以及不同存储设备的内存之间的rdma通路,通过rdma通路传输ai参数,从而加速参数交换。
378.参见图33,图33是本技术实施例提供的一种ai训练的逻辑架构图,用户可以在客户端上执行操作,输入ai训练作业,客户端会生成指示执行ai训练作业的请求,调用作业提交应用程序编程接口(application programming interface,api),发给ai作业管理服务;ai作业管理服务接收到请求,会对请求携带的作业进行解析,将资源请求发送给管理装置。管理装置接收到资源请求后,管理装置中的调度器从所管理的底层物理资源池中,选择合适的存储设备,在选择的存储设备的ai装置上启动,对应的ai训练作业,选择的存储设备的ai装置的算力被ai训练作业占用,直至ai训练作业结束后,会释放该计算资源。
379.上述所有可选技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
380.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机程序指令可以从一个网站站点、计算机、服务器或业务数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或业务数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、业务数据中心等业务数据存储设备。可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,dvd)、或者半导体介质(例如固态硬盘)等。
381.本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
382.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
383.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或
通信连接,也可以是电的,机械的或其它的形式连接。
384.该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本技术实施例方案的目的。
385.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
386.该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例中方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
387.以上,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
388.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,dvd)、或者半导体介质(例如固态硬盘)等。
389.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
390.以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献