掌桥专利:专业的专利平台
掌桥专利
首页

用于分布式训练的数据通信方法、装置及电子设备

文献发布时间:2023-06-19 19:30:30


用于分布式训练的数据通信方法、装置及电子设备

技术领域

本申请涉及机器学习技术领域,尤其涉及一种用于分布式训练的数据通信方法、装置及电子设备。

背景技术

分布式训练是指将原本巨大的机器学习模型的训练任务拆分成多个子任务,每个子任务在独立的机器上单独执行。分布式训练包括数据并行和模型并行两种训练方式。数据并行是指将训练数据集切分放到多个硬件设备,在每个硬件设备中进行计算,并在多个硬件设备之间传递模型参数。模型并行是指将模型单个算子计算分配到多个硬件设备上并发计算,以达到提高单个算子计算速度的目的。

无论是数据并行还是模型并行,分布式训练涉及多个硬件设备之间的通信,在不同的场景下有不同的性能表现。因此,如何在不同机型的多个硬件设备上进行统一的分布式训练的通信优化、提升性能,成为需要解决的问题。

发明内容

本申请实施例提供一种用于分布式训练的数据通信方法、装置及电子设备,以实现深度学习模型分布式训练的通信优化,进而提升性能。

第一方面,本申请实施例提供了一种用于分布式训练的数据通信方法,方法应用于分布式系统中的第一节点,该方法包括:

通过应用层获取深度学习模型进行分布式训练得到的反向传播数据;

基于通信层的第一缓存尺寸参数和网络层的第二缓存尺寸参数,将反向传播数据发送至分布式系统中的第二节点;

获取数据发送性能信息,根据数据发送性能信息,调整第一缓存尺寸参数和第二缓存尺寸参数,根据调整后的第一缓存尺寸参数和第二缓存尺寸参数向第二节点发送接收到的反向传播数据。

第二方面,本申请实施例提供了一种用于分布式训练的数据通信装置,装置应用于分布式系统中的第一节点,该装置包括:

获取模块,用于通过应用层获取深度学习模型进行分布式训练得到的反向传播数据;

发送模块,用于基于通信层的第一缓存尺寸参数和网络层的第二缓存尺寸参数,将反向传播数据发送至分布式系统中的第二节点;

调整模块,用于获取数据发送性能信息,根据数据发送性能信息,调整第一缓存尺寸参数和第二缓存尺寸参数,根据调整后的第一缓存尺寸参数和第二缓存尺寸参数向第二节点发送接收到的反向传播数据。

第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,处理器在执行计算机程序时实现上述任一项的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一项的方法。

与现有技术相比,本申请具有如下优点:

本申请提供了一种用于分布式训练的数据通信方法、装置及电子设备,第一节点通过应用层获取深度学习模型进行分布式训练得到的反向传播数据;基于通信层的第一缓存尺寸参数和网络层的第二缓存尺寸参数,将反向传播数据发送至第二节点;获取数据发送性能信息,根据数据发送性能信息,调整第一缓存尺寸参数和第二缓存尺寸参数,根据调整后的第一缓存尺寸参数和第二缓存尺寸参数向第二节点发送接收到的反向传播数据。本实施例中,第一节点基于通信层的第一缓存尺寸参数和网络层的第二缓存尺寸参数,实现与第二节点之间的数据通信,根据数据发送性能信息对第一缓存尺寸参数和第二缓存尺寸参数进行调整,根据调整后的第一缓存尺寸参数和第二缓存尺寸参数向第二节点发送接收到的反向传播数据,以实现深度学习模型进行分布式训练的通信优化,进而提升性能。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,可依照说明书的内容予以实施,并且为了让本申请的上述和其他目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请的一些实施方式,而不应将其视为是对本申请范围的限制。

图1为本申请提供的用于分布式训练的数据通信方法的一个应用场景示意图;

图2为本申请一实施例的用于分布式训练的数据通信方法的流程图;

图3是本申请一实施例的用于分布式训练的数据通信装置的结构框图;以及

图4为用来实现本申请实施例的电子设备的框图。

具体实施方式

在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的构思或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的,而非限制性的。

为便于理解本申请实施例的技术方案,以下对本申请实施例的相关技术进行说明。以下相关技术作为可选方案与本申请实施例的技术方案可以进行任意结合,其均属于本申请实施例的保护范围。

图1为本申请提供的用于分布式训练的数据通信方法的一个应用场景示意图。如图1所示,本实施例中的方法可以部署在分布式系统的节点中,节点可以是任意的计算设备,例如,服务器等。本实施例中的方法涉及应用层、通信层和网络层,既适用于机器学习模型分布式训练中的数据并行又适用于模型并行。其中,应用层可以通过模型修饰器(Model-wrapper)组件来实现,进行深度学习模型的前向传播操作和反向传播操作,还可以设置及调整融合粒度参数等。通信层可以通过通信修饰器(Comm-wrapper)组件来实现,可以设置及调整缓存尺寸参数、数据单元尺寸参数(chunk_size)和数据通道容量(channel_size),并且可以调用通信函数库(例如,NVIDIA集合通信库(NVIDIA Collective CommunicationsLibrary,NCCL))中的算子进行通信相关计算。NCCL的集合通信算法通过原子化算子执行,每个算子按照任务的管道(pipeline)进行组合,设置缓存尺寸参数大小以调优上下文开销带来的损耗。网络层可以通过套接字修饰器(Socket-wrapper)组件来实现,其中封装了套接字接口协议等,可以设置及调整读取缓存尺寸参数和写入缓存尺寸参数。

在实际应用中,分布式系统中的第一节点通过应用层进行深度学习模型的分布式训练,进行前向传播计算和反向传播计算,将得到的多个梯度数据按照融合粒度参数进行融合,得到反向传播数据;基于通信层的缓存尺寸参数、数据单元尺寸参数、数据通道容量、网络层的读取缓存尺寸参数和写入缓存尺寸参数,与分布式系统中的第二节点进行反向传播数据的传输;利用钩子函数获取深度学习模型相邻两次训练的前向传播计算的间隔时间,作为数据发送性能信息,根据数据发送性能信息,调整通信层的缓存尺寸参数和网络层的缓存尺寸参数。本实施例中,基于通信层的缓存尺寸参数、网络层的缓存尺寸参数,将反向传播数据发送至第二节点,根据数据发送性能信息对应用层的融合粒度参数、通信层的缓存尺寸参数和网络层的缓存尺寸参数进行调整,根据调整后的第一缓存尺寸参数和第二缓存尺寸参数向第二节点发送接收到的反向传播数据,以实现深度学习模型进行分布式训练的通信优化,进而提升性能。

本申请实施例提供了一种用于分布式训练的数据通信方法,本实施例中的方法可以应用于计算设备中,计算设备可以包括:服务器等。如图2所示为本申请一实施例的用于分布式训练的数据通信方法的流程图,包括:

步骤S201,通过应用层获取深度学习模型进行分布式训练得到的反向传播数据。

步骤S202,基于通信层的第一缓存尺寸参数和网络层的第二缓存尺寸参数,将反向传播数据发送至分布式系统中的第二节点。

步骤S203,获取数据发送性能信息,根据数据发送性能信息,调整第一缓存尺寸参数和第二缓存尺寸参数,根据调整后的第一缓存尺寸参数和第二缓存尺寸参数向所述第二节点发送接收到的反向传播数据。

本实施例中的方法可以应用于分布式系统中的第一节点中。其中,应用层可以通过模型修饰器(Model-wrapper)组件来实现,进行深度学习模型的前向传播操作和反向传播操作,得到的反向传播数据。通信层可以通过通信修饰器(Comm-wrapper)组件来实现,可以设置第一缓存尺寸参数的初始值并进行调整,并且可以调用通信函数库(例如,NCCL)中的算子进行通信相关计算。网络层可以通过套接字修饰器(Socket-wrapper)组件来实现,其中封装了套接字接口协议等,可以设置第二缓存尺寸参数的初始值并进行调整。

其中,第一缓存尺寸参数表示通信层对应的缓存区域大小;第二缓存尺寸参数表示网络层对应的缓存区域大小。数据发送性能信息表示数据从第一节点发送到第二节点的性能,性能可以通过多种指标来衡量,例如,数据传输时间等。数据传输时间越短,性能越高。

可选的,根据数据发送性能信息,调整第一缓存尺寸参数和第二缓存尺寸参数,包括:预先设置步进数、第一缓存尺寸参数对应的数据量阈值和第二缓存尺寸参数对应的数据量阈值,在没有达到各自对应的数据量阈值时,增加步进数,步进数可以为连续的整数,根据数据发送性能信息,增加或减小第一缓存尺寸参数,或者增加或较小第二缓存尺寸参数,根据调整后的第一缓存尺寸参数和第二缓存尺寸参数向所述第二节点发送接收到的反向传播数据,可以提升数据发送的性能。

本申请实施例提供了一种用于分布式训练的数据通信方法,通过应用层获取深度学习模型进行分布式训练得到的反向传播数据;基于通信层的第一缓存尺寸参数和网络层的第二缓存尺寸参数,将反向传播数据发送至第二节点;获取数据发送性能信息,根据数据发送性能信息,调整第一缓存尺寸参数和第二缓存尺寸参数,根据调整后的第一缓存尺寸参数和第二缓存尺寸参数向第二节点发送接收到的反向传播数据。本实施例中,第一节点基于通信层的第一缓存尺寸参数和网络层的第二缓存尺寸参数,实现与第二节点之间的数据通信,根据数据发送性能信息对第一缓存尺寸参数和第二缓存尺寸参数进行调整,根据调整后的第一缓存尺寸参数和第二缓存尺寸参数向第二节点发送接收到的反向传播数据,以实现深度学习模型进行分布式训练的通信优化,进而提升性能。

在一种实现方式中,步骤S201,通过应用层获取深度学习模型进行分布式训练得到的反向传播数据,包括:

步骤S2011,获取应用层的数据融合粒度参数。

步骤S2012,根据数据融合粒度参数,将深度学习模型进行分布式训练得到的多个梯度数据进行融合处理,得到反向传播数据。

其中,融合粒度参数表示每个桶(bucket)容纳的数据量,将多个梯度数据融合处理之后分配到多个桶中,作为反向传播数据,基于通信层的第一缓存尺寸参数和网络层的第二缓存尺寸参数,将反向传播数据发送至第二节点。其中,每个梯度数据是和深度学习模型的模型参数构成的张量(tensor)相对应。可以预先配置融合粒度参数的初始值和调优阈值,每次接收到梯度数据之后,可以调整融合粒度参数的大小,并根据调整后的数据融合粒度参数进行数据融合处理,直到达到调优阈值。

在一种实现方式中,步骤S203中,还包括:根据数据发送性能信息,调整数据融合粒度参数。

在调整数据融合粒度参数时,如果数据融合粒度参数较大,则会导致计算等待通信的低效,拖慢整体性能;如果数据融合粒度参数较小,则会导致调用通信层的额外开销,整体性能下降。通过应用层获取深度学习模型的参数,能够完成深度学习模型的释放和重新初始化,通过对融合粒度参数的大小进行调整,可以提升数据传输性能。

可选的,可以预先配置融合粒度参数、第一缓存尺寸参数和第二缓存尺寸参数分别对应的初始值和调优阈值。在数据发送性能信息不符合预设要求时,按照预先配置的步进数、调优的开始步数和结束步数,分别调整数据融合粒度参数、第一缓存尺寸参数和第二缓存尺寸参数,直到其中至少一项达到对应的调优阈值,调优结束,通过调整应用层、通信层和网络层分别对应的参数,可以提升数据发送性能。

在调整第二缓存尺寸参数时,可以根据网络状态调整参数的大小,若当前网络延迟较大,则将第二缓存尺寸参数调大,减少请求确认操作带来的损耗。若当前网络延迟较小,则将第二缓存尺寸参数调小,提高响应速度,降低延迟。

在一种实现方式中,步骤S202,基于通信层的第一缓存尺寸参数和网络层的第二缓存尺寸参数,将反向传播数据发送至第二节点,包括:

步骤S2021,将反向传播数据在通信层对应的第一缓存区域进行缓存,若第一缓存区域缓存的数据量达到第一缓存尺寸参数对应的数据量阈值,则将第一缓存区域缓存的数据在网络层对应的第二缓存区域进行缓存。

步骤S2022,若第二缓存区域缓存的数据量达到第二缓存尺寸参数对应的数据量阈值,则将第二缓存区域缓存的数据发送至第二节点。

其中,第一缓存尺寸参数表示通信层对应的缓存区域的大小。第二缓存尺寸参数表示网络层对应的缓存区域的大小。将反向传播数据在通信层对应的第一缓存区域进行缓存,若第一缓存区域缓存的数据量达到第一缓存尺寸参数对应的数据量阈值,即通信层对应的缓存区域可以缓存的数据量的最大值,则将第一缓存区域缓存的数据在网络层对应的第二缓存区域进行缓存。若第二缓存区域缓存的数据量达到第二缓存尺寸参数对应的数据量阈值,即网络层对应的缓存区域可以缓存的数据量的最大值,则将第二缓存区域缓存的数据发送至第二节点。

在一种实现方式中,该方法还包括:获取通信层的数据单元尺寸参数和数据通道容量。基于通信层的第一缓存尺寸参数和网络层的第二缓存尺寸参数,将反向传播数据发送至第二节点,还包括:基于第一缓存尺寸参数、第二缓存尺寸参数、数据单元尺寸参数和数据通道容量,将反向传播数据发送至第二节点。

其中,数据单元尺寸(chunk_size)参数表示将反向传播数据划分为多个数据单元(chunk),每个数据单元的数据量大小。数据通道(Channel)是双向的,可以进行数据的读取和数据写入。

在一种实现方式中,基于第一缓存尺寸参数、第二缓存尺寸参数、数据单元尺寸参数和数据通道容量,将反向传播数据发送至第二节点,包括:根据数据单元尺寸参数和数据通道容量,将反向传播数据划分为多个数据单元,多个数据单元与至少一个数据通道相对应。将多个数据单元在通信层对应的第一缓存区域进行缓存,若第一缓存区域缓存的数据量达到第一缓存尺寸参数对应的数据量阈值,则将第一缓存区域缓存的数据在网络层对应的第二缓存区域进行缓存。若第二缓存区域缓存的数据量达到第二缓存尺寸参数对应的数据量阈值,则将第二缓存区域缓存的数据发送至第二节点。

在实际应用中,根据数据单元尺寸参数和数据通道容量,将反向传播数据划分为多个数据单元,将多个数据单元(chunk)通过至少一个数据通道(Channel)进行数据的读取和写入。将多个数据单元在通信层对应的第一缓存区域进行缓存,若第一缓存区域缓存的数据量达到第一缓存尺寸参数对应的数据量阈值,则第一缓存区域已满,将第一缓存区域缓存的数据在网络层对应的第二缓存区域进行缓存。若第二缓存区域缓存的数据量达到第二缓存尺寸参数对应的数据量阈值,则第二缓存区域已满,则将第二缓存区域缓存的数据发送至第二节点。

其中,第二缓存尺寸参数可以包括写入缓存尺寸参数和读取缓存尺寸参数,第一节点基于写入缓存尺寸参数或读取缓存尺寸参数,将反向传播数据发送至第二节点,或者接收第二节点发送的数据。

在一种实现方式中,步骤S203中,获取数据发送性能信息,包括:利用钩子函数获取深度学习模型相邻两次训练的前向传播计算的间隔时间,作为数据发送性能信息。

利用钩子函数(hook)获取深度学习模型前一次训练进行前向传播计算的开始时间,以及当前次训练进行前向传播计算的开始时间,将这两个开始时间之间的间隔时间,作为数据发送时间,将数据发送时间作为数据发送性能信息。

在一示例中,通信层调用通信函数库NCCL中的算子进行通信相关计算,网络层封装了Socket协议接口。应用层、通信层和网络层的参数调整过程如下:

1.设置每个参数的调优阈值、步进数以及整个调优的开始步数和最大步数。

2.设置融合粒度参数buffer_fusing_size,第一缓存尺寸参数buffer_nccl和第二缓存尺寸参数buffer_socket分别对应的初始值。

3.应用层:开始buffer_fusing_size调优。每次设置buffer_fusing_size均需要重新开始训练,规避额外的显存占用等资源消耗。同时维护一个守护进程daemon,控制循环的结束以实现运行时的参数调优。

4.插入钩子(hook)函数触发性能计时开始。

5.达到采样点计时结束,更新性能表:

dp[buffer_fusing_size][buffer_nccl][buffer_socket]=[xxx,xxx,xxx]。其中,x表示数据发送性能信息。

6.如果相关的参数配置已经存在,则直接返回性能结果。不同的buffer_fusing_size下会有不同通信量大小的数据包,但对应到底层是会有相同的数据单元大小,所以需要复用相同的参数配置计算性能,减少调优步数。

7.如果达到buffer_fusing_size的调优阈值,或者达到最大迭代步数,则返回当前的性能较优的参数配置,退出循环。

8.网路层:如果没有达到buffer_fusing_size的调优阈值,进行buffer_socket的参数调优:按照递进步数调整读取缓存尺寸参数read_buffer、写入缓存尺寸参数write_buffer。每一次调整均需等待NCCL中的通信算子计算结束,否则无法设置成功。

9.通信层:如果达到buffer_socket调优阈值,则进行buffer_nccl的参数调优。按照递进步数分别调整数据通道容量channel_size、数据单元尺寸参数chunk_size、buffer_nccl等参数。每一次调整均需释放NCCL中的通信类,减少额外的资源消耗。

10.如果达到buffer_nccl调优阈值,则返回应用层对buffer_fusing_size进行调整。本实施例中,能够在运行阶段重新设置融合粒度,保证性能评估准确。而且,可以实现对NCCL算子的截获、释放和重建等操作,保证性能评估准确。实现应用层、通信层、网络层的多级缓存参数统一优化,在有限解空间内找到特定环境下的最优配置,并支持运行时调优,以实现数据传输的动态优化。

与本申请实施例提供的方法的应用场景以及方法相对应地,本申请实施例还提供一种用于分布式训练的数据通信装置。如图3所示为本申请一实施例的用于分布式训练的数据通信装置的结构框图,装置应用于分布式系统中的第一节点,该装置包括:

获取模块301,用于通过应用层获取深度学习模型进行分布式训练得到的反向传播数据;

发送模块302,用于基于通信层的第一缓存尺寸参数和网络层的第二缓存尺寸参数,将反向传播数据发送至分布式系统中的第二节点;

调整模块303,用于获取数据发送性能信息,根据数据发送性能信息,调整第一缓存尺寸参数和第二缓存尺寸参数,根据调整后的第一缓存尺寸参数和第二缓存尺寸参数向第二节点发送接收到的反向传播数据。

本申请实施例提供了一种用于分布式训练的数据通信装置,通过应用层获取深度学习模型进行分布式训练得到的反向传播数据;基于通信层的第一缓存尺寸参数和网络层的第二缓存尺寸参数,将反向传播数据发送至第二节点;获取数据发送性能信息,根据数据发送性能信息,调整第一缓存尺寸参数和第二缓存尺寸参数,根据调整后的第一缓存尺寸参数和第二缓存尺寸参数向第二节点发送接收到的反向传播数据。本实施例中,第一节点基于通信层的第一缓存尺寸参数和网络层的第二缓存尺寸参数,实现与第二节点之间的数据通信,根据数据发送性能信息对第一缓存尺寸参数和第二缓存尺寸参数进行调整,根据调整后的第一缓存尺寸参数和第二缓存尺寸参数向第二节点发送接收到的反向传播数据,以实现深度学习模型进行分布式训练的通信优化,进而提升性能。

在一种实现方式中,获取模块301,用于:获取应用层的数据融合粒度参数;根据数据融合粒度参数,将深度学习模型进行分布式训练得到的多个梯度数据进行融合处理,得到反向传播数据。

在一种实现方式中,调整模块303还用于:

根据数据发送性能信息,调整数据融合粒度参数。

在一种实现方式中,发送模块302,用于:将反向传播数据在通信层对应的第一缓存区域进行缓存,若第一缓存区域缓存的数据量达到第一缓存尺寸参数对应的数据量阈值,则将第一缓存区域缓存的数据在网络层对应的第二缓存区域进行缓存;若第二缓存区域缓存的数据量达到第二缓存尺寸参数对应的数据量阈值,则将第二缓存区域缓存的数据发送至第二节点。

在一种实现方式中,该装置还用于:获取通信层的数据单元尺寸参数和数据通道容量;

发送模块302,还用于:基于第一缓存尺寸参数、第二缓存尺寸参数、数据单元尺寸参数和数据通道容量,将反向传播数据发送至第二节点。

在一种实现方式中,发送模块302,具体用于:根据数据单元尺寸参数和数据通道容量,将反向传播数据划分为多个数据单元,多个数据单元与至少一个数据通道相对应;将多个数据单元在通信层对应的第一缓存区域进行缓存,若第一缓存区域缓存的数据量达到第一缓存尺寸参数对应的数据量阈值,则将第一缓存区域缓存的数据在网络层对应的第二缓存区域进行缓存;若第二缓存区域缓存的数据量达到第二缓存尺寸参数对应的数据量阈值,则将第二缓存区域缓存的数据发送至第二节点。

在一种实现方式中,调整模块303在获取数据发送性能信息时,用于:利用钩子函数获取深度学习模型相邻两次训练的前向传播计算的间隔时间,作为数据发送性能信息。

本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,并具备相应的有益效果,在此不再赘述。

图4为用来实现本申请实施例的电子设备的框图。如图4所示,该电子设备包括:存储器410和处理器420,存储器410内存储有可在处理器420上运行的计算机程序。处理器420执行该计算机程序时实现上述实施例中的方法。存储器410和处理器420的数量可以为一个或多个。

该电子设备还包括:

通信接口430,用于与外界设备进行通信,进行数据交互传输。

如果存储器410、处理器420和通信接口430独立实现,则存储器410、处理器420和通信接口430可以通过总线相互连接并完成相互间的通信。该总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

可选的,在具体实现上,如果存储器410、处理器420及通信接口430集成在一块芯片上,则存储器410、处理器420及通信接口430可以通过内部接口完成相互间的通信。

本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现本申请实施例中提供的方法。

本申请实施例还提供了一种芯片,该芯片包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行本申请实施例提供的方法。

本申请实施例还提供了一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行申请实施例提供的方法。

应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(Advanced RISC Machines,ARM)架构的处理器。

进一步地,可选的,上述存储器可以包括只读存储器和随机访问存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以包括随机访问存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM均可用。例如,静态随机访问存储器(Static RAM,SRAM)、动态随机访问存储器(Dynamic Random Access Memory,DRAM)、同步动态随机访问存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机访问存储器(Double Data RateSDRAM,DDR SDRAM)、增强型同步动态随机访问存储器(Enhanced SDRAM,ESDRAM)、同步链接动态随机访问存储器(Sync link DRAM,SLDRAM)和直接内存总线随机访问存储器(DirectRambus RAM,DR RAM)。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生依照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

流程图中描述的或在此以其他方式描述的任何过程或方法可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。

在流程图中描述的或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。

应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。

以上所述,仅为本申请的示例性实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请记载的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 用于识别作弊用户的模型的训练方法、装置及电子设备
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 基于分布式数据库的信息查询方法及装置、电子设备
  • 一种文件分布式部署方法、装置、电子设备及存储介质
  • 基于分布式系统的信息获取方法、装置、电子设备和介质
  • 模型的分布式训练方法、训练装置、训练系统和电子设备
  • 用于数据通信网络中的分布式交易的方法和装置
技术分类

06120115932984