CN110795228A - 使用加速器混合集的分布式深度学习的自适应批量数据集划分 - Google Patents
使用加速器混合集的分布式深度学习的自适应批量数据集划分 Download PDFInfo
- Publication number
- CN110795228A CN110795228A CN201810878224.0A CN201810878224A CN110795228A CN 110795228 A CN110795228 A CN 110795228A CN 201810878224 A CN201810878224 A CN 201810878224A CN 110795228 A CN110795228 A CN 110795228A
- Authority
- CN
- China
- Prior art keywords
- batch
- job
- sub
- completion time
- iteration
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Medical Informatics (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及使用加速器混合集的分布式深度学习的自适应批量数据集划分。提供了用于实现自适应批量数据集划分控制过程的系统和方法,该过程与分布式深度学习模型训练过程被结合使用以优化加速器资源集之间的负载平衡。迭代批量大小调整过程被配置为确定用于将小批量数据集划分成子批量数据集的最优作业划分比率,以用于由混合加速器资源集进行处理,其中子批量数据集被划分成最优批量大小,以用于由相应的加速器资源进行处理,以最小化用于完成深度学习模型训练过程的时间。
Description
技术领域
本公开总体上涉及用于在高性能计算环境中加速数据处理的技术。
背景技术
各种类型的专用处理器(诸如用于通用计算的图形处理单元(GPU)和其他类型的硬件加速器)已经被开发,以用于加速处理特定类型的工作负载。GPU设备和其他类型的硬件加速器的处理能力目前正被使用在各种应用中,以加速各种技术领域中高度并行化的计算工作负载的处理。特别地,GPU上的通用计算(GPGPU)被用于计算内核的高吞吐量、加速处理,以用于表现出数据并行性的工作负载(例如,基于矢量的计算、基于矩阵的计算等)。例如,GPU用于加速高性能计算(HPC)和嵌入式计算系统中的数据处理,用于各种应用,诸如金融建模、科学研究、机器学习(ML)、深度学习(DL)、数据挖掘、视频数据转码、图像分析、图像识别、病毒模式匹配、增强现实、加密/解密、天气预报、大数据分析和比较、以及具有固有并行性质的计算工作负载的其他应用。
在计算节点集群上包括大规模共享计算资源的分布式计算环境通常被用来支持新兴应用,诸如大数据分析和DL应用。例如,DL应用需要收集、存储和处理非常大量的数据,其中数据包括用于构建和优化深度学习模型的训练数据,以及被用于推理处理的深度学习模型的模型参数。目前,存在各种服务提供商,其在基于云的系统上提供基础架构即服务(IaaS)、平台即服务(PaaS)和/或GPU即服务(GPUaaS),这允许客户使用各种基于云的资源(诸如GPU和其他加速器资源)执行各种应用,如深度学习应用。
由于GPU和加速器技术的持续进步,许多服务提供商具有共存于在其基于云的基础架构中的多代加速器设备(例如,GPU),导致具有不同性能水平的混合加速器资源集。虽然诸如DL模型训练的分布式计算应用可以使用混合加速器资源集(例如,包括不同类型的GPU设备的GPU资源集)来实现,但是用于执行给定任务而提供和使用混合资源可能是有问题的。例如,分布式DL模型训练通常通过在GPU资源集之间均匀地划分作业(例如,划分训练数据集)来执行以用于数据并行处理。然而,当GPU资源集包括具有不同性能(例如,处理速度)的GPU设备时,性能较低的GPU资源将在数据并行处理中造成瓶颈,并且实质上减慢了训练过程,这导致无效率的资源使用。
发明内容
本发明的说明性实施例包括自适应批量数据集划分控制方法,其被实现为分布式深度学习模型训练过程的一部分,以优化加速器资源集之间的负载平衡。例如,一种方法包括在计算系统的一个或多个服务器节点上提供多个加速器资源以执行分布式深度学习模型训练过程以训练深度学习模型。训练数据集被划分成多个小批量数据集。根据初始默认作业划分比率,初始小批量数据集被划分成多个子批量数据集。通过每个加速器资源处理初始小批量数据集的对应的一个子批量数据集来执行分布式深度学习模型训练过程的初始小批量迭代。迭代批量大小调整过程被执行以迭代地调整作业划分比率,以用于分布式深度学习模型训练过程的后续小批量迭代。迭代批量大小调整过程包括:确定针对每个加速器资源的作业完成时间,以完成初始小批量数据集的对应的一个子批量数据集的处理;确定由于初始小批量迭代的初始默认作业划分比率导致的加速器资源的作业完成时间的标准偏差;将所确定的标准偏差与预定的标准偏差阈值进行比较;以及响应于所确定的作业完成时间的标准偏差超过预定的标准偏差阈值,调整作业划分比率以用于将下一小批量数据集划分成多个子批量数据集,以用于分布式深度学习模型训练过程的下一小批量迭代。
本发明的其他实施例包括但不限于包括处理器可读存储介质的系统和制品,它们被配置为实现作为分布式深度学习模型训练过程的一部分的自适应批量数据集划分控制方法,以优化加速器资源集之间的负载平衡。
附图说明
图1示意性地示出了根据本发明的实施例的包括深度学习计算平台的计算系统,其实现了一种自适应批量数据集划分控制方法,以优化用于分布式深度学习模型训练任务的加速器资源集之间的负载平衡。
图2示意性地示出了根据本发明的实施例的可以托管图1的深度学习计算平台的计算节点的实施例。
图3示意性地示出了根据本发明的实施例的实现自适应批量数据集划分控制方法的计算系统,以优化用于分布式深度学习模型训练任务的加速器资源集之间的负载平衡。
图4是根据本发明的实施例的自适应批量数据集划分控制方法的流程图,该方法被实现为数据并行深度学习模型训练过程的一部分,以优化加速器资源集之间的负载平衡。
图5示意性地示出了根据本发明的实施例的基于图4的处理流程的自适应批量数据集划分控制方法。
图6是根据本发明的实施例的计算系统的高级示意图,该计算系统包括被配置为提供深度学习即服务(DLaaS)的云计算服务平台,其实现自适应批量数据集划分控制方法,以优化用于分布式深度学习模型训练任务的加速器资源集之间的负载平衡。
具体实施方式
本发明的说明性实施例现在将关于用于实现自适应批量数据集划分控制过程的系统和方法进一步被详细解释,该自适应批量数据集划分控制过程与分布式深度学习模型训练过程被结合使用,以优化加速器资源集之间的负载平衡。如下面进一步所详细解释的,本发明的实施例包括用于实现迭代批量大小调整过程的系统和方法,该调整过程被配置为确定用于将小批量数据集划分成子批量数据集以供混合加速器资源集处理的最优作业划分比率,其中子批量数据集被划分成最优批量大小,以供相应的加速器资源处理,以最小化用于完成深度学习模型训练过程的时间。
虽然本文讨论的示例性实施例可以被实现用于各种HPC应用,其中参数服务器系统被用来同步应用状态,但是出于说明的目的,本发明的实施例将在分布式计算环境中对深度神经网络(DNN)应用执行DL模型训练的上下文中被讨论。分布式DL模型训练过程需要大量使用计算资源(例如,处理器、存储器、存储和网络资源)、以及通过内部系统总线和/或节点间网络通信链路的大量数据的通信。如下面进一步所详细解释的,在网络基础架构元件内并入参数服务器逻辑增强了通信性能(例如,减少通信等待时间),以用于针对执行分布式数据并行DL模型训练任务的加速器设备(例如,GPU设备)集群来执行参数同步操作。
DL模型通常被用在机器学习应用中,以用于模式识别、图像处理和其他人工智能应用。DL应用可以使用DNN,其中DNN包括具有多个隐藏层的前馈人工神经网络。卷积神经网络(CNN)是一类DNN,其通常被用于分析图像。CNN包括一系列功能层,包括输入层、输出层以及输入层与输出层之间的多个隐藏层。功能层包括但不限于卷积层、池化层、完全连接的层、标准化层等。卷积层将“卷积操作”应用于输入数据集,并将处理结果传递给网络中的下一层。如本领域已知,卷积层在输入数据集的所有区域上应用过滤器(备选地被称为神经元或内核),其中每个过滤器在空间上小于输入数据集的整个体积。卷积层的过滤器各自包括可学习的参数(或权重)集,其使用DL模型训练过程来学习。卷积层使用过滤器集来执行穿过输入数据集的前向传递,其中每个过滤器在输入体积的宽度和高度上滑动(或卷积),并在任何位置(即,感受场)计算过滤器的条目和输入数据之间的点积。本质上,卷积层计算被连接到输入数据中的对应局部区域的神经元的输出。
DL模型可以使用随机梯度下降(SGD)训练过程来训练。利用SGD训练,关于给定DL模型的模型参数的误差梯度使用反向传播过程的多次迭代来计算。反向传播包括三个循环的序列,包括(i)前向过程、(ii)反向过程、以及(iii)权重更新过程,其中反向传播过程被重复持续多次迭代,直到收敛标准被满足。分布式SGD DL训练过程可以使用数据并行编程模型而被实现在HPC系统中,其中SGD训练过程由执行工作者过程(例如,诸如GPU资源的加速器资源)的多个工作者节点并行执行,工作者过程分布在HPC系统的一个或多个计算节点上。
在数据并行训练时,对于反向传播过程的每次迭代,小批量数据样本被划分并均匀地分布到多个工作者节点,这些工作者节点可以驻留在相同或不同的服务器机器上。利用数据并行,每个工作者节点都可以访问DL模型当前状态的完整副本,但是对于每次迭代,每个工作者节点仅被分配当前小批量的数据样本的子集以用于处理。对于每次迭代,每个工作者节点(经由GPU设备)执行内核函数,以使用其各自的数据样本子集执行DL网络模型的前向传播,然后是误差反向传播过程,以计算关于DL模型参数的损失梯度。工作者节点并行地在给定的小批量数据集的各自子集上执行前向和反向传播操作。对于给定迭代,由所有工作者节点计算的梯度参数然后被聚合/同步(例如,被平均),并且平均梯度参数被推送到每个工作者节点,以使每个工作者节点可以使用平均梯度参数来执行参数更新过程以更新DL网络模型的模型参数。各种分布式系统配置可以被实现以聚合/同步模型参数,并将平均梯度参数推送到每个工作者节点以执行分布式DL模型训练过程。在一个实施例中,DL模型训练过程可以使用参数服务器系统来实现,以使用加速器设备(例如,GPU设备)集群来执行DL模型的分布式和并行化SGD训练。
图1示意性地示出了根据本发明的实施例的包括深度学习计算平台的计算系统,其实现了一种自适应批量数据集划分控制方法,以优化用于分布式深度学习模型训练任务的加速器资源集之间的负载平衡。特别地,图1示意性地示出了计算系统10(或HPC系统10),其被配置为使用分布式参数服务器系统来执行分布式DL模型训练,以在工作者节点集群之间同步和交换模型参数。HPC系统10包括深度学习计算平台50,其包括深度学习模型层51、深度学习计算模块52、自适应批量数据集划分控制模块53、加速器设备驱动器层54、以及加速器虚拟化层55。HPC系统10进一步包括分布式计算系统100,其被配置为执行深度学习计算平台50的各种功能(例如,分布式DL模型训练)。
分布式计算系统100包括参数服务器系统110,参数服务器系统110包括多个(S个)参数服务器节点110-1、110-2、...、110-S(统称为参数服务器110),总线/通信网络120和工作者节点集群130,工作者节点集群130包括多个(N个)工作者节点130-1、130-2、...、130-N(统称为工作者节点130)。参数服务器节点110-1、110-2、...、110-S管理相应的全局共享模型参数集112-1、112-2、...、112-S。工作者节点130-1、130-2、...、130-N包括相应的加速器设备132-1、132-2、...、132-N(统称为加速器设备132)。加速器设备132可以使用任何类型的加速器硬件设备来实现,诸如GPU、张量处理单元(TPU)等。
集群130内的每个工作者节点130-1、130-2、...、130-N管理由相应加速器设备132-1、132-2、...、132-N执行的工作者过程。工作者过程可以被实现为裸金属过程或虚拟过程(例如,虚拟机、容器应用等)。虽然参数服务器系统110可以被实现在单个计算节点上,以存储和管理单个节点中的DL模型的所有参数,但是图1示出了分布式计算系统100的示例实施例,其中参数服务器系统110的参数服务器逻辑分布在多个参数服务器节点110-1、110-2、...、110-S上,它们进行通信以执行模型参数处理和同步功能,如下面进一步所详细描述的。在一些实施例中,参数服务器节点110-1、110-2、...、110-S的逻辑由主机处理器(例如CPU)执行。在其他实施例中,参数服务器节点110-1、110-2、...、110-S的逻辑由执行工作者节点130-1、130-2、...、130-N的工作者过程的相同的加速器设备132-1、132-2、...、132-N来执行。
在一些实施例中,分布式系统100的参数服务器节点110和工作者节点130是在同一物理节点(例如,服务器节点)上执行的单独逻辑节点。在其他实施例中,分布式系统100的参数服务器节点110和工作者节点130是独立的逻辑节点,它们跨两个或更多个不同的物理节点(例如,不同的服务器节点)被分布和被执行。在这方面,总线/通信网络120包括主干网络基础架构和通信协议,以实现各种类型的节点内和/或节点间连接拓扑和通信协议中的一个或多个,其被用来物理连接执行参数服务器节点110和工作者节点130的功能的硬件处理器资源,并且实现这些硬件处理器资源之间的通信。
例如,给定物理服务器节点内的节点内连接拓扑可以使用各种通信协议来实现,诸如远程直接内存访问(RDMA)协议、InfiniBand(IB)协议、外围组件互连高速(PCIe)协议、NVLinkTM协议、NVIDIA GPUDirect、以及其他点对点串行互连协议,其实现例如CPU-GPU和GPU-GPU通信。此外,给定服务器节点可以实现QuickPath互连(QPI)协议,该协议是点对点处理器互连框架,其为处理器集群等启用非统一存储器访问(NUMA)架构。不同物理服务器节点之间的节点间连接拓扑和被用于通过服务器节点进行网络通信的节点间通信协议的类型可以包括但是不限于通信协议,诸如TCP/IP、千兆比特以太网(GbE)(例如,10/25/40/100GbE)、RDMA、IB、消息传递接口(MPI)等。
深度学习计算平台50包括支持深度学习任务的软件平台,诸如DL模型训练和推理处理(或分类),其在分布式计算系统100上被执行。深度学习计算平台50可以使用已知的商用机器学习平台来实现,例如Tensorflow、微软认知工具包(CNTK)、Apache MXNet、Caffe、以及其他开源深度学习框架,其被配置为训练和部署深度神经网络以用于HPC应用。深度学习模型层51可以实现一种或多种不同类型的模型,诸如CNN模型、递归神经网络(RNN)模型、基于区域的CNN(R-CNN)模型、更快的R-CNN模型、掩模R-CNN模型、以及通常用于高性能DL计算应用的其他现有技术的DL模型。
深度学习计算模块52包括一个或多个深度学习框架(例如,Tensorflow NTK、MXNet等)的软件库和应用编程接口(API),其包括预先编写的代码、类、程序、脚本、配置数据等,其(i)可以被执行机器学习任务和相关功能的相应的工作者节点130-1、130-2、...、130-N的加速器设备132-1、132-2、...、132-N(例如,GPU设备)调用或以其他方式使用,或者其(ii)由在主机处理器设备上执行的控制功能使用,以通过加速器设备驱动器54访问加速器设备132-1、132-2、...、132-N或与之通信。深度学习计算模块52的软件库和API的类型将根据深度学习计算平台50的特定框架而变化。
例如,深度学习计算模块52可以实现商用的库和/或API平台,例如其是由NVIDIA创建的并行计算平台和应用编程接口。CUDA API启用支持CUDA的GPU的使用以用于通用处理。CUDA平台是软件层,其允许直接访问GPU的指令集和并行计算元件,以用于执行计算内核。特别地,NVIDIA CUDA API包括深度神经网络库(cuDNN)库和NVIDIA cuBLAS库。如本领域所知,cuDNN是用于深度神经网络的基元的GPU加速原始库,其提供用于标准例程的实现,诸如DL模型中的前向和反向传播操作,包括卷积层、池化层、标准化层、激活层等。cuDNN库被各种深度学习框架使用,诸如Tensorflow、CNTK、MXNet、Keras和Caffe,以支持高性能GPU加速。NVIDIA cuBLAS库是标准基本线性代数子程序(BLAS)的快速GPU加速实现。cuBLAS API允许应用通过将计算密集型操作部署到单个GPU或跨多GPU配置分配工作来加速。Keras是高级神经网络API,其用Python编写并且能够在TensorFlow和CNTK之上运行。在一个实施例中,加速器设备驱动器层54包括使用cuDNN实现的GPU驱动器。
加速器虚拟化层55包括虚拟化引擎和管理程序平台,该平台被配置为创建虚拟加速器资源(例如,虚拟GPU),该虚拟加速器资源允许在深度学习计算平台50上执行的虚拟机访问和与工作者节点集群(或服务器集群)共享物理加速器设备132。加速器设备驱动器54提供虚拟驱动器,其允许虚拟机访问和控制在加速器虚拟化层内被实例化的虚拟加速器资源。加速器虚拟化层55允许深度学习计算平台50提供虚拟加速器资源集以使用具有不同性能和架构的不同类型的混合加速器资源集(例如,GPU、TPU等)来执行数据并行深度学习模型训练任务。
在一些实施例中,深度学习计算平台50实现执行分布式SGD训练过程的方法,以使用在分布式计算系统100上执行的数据并行训练过程来训练DL模型。如上所述,利用SGD训练过程,针对使用反向传播过程的多次迭代而训练的DL模型的模型参数,计算误差梯度,反向传播过程包括三个循环的序列,包括(i)前向过程、(ii)反向过程、以及(iii)权重更新过程,其中反向传播过程被重复持续多次迭代,直到收敛标准被满足。反向传播过程的每次迭代在小批量数据上被执行,其中小批量数据包括模型训练数据的总数据集的子集(或一部分)。
利用数据并行SGD模型训练过程,主机系统将从持久存储装置访问小批量的训练数据集,并将小批量数据存储在主机系统存储器中。对于SGD DL训练过程的给定迭代,给定的小批量数据(M个数据样本)从主机系统存储器被访问并均匀地分布在多个工作者节点130-1、130-2、...、130-N之间,以使给定小批量数据的M/N数据样本被传递并复制到每个加速器设备132-1、132-2、...、132-N的存储器中。在数据并行DL模型训练过程期间,每个工作者节点130可以访问正被训练的给定DL模型的完整、更新的副本,其在由各个参数服务器节点110-1、110-2、...、110-S维护的全局共享模型参数112-1、112-2、...、112-S的数据存储库中被维护。全局共享参数表示在训练阶段期间由工作者节点130计算并由参数服务器节点110聚合/组合/同步的模型参数(例如,密集/稀疏矢量、权重等)。
在DL训练过程期间,工作者节点130-1、130-2、...、130-N在相应加速器设备132-1、132-2、...、132-N上执行内核函数,以执行反向传播过程的前向、反向和权重更新周期。对于每个迭代反向传播过程,每个工作者节点130-1、130-2、...、130-N利用其小批量数据的本地子集在DL模型上执行前向传播过程,然后进行误差反向传播以计算关于DL网络模型参数的损失梯度。特别地,前馈操作(前向过程)被执行以使用给定的DL模型逐层处理小批量数据的子集。一旦信息到达DL模型的最终输出层,错误信号就被计算并通过DL模型的层并使用反向过程而被反向传播,这涉及通过计算关于模型参数(例如,权重)和输入数据的误差梯度来最小化目标函数。以这种方式,针对给定的迭代,每个工作者节点130基于其小批量训练数据的本地子集计算DL模型的梯度集。
在针对给定迭代的前向和后向操作之后,每个工作者节点130将与参数服务器节点110中的一个参数服务器节点通信以将本地计算的参数(梯度)发送到参数服务器节点110。在一些实施例中,对于每个工作者节点130存在一个参数服务器节点110。在其他实施例中,每个参数服务器节点110被分配给两个或更多个工作者节点130。每个参数服务器节点130将从一个或多个相关联的工作者节点130接收本地计算的参数集。然后,参数服务器节点110-1、110-2、...、110-S将(经由PS间通信协议)彼此通信,以聚合本地参数(例如,计算全局平均梯度)并更新DL模型参数,然后将更新的DL模型参数推送到工作者节点130。
例如,在一些实施例中,参数服务器节点110-1、110-2、...、110-S将本地计算的参数(梯度)发送到参数服务器节点110中的一个(所有收集操作),其被设计为执行全减少操作。所指定的参数服务器节点110通过计算由工作者节点130为给定DL训练迭代提供的所有局部梯度的平均值,对被聚合的参数执行全减少操作。然后,利用被计算出的梯度平均值来全局更新每个参数服务器节点110上的全局共享参数112-1、112-2、...、112-S,每个参数服务器节点110将全局更新的参数推送到工作者节点130。然后,工作者节点130继续使用全局更新的参数来执行用于DL模型训练过程的给定迭代的权重更新过程。以这种方式,模型参数由多个协作参数服务器节点110管理和同步,多个协作参数服务器节点110共同更新跨工作者节点130上被共享的全局共享模型参数112-1、112-2、...、112-S。利用该框架,在工作者节点130之间被共享的所有状态(即,正被学习的DL模型参数)由参数服务器节点110维护和同步。在每个小批量迭代结束时,每个工作者节点130具有最新的(中间的)DL模型的完整副本。
根据本发明的实施例,自适应批量数据集划分控制模块53实现迭代批量大小调整过程,其被配置为确定用于将小批量数据集划分成子批量数据集以便在数据并行DL模型训练过程期间由加速器资源的混合集合进行处理的最优作业划分比率。子批量数据集被划分成最优批量大小,以便由相应的加速器资源进行处理,以最小化用于完成深度学习模型训练过程的时间。根据本发明实施例的自适应批量数据集划分控制模块53的示例性操作模式和功能将在下面参考例如图3、图4和图5进一步被详细解释。
图2示意性地示出了根据本发明的实施例的可以托管图1的深度学习计算平台50的计算节点200的实施例。计算节点200(例如,服务器节点)包括处理器202、存储接口电路204、网络接口电路206、虚拟化资源208和系统存储器210。系统存储器210包括易失性存储器220和存储级存储器230。计算节点200托管深度学习计算平台240,并且包括加速器资源250和存储资源260。
处理器202包括一种或多种类型的硬件处理器,其被配置为处理程序指令和数据以执行本机操作系统(OS)和在计算节点200上运行的应用。例如,处理器202可包括一个或多个中央处理单元(CPU)、微处理器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和其他类型的处理器,以及这些处理器的部分或组合。在此使用的术语“处理器”旨在广义地被解释为包括基于软件、硬件、固件等执行处理功能的任何类型的处理器。例如,“处理器”被宽泛地解释为包含所有类型的硬件处理器,包括例如(i)包括“性能核心”(例如,低延迟核心)的通用处理器,以及(ii)工作负载优化的处理器,其包括多个“吞吐量核心”和/或多个基于硬件的加速器的任何可能组合。工作负载优化的处理器的示例包括例如GPU、数字信号处理器(DSP)、片上系统(SoC)、专用集成电路(ASIC)和现场可编程门阵列(FPGA),以及被配置为执行一个或多个固定功能的其他类型的专用处理器或协处理器。术语“硬件加速器”宽泛地指代执行“硬件加速”以比可能用于在更通用的处理器上运行的软件中执行这样的功能更快和更有效地执行某些功能的任何硬件。
存储接口电路204使处理器202能够与系统存储器210、存储资源260以及其他本地存储和非基础架构存储介质对接和通信,使用一个或多个标准通信和/或存储控制协议从易失性和非易失性存储器/存储设备读取数据或向其写入数据。此类协议包括但不限于非易失性存储器高速(NVMe)、外围组件互连高速(PCIe)、并行ATA(PATA)、串行ATA(SATA)、串行连接SCSI(SAS)、光纤通道等。网络接口电路206使计算节点200能够与网络和其他系统组件对接和通信。网络接口电路206包括网络控制器,诸如网卡和资源(例如,网络接口控制器(NIC)(例如,SmartNIC、支持RDMA的NIC)、主机总线适配器(HBA)卡、主机通道适配器(HCA)卡、I/O适配器、融合以太网适配器等),以支持通信协议和接口,包括但不限于PCIe、直接存储器存取(DMA)和RDMA数据传输协议等。
虚拟化资源208可以被实例化以执行由计算节点200托管的一个或多个应用或功能。例如,虚拟化资源208可以被配置为实现深度学习计算平台240的各种模块和功能。在一个实施例中,虚拟化资源208包括使用在计算节点200上执行的管理程序平台来实现的虚拟机,其中一个或多个虚拟机可以被实例化以执行计算节点200的功能。如本领域所已知的,虚拟机是可以在一个或多个物理处理元件(例如,服务器、计算机或其他处理设备)上被实例化的逻辑处理元件。也即,“虚拟机”通常是指以类似于物理机器的方式执行程序的机器(即计算机)的软件实现。因此,不同的虚拟机可以在同一物理计算机上运行不同的操作系统和多个应用。
管理程序是更常被称为“虚拟化基础架构”的示例。管理程序运行在计算节点200的物理基础架构(例如,CPU和/或存储设备)上,并模拟主机系统的CPU、存储器、硬盘、网络和其他硬件资源,使得多个虚拟机能够共享资源。管理程序可以模拟被彼此隔离的多个虚拟硬件平台,允许虚拟机在同一底层物理主机上运行例如Linux和Windows Server操作系统。在本发明的一个或多个实施例中可以被用来实现一个或多个虚拟机的商用的管理程序平台的示例是vSphereTM,其可能具有相关联的虚拟基础架构管理系统,诸如vSphereTM。底层物理基础架构可以包括一个或多个适于目标应用的商用分布式处理平台。
在另一实施例中,虚拟化资源208包括诸如Docker容器或其他类型的Linux容器(LXC)的容器。如本领域所已知的,在基于容器的应用框架中,每个应用容器包括单独的应用和相关联的依赖项和其他组件,以提供完整的文件系统,但与其他应用容器共享主机操作系统的内核函数。每个应用容器作为主机操作系统的用户空间中的隔离过程而执行。特别地,容器系统使用底层操作系统,该底层操作系统使用虚拟内存支持隔离为所有容器化应用提供基本服务。一个或多个容器可以被实例化以执行计算节点200和深度学习计算平台240的一个或多个应用或功能。在又一个实施例中,容器可以与其他虚拟化基础架构(诸如使用管理程序实现的虚拟机)组合来使用,其中Docker容器或其他类型的LXC被配置为运行在多租户环境中的虚拟机上。
在一个实施例中,深度学习计算平台240包括与图1的深度学习计算平台50相同或相似的架构。在一个实施例中,深度学习计算平台50可以被配置在计算节点200上以提供深度学习即服务(DLaaS)。深度学习计算平台240的组成组件(例如,图1中的深度学习平台50的组件51、52、53、54和55)包括软件模块,这些软件模块被持久地存储在本地存储资源中并被加载到系统存储器210资源(例如,易失性存储器220)中,并且由处理器202执行以执行如本文所述的各个功能。在这方面,系统存储器210资源以及如本文所述的具有在其上有形地包含的程序代码和数据的其他存储器或存储资源,是本文中更一般地被称为“处理器可读存储介质”的示例,其存储一个或多个软件程序的可执行程序代码。包括这种处理器可读存储介质的制品被认为是本发明的实施例。制品可以包括例如存储设备,诸如存储盘、存储阵列或包含存储器的集成电路。如本文所使用的术语“制品”应该被理解为排除瞬态的传播信号。
系统存储器210包括各种类型的存储器,诸如易失性随机存取存储器(RAM)、非易失性随机存取存储器(NVRAM)或以任何组合的其他类型的存储器。本文所使用的术语“存储器”或“系统存储器”是指被用来存储应用程序指令的易失性和/或非易失性存储器,应用程序指令由处理器202读取和处理以执行本机操作系统和由计算节点200托管的一个或多个应用,并且临时存储由在计算节点200上运行的本机OS和应用程序使用和/或生成的数据。例如,易失性存储器220可以是动态随机存取存储器(DRAM)(例如,DRAM DIMM(双列直插存储器模块))或其他形式的易失性RAM。存储级存储器(SCM)230包括一种或多种类型的非易失性存储器232和234,其作为存储器资源可访问。例如,非易失性存储器232和234可以是NAND闪存设备、SSD设备或其他类型的下一代非易失性存储器(NGNVM)设备中的一个或多个。可以利用任何合适的NGNVM DIMM或NGNVM附加卡(AIC)模块来实现非易失性存储器232和234。
可以使用分层存储器层结构来实现系统存储器210,其中易失性系统存储器220被配置为最高级存储器层,并且SCM 230的非易失性系统存储器232和234被配置为较低级别的存储器层,较低级别的存储器层被用作处理器存储器总线上的高速加载/存储非易失性存储器设备(即,数据利用加载和存储来访问,而不是利用I/O读取和写入来访问)。
加速器资源250包括多个GPU设备250-1、250-2、...、250-g,以及可以被用来执行如本文所讨论的深度学习处理任务的其他类型的加速器资源(例如,TPU)。存储资源260可以包括一个或多个硬盘驱动器(HDD)、固态驱动器(SSD)存储设备等。存储资源260存储用于执行如本文所讨论的深度学习模型训练任务的各种程序和数据。例如,如图2所示,存储资源260被用来持久地存储被用来训练深度学习模型的一个或多个训练数据集270的数据库,如本文所讨论的。
图3示意性地示出了根据本发明的实施例的实现自适应批量数据集划分控制方法的计算系统300,以优化用于分布式深度学习模型训练任务的加速器资源集之间的负载平衡。计算系统300包括自适应批量数据集划分控制模块310、加速器资源320、参数服务器330、深度学习模型340、模型验证模块350、超参数优化模块360和计算图编译器模块370。加速器资源320包括第一加速器320-1、第二加速器320-2、第三加速器320-3和第四加速器320-4。加速器资源320可以是硬件加速器设备,或使用容器或虚拟机或容器和虚拟机的组合来实例化的虚拟加速器。加速器资源320包括不同类型的加速器的混合集合(例如,A类型和B类型)。模型验证模块350实现被配置为使用验证数据集355验证深度学习模型340的方法。模型验证过程在模型训练任务的每个时期迭代完成时被执行,其中训练数据集380被用来使用例如诸如随机梯度下降的监督学习过程来计算深度学习模型340的模型参数(例如,人工神经网络中的神经元之间的连接的权重)。模型验证模块350提供深度学习模型340的性能度量的估计,例如,使用验证数据集355对训练数据集380上的模型拟合的准确性的无偏估计。验证数据集355包括数据集,该数据集从训练过程中被保留并且具有与训练数据集380的概率分布相同或相似的概率分布。
超参数优化模块360实现被配置用于设置和调整深度学习模型340的超参数的方法。如本领域所已知的,超参数包括定义模型架构的参数(例如,隐藏层的数目)和确定模型如何被训练的参数(例如,定义模型更新模型参数的速率的学习速率)。由模型验证模块350生成的验证结果被超参数优化模块360用来调整深度学习模型340的超参数。对于机器学习任务,超参数包括其值在学习过程开始之前被设置的参数。深度学习模型通过在超参数优化中嵌套模型权重的优化来调整。优化过程确定模型参数,其最小化对于给定超参数的训练/验证损耗。超参数在训练之前(例如,在优化模型权重和偏差之前)被设置。每个超参数集通过重新初始化权重并训练模型完成来评估。
计算图编译器370实现用于利用深度学习模型340的当前超参数设置来计算深度学习模型340的模型计算图(附图标记375)的方法。通常,模型计算图(附图标记375)包括具有节点的可变指向图、和指向图中的节点的线/来自节点的线、以及节点之间的线,这些节点表示对数据的操作。模型计算图(附图标记375)表示针对给定深度学习模型的给定训练过程执行的数据流和计算。深度学习模型340的模型计算图(附图标记375)被复制并分布到加速器资源320,以用于执行深度学习模型训练过程。
由计算系统300在多个训练时期上执行数据并行训练过程。对于每个时期,深度学习模型340的参数使用整个训练数据集380来训练。时期的数量将根据期望的结果而变化。例如,多个时期可以被执行,直到验证准确度开始降低。训练数据集380被分成多个小批量数据集,并且一个小批量数据集390在给定时间被处理。小批量数据集390包括多个样本(或批量大小)。小批量数据集390的批量大小可以是2的幂(例如,32、64、128、256等),其符合处理器硬件的存储器要求。
对于给定的小批量迭代,自适应批量划分控制模块310将当前小批量数据集390划分成多个子批量数据集390-1、390-2、390-3和390-4。子批量数据集390-1、390-2、390-3和390-4被复制到相应的加速器320-1、320-2、320-3和320-4。加速器320-1、320-2、320-3和320-4通过使用模型计算图(附图标记375)处理相应的子批量数据集390-1、390-2、390-3和390-4来执行模型训练任务。加速器320-1、320-2、320-3和320-4使用相应的子批量数据集390-1、390-2、390-3和390-4计算梯度(G)并将处理结果(例如,梯度G)发送到参数服务器330。参数服务器330聚合梯度(例如,计算当前小批量数据集390上的梯度(G)的总和或平均值以减小梯度的方差)。参数服务器330使用从加速器320-1、320-2、320-3和320-4接收的梯度更新模型权重,并将更新的权重(W)发送到加速器320-1、320-2、320-3和320-4。加速器320-1、320-2、320-3和320-4利用更新的权重更新它们的本地模型(例如,模型计算图(附图标记375)的副本)。
针对训练数据集380的每个小批量数据集,小批量迭代过程被重复。当训练数据集380的所有小批量数据集已经被处理时,参数服务器330包括更新的中间深度学习模型340的副本。然后,模型验证模块350使用验证数据集355评估深度学习模块340的学习性能。然后,时期迭代被重复。
在模型训练过程期间,对于给定的小批量迭代,自适应批量数据集划分控制模块310从相应加速器320-1、320-2、320-3和320-4接收定时信息T1、T2、T3和T4,其指示对于给定的小批量迭代,由加速器320-1、320-2、320-3和320-4完成相应子批量数据集390-1、390-2、390-3的处理所花费的时间量。自适应批量数据集划分控制模块310利用多个小批量迭代上的定时信息T1、T2、T3和T4来确定用于将小批量数据集划分成子批量数据集以供加速器资源320进行处理的最优作业划分比率。自适应批量数据集划分被执行以在多个小批量迭代上重新平衡加速器资源之间的处理负载,以达到最优作业划分比率,这导致每个加速器320-1、320-2、320-3和320-4上的训练过程基本上同时完成。
例如,在图3的示例性实施例中,假设训练数据集380的每个小批量数据集390包括128个训练数据样本(例如,128个图片)。进一步假设加速器320-1和320-2(A类型)比加速器320-3和320-4(B类型)快,其中A类型加速器使用例如NVIDIA Tesla P100GPU加速器来实现,并且其中B类型加速器使用例如NVIDIA Tesla K40c GPU计算处理器来实现。如果小批量数据集390(批量大小为128)被均匀地分成四个相等大小的子批量数据集390-1、390-2、390-3和390-4(每个子批量大小为128/4=32),较慢的加速器320-3和320-4将成为针对训练过程的瓶颈,因为更快的加速器320-1和320-2将更快地完成他们的作业,并且由参数服务器330执行的模型权重更新过程将需要等待直到由较慢的加速器320-3和320-4完成作业。在这方面,加速器320-1、320-2、320-3和320-4之间的作业划分比率32:32:32:32是次优的。
另一方面,对于大小为128的小批量数据集,自适应批量数据集划分控制模块310可以(通过迭代负载平衡过程)确定加速器320-1、320-2、320-3和320-4中的最优作业划分比率为48:48:16:16,导致加速器320-1、320-2、320-3和320-4的训练任务同时完成(例如,T1=T2=T3=T4)或基本同时完成(例如,T1≈T2≈T3≈T4)。在该实例中,较快的加速器320-1和320-2可以处理较大大小的子批量数据集390-1和390-2(子批量大小=48),与较慢的加速器320-3和320-4处理较小大小的子批量数据集390-3和390-4(子批量大小=16)所需要的时间基本相同。本质上,加速器320之间的最优作业划分比率和相关联的负载平衡导致模型训练过程在更快的训练时间方面改善的性能,因为通过参数服务器的处理功能(聚合和权重更新)没有被较慢的加速器资源延迟。
图4是根据本发明的实施例的自适应批量数据集划分控制方法的流程图,该方法被实现为数据并行深度学习模型训练过程的一部分,以优化加速器资源集之间的负载平衡。图4示出了例如图3的自适应批量数据集划分控制模块310的示例性操作模式。深度学习过程的初始阶段包括提供加速器设备集,以用于由服务器集群中的多个工作者节点执行深度学习模型训练过程(框400)。在一个实施例中,该加速器设备集包括具有不同处理性能的不同类型的加速器设备的混合集合(例如,GPU、TPU等)。如上所述,服务器集群内的每个工作者节点管理由相应加速器设备执行的工作者过程,其中,工作者过程可以被实现为裸金属过程或虚拟过程(例如,虚拟机、容器应用等)。
用于训练给定深度学习模型的训练数据集被划分成多个小批量数据集(框402)。如上所述,每个小批量数据集的批量大小可以是2的幂,例如32、64、128、256等,以匹配加速器处理器硬件的存储器要求。小批量数据集的批量大小将根据各种因素而变化,诸如,例如训练数据集的总体大小、学习过程的期望收敛速度、为给定作业提供的加速器资源的数目(N)(例如,2、4、8等),等等。深度学习模型利用超参数设置被编译成计算图,并且计算图被复制到每个工作者节点(框404)。参数初始化过程由自适应批量数据集划分控制模块310(图3)执行,以设置用于自适应批量大小调整过程的各种参数(框406)。在一个实施例中,参数包括例如标准偏差(SD)阈值(L0)、作业划分比率调整值(K0)和最大迭代值(T0)。在一个示例性(非限制性)实施例中,参数可以被设置为诸如,例如L0=0.02、K0=4和T0=32的值。
在一个实施例中,数据并行训练过程通过从系统存储器访问第一(初始)小批量数据集开始,并将初始小批量数据集划分成多个(N)相同大小或随机大小的子批量数据集(框408),其中N表示为深度学习训练任务提供的加速器的数目。在一个实施例中,工作者节点的加速器之间的初始(默认)作业划分比率是1:1(平均作业划分)。例如,对于批量大小为128的样本和N=4个加速器,初始的小批量数据集将被划分成四(4)个子批量数据集,每个数据集的批量大小为32(即128/4),即32:32:32:32。
在其他实施例中,初始默认作业划分比率可以被随机设置为某个不相等的作业划分比率。通过示例,在一个实施例中,对于给定的预分配的加速器资源集,基于对相同或相似的加速器资源的混合集合实现的最优划分比率的先验知识,或基于加速器资源的相对性能(例如,操作速度),初始默认作业划分比率可以被设置为某个不相等的作业划分比率。使用这种先验知识来设置初始作业划分比率可以导致确定用于给定加速器资源集的最优作业划分比率所需的迭代作业划分过程的迭代次数的减少(与使用1:1的初始默认作业划分比率相比)。
针对当前小批量数据集的子批次数据集被复制到工作者节点,以用于通过加速器资源进行数据并行处理。自适应批量数据集划分控制模块将确定(或以其他方式获得)针对每个工作者节点的作业完成时间(Ti),其表示工作者节点的加速器完成针对给定的小批量迭代的分配的子批量数据集的处理所花费的时间(框410)。然后,自适应批量数据集划分控制模块将确定由针对当前小批量迭代的当前作业划分比率导致的工作者节点的加速器的作业完成时间Ti(对于i=1、...、N)的标准偏差(SD)(框412)。作业完成时间Ti的SD(σ)可以如下被确定:
其中μ表示针对给定小批量迭代的加速器的所有作业完成时间Ti的平均值(或均值)。
然后,针对给定小批量迭代的加速器的完成时间Ti的SD值与预先指定的SD阈值L0进行比较。如果确定加速器的完成时间Ti的SD值小于L0(框414中的肯定确定),则当前作业划分比率被维持以用于深度学习模型训练过程的剩余小批量迭代(框416)。在该实例中,自适应批量数据集分区控制模块将确定最优作业分区比率已经被达到,以便为深度学习训练过程的剩余部分划分小批量数据集。
在另一方面,如果确定加速器的作业完成时间Ti的SD值不小于L0(框414中的否定确定),则控制过程确定预先指定的迭代阈值T0是否已经被达到(框418)。迭代阈值T0基本上是用于执行自适应批量大小调整过程的指定的最大迭代次数。迭代阈值T0对用于执行自适应批量大小调整过程的调整迭代次数施加约束,从而在最优划分比率不会或不能导致具有收敛到小于预先指定的SD阈值L0的SD的作业完成时间的情况下,避免用于执行调整处理的处理时间和资源的任何不必要的浪费。在该实例中,如果控制过程确定迭代阈值T0已经被达到(框418中的肯定确定),则控制过程确定最优作业划分比率已经被达到,并且当前作业分配比率被维持以用于深度学习模型训练过程的剩余小批量迭代(框416)。
在另一方面,如果确定加速器的作业完成时间Ti的SD值不小于L0,以及迭代阈值T0尚未被达到(方框414和418中的否定确定),则控制过程通过调整具有以下加速器的工作者节点之间的作业划分比率来继续重新平衡工作者节点的负载:这些加速器被确定具有针对给定小批量交互的最快作业完成时间和最慢作业完成时间(框420)。对于下一小批量迭代,自适应批量数据集划分控制模块将基于调整的作业划分比率将小批量数据集划分成具有调整的批量大小的子批量数据集(框422)。
自适应批量大小调整过程的下一次迭代通过确定加速器的作业完成时间来继续(返回到框410),以基于调整的作业划分比率完成下一小批量迭代的子批次数据集的处理。对于每个后续的小批量交互,迭代过程(框410、412、414、418、420、422)继续,直到框414和框418中的条件之一被满足,在这种情况下,当前作业划分比率被返回作为最终作业划分比率,该最终作业划分比率被维持以用于针对深度学习训练过程的给定时期的小批量迭代的剩余部分(框416)。
图5示意性地示出了根据本发明的实施例的自适应批量数据集划分控制方法。特别地,图5提供了基于图4的处理流程的自适应批量大小调整过程500的说明性示例,这是在使用三个加速器A1、A2和A3来执行的数据并行深度学习模型训练过程的三个小批量迭代501、502和503上被执行的。在该示例中,SD阈值L0=0.02,并且作业划分比率调整值K0=4。
如图5所示,在第一(初始)小批量迭代501中,默认作业划分比率被应用,其中批量大小为96的小批量数据集在加速器A1、A2和A3之间被均等地划分。特别地,在该示例中,每个加速器A1、A2和A3被分配以处理批量大小为32的子批量数据集,使得划分比率为32:32:32。图5示出了在初始小批量迭代中加速器A1、A2和A3的作业完成时间Ti为3.15秒(秒)、6.07秒和2.82秒,这导致针对初始小批量迭代501中的作业完成时间的SD=1.4650。针对初始小批量迭代501的总训练时间是6.07秒,其对应于加速器A2的最大作业完成时间T2。在第一小批量迭代501中,加速器A3被示出具有最短作业完成时间T3=2.82秒。
由于在第一小批量迭代501中SD>L0,所以控制过程利用划分比率调整值K0=4来调整第二加速器A2和第三加速器A3之间的作业划分负载,它们分别被发现具有最慢和最快的作业完成时间。特别地,在示例性实施例中,针对第二加速器A2的作业划分(子批数据集的大小)被减少了K0=4个样本,而针对第三加速器A3的作业划分(子批数据集的大小)被减少了K0=4个样本。对于加速器A1、A2和A3,该过程导致调整的作业划分比率为32:28:36,其在下一小批量迭代502中被应用。
特别地,如图5所示,在第二小批量迭代502中,调整的作业划分比率32:28:36被应用,其中批量大小为96的下一小批量数据集在加速器A1、A2和A3之间被划分,相应子批量数据集大小分别为32、28和36。图5示出了第二小批量迭代502中的加速器A1、A2和A3的作业完成时间Ti为3.15秒、4.61秒和3.39秒,这导致针对第二小批量迭代502中的作业完成时间的SD=0.63924。针对第二小批量迭代502的总训练时间是4.61秒,其对应于加速器A2的最大作业完成时间T2。在第二小批量迭代502中,加速器A1被示出具有最短作业完成时间T1=3.15秒。
由于在第二小批量迭代502中SD>L0,所以控制过程利用划分比率调整值K0=4来调整第二加速器A2和第一加速器A1之间的作业划分负载,在第二次小批量迭代502中,它们分别被发现具有最慢和最快的作业完成时间。特别地,在示例性实施例中,针对第二加速器A2的作业划分(子批量数据集的大小)进一步被减少了K0=4个样本,而针对第一加速器A1的作业划分(子批量数据集的大小)被增加了K0=4个样本。对于加速器A1、A2和A3,该过程导致调整的作业划分比率为36:24:36,其在下一小批量迭代503中被应用。
特别地,如图5所示,在第三小批量迭代503中,调整的作业划分比率36:24:36被应用,其中批量大小为96的下一小批量数据集在加速器A1、A2和A3之间被划分,各个子批量数据集大小分别为36、24和36。图5示出了第三小批量迭代503中的加速器A1、A2和A3的作业完成时间Ti为3.75秒、3.30秒和3.39秒,这导致针对第三小批量迭代503中的作业完成时间的SD=0.19442。针对第三小批量迭代503的总训练时间是3.75秒,其对应于加速器A1的最大作业完成时间T1。在第三小批量迭代503中,加速器A2被示出具有最短作业完成时间T2=3.30秒。
由于在第三小批量迭代503中SD<L0,所以控制过程终止迭代自适应批量大小调整过程,并且为深度学习模型训练过程的剩余小批量迭代,维持当前作业划分比率36:24:36。如图5所示,自适应批量大小调整过程迭代地调整加速器之间的作业划分比率,以实现最优的作业划分比率,这将小批量迭代的总训练时间从6.07秒减少到3.75秒。
应该理解,图2的计算节点可以被用在云计算系统中来提供DLaaS作为平台即服务(PaaS)云计算模型的一部分,该模型支持客户为HPC应用(包括DL培训和推理处理)开发应用。例如,图6是根据本发明的实施例的计算系统600的高级示意图,该计算系统600包括被配置为提供深度学习即服务(DLaaS)的云计算服务平台,其实现自适应批量数据集划分控制方法,以优化用于分布式深度学习模型训练任务的加速器资源集之间的负载平衡。计算系统600包括多个(m个)客户端系统610-1、610-2、...、610-m(被统称为客户端系统610)、通信网络620和云计算服务平台630,云计算服务平台630可以由客户端系统610通过通信网络620访问。云计算服务平台630包括服务控制器640(例如,控制服务器节点)、服务平台网络650、包括多个(n个)GPU服务器节点660-1、660-2、...、660-n的服务器集群660(例如,服务器群)、存储网络结构670和包括多个数据存储设备682-1、682-2、...、682-s的数据存储系统680。服务控制器640包括计算资源调度和供应模块642、请求队列644和深度学习系统646(其支持DLaaS)。GPU服务器节点660-1、660-2、...、660-n包括GPU设备662,以及其他可能的计算资源,包括但不限于CPU、FPGA器件、ASIC器件、张量处理单元(TPU)、图像处理单元(IPU)以及其他被配置为支持由云计算服务平台630提供的HPC服务的硬件加速器系统。服务器集群660包括GPU服务器节点的异构集群,其可以具有异构加速器资源(例如,不同类型的GPU设备、TPU等)。此外,服务器集群660的GPU服务器节点660-1、660-2、...、660-n可以实现许多类型的商用服务器操作系统之一,商用服务器操作系统包括但不限于Windows服务器、Sun Solaris服务器、HP服务器、Linux服务器等。
客户端系统610包括各种类型的计算设备,诸如台式计算机、膝上型计算机、电子平板电脑等。在另一个实施例中,客户端系统610可以包括数据中心中需要GPU处理服务的服务器。通信网络620被配置为实现客户端系统610和服务平台630之间的网络通信。虽然通信网络620在图6中被一般性地描绘,但是应该理解,通信网络620可以包括任何已知的通信网络,诸如全球计算机网络(例如,因特网)、广域网(WAN)、局域网(LAN)、卫星网络、电话或有线网络、蜂窝网络、诸如Wi-Fi或WiMAX的无线网络,或这些和其他类型的网络的各种部分或组合。因此,在此使用的术语“网络”旨在广义地被解释为包含各种不同的网络布置,包括可能具有不同类型的多个网络的组合。在这方面,在一些实施例中,网络620包括多种不同类型的通信网络的组合,每种通信网络包括被配置成使用因特网协议(IP)或其他相关通信协议进行通信的网络设备。网络620包括中间点(诸如路由器、交换机等)和形成网络主干的其他元件,以建立通信路径并启用网络端点之间的通信。
服务平台网络650被配置为实现服务控制器640与服务器集群660的GPU服务器节点660-1、660-2、...、660-n之间的通信,以及实现服务器集群660内的GPU服务器节点660-1、660-2、...、660-n之间的对等网络通信。取决于服务平台630的组成组件和节点的网络分布和地理位置,服务平台网络650可以包括例如LAN、WAN、或者一个或多个LAN和WAN的组合、以及通常被用来实现云计算平台的其他类型的通信网络。存储网络结构670可以使用任何合适的网络系统和协议来实现,以通过服务器集群660的GPU服务器节点660-1、660-2、...、660-n来实现对数据存储系统680的共享访问。在一个实施例中,服务平台网络650和存储网络结构670可以使用已知技术被集成到诸如聚合的以太网框架的聚合框架中。
数据存储系统680可以使用任何合适的数据存储系统或数据存储系统的组合来实现,包括但不限于,存储区域网络(SAN)系统、直连存储(DAS)系统、Hadoop分布式文件系统(HDFS)、串行连接存储(SAS/SATA)系统、以及包括集群或分布式虚拟和/或物理基础架构的其他类型的数据存储系统。数据存储设备682-1、682-2、...、682-s包括非易失性存储介质,以为服务器集群660的GPU服务器节点660-1、660-2、...、660-n提供持久存储资源(例如,以存储用于深度学习应用的训练数据)。数据存储设备682-1、682-2、...、682-s可以包括一种或多种不同类型的持久存储设备或数据存储阵列,诸如硬盘驱动器(HDD)或固态驱动器(SSD),或其他类型和组合的非易失性存储器。在一个实施例中,数据存储设备682-1、682-2、...、682-s使用例如包括高性能、可伸缩存储阵列的企业级存储平台来实现,该存储阵列可以被实现用于超大规模计算系统。
云计算服务平台630可以是私有云或公共云计算平台,其实现PaaS系统以向针对HPC应用的终端用户或客户提供计算服务,HPC应用诸如深度学习应用、机器学习、大数据处理应用或其他类型的HPC应用,其通常使用基于云的PaaS系统来实现,向多个终端用户、服务提供商和/或组织递送消费者或商业应用和服务。服务控制器640被配置为控制云计算平台630的各种功能以支持PaaS管理操作。例如,如图6所示,服务控制器640被配置为控制和管理深度学习系统646以提供基于云的DLaaS。在一个实施例中,深度学习系统646实现深度学习计算平台,该平台与图1的深度学习计算平台50相同或相似,其实现了自适应批量数据集划分控制方法,以优化加速器资源集之间的负载平衡,以用于分布式计算作业,诸如DL模型培训任务等。
服务控制器640从客户端系统610接收用于在服务器集群660上执行HPC作业的服务请求(例如,分布式DL训练或其他HPC作业),并且接收到的服务请求被存储在请求队列644中。服务控制器640使用计算资源调度和供应模块642来调度和供应服务器集群660中的计算资源,以用于请求队列644中待处理的作业。服务请求可以包括各种用户指定的条件和用于执行与服务请求相关联的给定作业(例如,DL训练)的要求。例如,服务请求可以指定(i)期望数目(N)的加速器设备(例如,GPU设备)以供应所请求的作业,(ii)要被用于所请求的作业的加速器设备的特定类型/型号(例如,NVidia P100 GPU、Tensor flow TPU等),(iii)所提供的加速器设备是否应该为所请求的作业被专门分配,或者可以与其他作业共享,和/或(iv)基于与给定客户端的服务级别协议(SLA)的其他条件。此外,为待处理作业提供加速器资源可以基于服务提供商的预定义策略,以用于处理特定类型的作业。
服务请求和相关联的供应规范被存储在请求队列644中,等待由计算资源调度和供应模块642的调度。服务器资源的底层基础架构(例如,服务器集群660)、联网资源(例如,LAN/WAN 650、存储网络结构670)和数据存储资源(例如,数据存储系统680和存储设备682)被配置为提供基于云的基础架构即服务(IaaS)平台,IaaS平台包括异构资源集群,其由计算资源调度和供应模块642用来供应在请求队列644中执行待处理作业所需的资源集(例如,硬件加速器设备)。
计算资源调度和供应模块642可以实现任何合适的方法或协议,以用于选择、分配、调度和供应一个或多个GPU服务器节点和相关联的加速器资源(例如,GPU设备),以用于执行与客户端服务请求关联的HPC工作负载,具体取决于各种因素,包括但不限于,可用的GPU设备和GPU服务器节点的处理资源、与服务请求相关联的GPU处理任务的性质、用户指定的条件和用于执行给定作业的资源需求、基于与给定客户端的服务级别协议(SLA)的条件、用于处理特定类型的作业的服务提供商的预定义策略等。
例如,在本发明的一个实施例中,计算资源调度和供应模块642可以使用基于队列的GPU虚拟化和管理系统和方法来管理来自多个客户端系统的待处理GPU处理任务的调度和执行,如在2016年12月27日提交的名称为“Queue-Based GPU Virtualization andManagement System(基于队列的GPU虚拟化和管理系统)”的共同转让的美国专利申请序列号15/391,223中所公开的,其公开内容通过引用并入本文。基于队列的GPU虚拟化和管理系统允许客户端系统610在时间上和/或空间上共享给定GPU服务器节点的GPU设备662。例如,在一个实施例中,GPU设备的使用在时间上被共享,其中给定的GPU设备可以被分配给两个或更多个客户端系统,并且其中两个或更多个客户端系统的任务在不同时间在相同的分配的GPU设备上被执行。在另一个实施例中,给定的GPU设备可以被分配给两个或更多个客户端系统,以便给定GPU设备的使用在空间上被共享,其中两个或更多个客户端系统的不同任务使用给定GPU设备的不同区域(线程、核心)在给定GPU设备上同时被执行。
对于多GPU服务器节点分配,其中服务器集群660中的多个GPU服务器节点上的多个GPU设备662被分配给给定的客户端系统,计算资源调度和供应模块642被配置为与GPU服务器节点660通信以提供GPU资源、分配主GPU和从GPU服务器节点、以及命令所分配的GPU服务器节点逻辑地绑定在一起并建立通信链路以进行对等操作以用于执行与客户端请求相关联的GPU处理任务。这些技术在2017年4月14日提交的名称为“Managing Access to aResource Pool of Graphics Processing Units Under Fine Grain Control(在精细粒度控制下管理对图形处理单元的资源池的访问)”共同转让的美国专利申请序列号15/487,887中被公开,其公开内容通过引用并入本文。利用这些技术,给定的客户端系统将看到更大的逻辑GPU服务器节点,而主GPU服务器节点利用细粒度控制来协调和管理所有分配的GPU服务器节点上的GPU处理任务的执行,其对客户端系统是透明的。
应该理解,本发明的上述实施例仅出于说明的目的而被提出。许多变化在所示的特定布置中可以被做出。例如,尽管在特定系统和设备配置的上下文中进行了描述,但是这些技术适用于各种其他类型的信息处理系统、计算系统、数据存储系统、处理设备和分布式虚拟基础架构布置。另外,在描述说明性实施例的过程中做出的以上任何简化假设也应该被视为示例性的而不是对本发明的要求或限制。在所附权利要求范围内的许多其他备选实施例对于本领域技术人员来说将是显而易见的。
Claims (20)
1.一种方法,包括:
在计算系统的一个或多个服务器节点上提供多个加速器资源以执行分布式深度学习模型训练过程以训练深度学习模型;
将训练数据集划分成多个小批量数据集;
根据初始默认作业划分比率将初始小批量数据集划分成多个子批量数据集;
通过所述加速器资源中的每个加速器资源处理所述初始小批量数据集的所述子批量数据集中对应的一个子批量数据集来执行所述分布式深度学习模型训练过程的初始小批量迭代;以及
执行迭代批量大小调整过程以迭代地调整作业划分比率,以用于所述分布式深度学习模型训练过程的后续小批量迭代,其中所述迭代批量大小调整过程包括:
确定针对所述加速器资源中的每个加速器资源的作业完成时间,以完成所述初始小批量数据集的所述子批量数据集中所述对应的一个子批量数据集的处理;
确定由于针对所述初始小批量迭代的所述初始默认作业划分比率导致的所述加速器资源的所述作业完成时间的标准偏差;
将所确定的所述标准偏差与预定的标准偏差阈值进行比较;
以及
响应于所述作业完成时间的所确定的所述标准偏差超过所述预定的标准偏差阈值,调整所述作业划分比率,以用于将下一小批量数据集划分成子批量数据集,以用于所述分布式深度学习模型训练过程的下一小批量迭代。
2.根据权利要求1所述的方法,其中调整所述作业划分比率以用于将所述下一小批量数据集划分成所述多个子批量数据集以用于所述分布式深度学习模型训练过程的所述下一小批量迭代包括:
确定具有针对所述初始小批量迭代的最快作业完成时间的加速器资源;
确定具有针对所述初始小批量迭代的最慢作业完成时间的加速器资源;以及
基于预先指定的作业划分比率调整值,调整被确定为具有所述最快作业完成时间和所述最慢作业完成时间的所述加速器资源之间的作业划分比率。
3.根据权利要求2所述的方法,其中调整被确定为具有所述最快作业完成时间和所述最慢作业完成时间的所述加速器资源之间的所述作业划分比率包括:
将被分配给被确定为具有所述最慢作业完成时间的所述加速器资源的所述子批量数据集的大小减小对应于所述预先指定的作业划分比率调整值的量;以及
将被分配给被确定为具有所述最快作业完成时间的所述加速器资源的所述子批量数据集的大小增加对应于所述预先指定的作业划分比率调整值的量。
4.根据权利要求1所述的方法,其中根据所述初始默认作业划分比率将所述初始小批量数据集划分成所述多个子批量数据集包括:将初所述始小批量数据集划分成多个相同大小的子批量数据集。
5.根据权利要求1所述的方法,其中根据所述初始默认作业划分比率将所述初始小批量数据集划分成所述多个子批量数据集包括:将初所述始小批量数据集划分成多个子批量数据集,其中所述子批量数据集中的至少一些子批量数据集是不同大小的。
6.根据权利要求1所述的方法,其中执行所述迭代批量大小调整过程以迭代地调整所述作业划分比率以用于所述分布式深度学习模型训练过程的后续小批量迭代进一步包括:
针对当前小批量迭代:
根据当前作业划分比率将当前小批量数据集划分成多个子批量数据集;
确定针对所述加速器资源中的每个加速器资源的作业完成时间,以完成所述当前小批量数据集的所述子批量数据集中所述对应的一个子批量数据集的处理;
确定由于针对所述当前小批量迭代的所述当前作业划分比率导致的所述加速器资源的所述作业完成时间的标准偏差;
将所确定的所述标准偏差与所述预定的标准偏差阈值进行比较;
响应于所述作业完成时间的所确定的所述标准偏差超过所述预定的标准偏差阈值,调整所述作业划分比率,以用于将下一小批量数据集划分成多个子批量数据集,以用于所述分布式深度学习模型训练过程的下一小批量迭代;以及
响应于所述作业完成时间的所确定的所述标准偏差未超过所述预定的标准偏差阈值,维持所述当前作业划分比率,以用于将剩余的小批量数据集划分成多个子批量数据集,以用于所述分布式深度学习模型训练过程的剩余的小批量迭代。
7.根据权利要求6所述的方法,进一步包括:
响应于针对所述当前小批量迭代的所述作业完成时间的所确定的所述标准偏差超过所述预定的标准偏差阈值,确定预先指定的迭代阈值是否已经被达到;以及
响应于确定所述预先指定的迭代阈值已经被达到,保持所述当前作业划分比率,以用于将剩余的小批量数据集划分成多个子批量数据集,以用于所述分布式深度学习模型训练过程的剩余的小批量迭代。
8.根据权利要求6所述的方法,其中调整所述作业划分比率以用于将所述下一小批量数据集划分成所述多个子批量数据集以用于所述分布式深度学习模型训练过程的所述下一小批量迭代包括:
确定具有针对所述当前小批量迭代的最快作业完成时间的加速器资源;
确定具有针对所述当前小批量迭代的最慢作业完成时间的加速器资源;以及
基于预先指定的作业划分比率调整值,调整被确定为具有所述最快作业完成时间和所述最慢作业完成时间的所述加速器资源之间的作业划分比率。
9.根据权利要求1所述的方法,其中提供所述多个加速器资源包括:提供图形处理单元(GPU)资源的混合集合。
10.根据权利要求1所述的方法,其中提供所述多个加速器资源包括:提供虚拟加速器资源的混合集合。
11.一种制品,其包括具有一个或多个软件程序的存储的程序代码的处理器可读存储介质,其中所述程序代码由一个或多个处理器可执行以实现方法步骤,所述方法步骤包括:
在计算系统的一个或多个服务器节点上提供多个加速器资源以执行分布式深度学习模型训练过程以训练深度学习模型;
将训练数据集划分成多个小批量数据集;
根据初始默认作业划分比率将初始小批量数据集划分成多个子批量数据集;
通过所述加速器资源中的每个加速器资源处理所述初始小批量数据集的所述子批量数据集中对应的一个子批量数据集来执行所述分布式深度学习模型训练过程的初始小批量迭代;以及
执行迭代批量大小调整过程以迭代地调整作业划分比率,以用于所述分布式深度学习模型训练过程的后续小批量迭代,其中所述迭代批量大小调整过程包括:
确定针对所述加速器资源中的每个加速器资源的作业完成时间,以完成所述初始小批量数据集的所述子批量数据集中所述对应的一个子批量数据集的处理;
确定由于针对所述初始小批量迭代的所述初始默认作业划分比率导致的所述加速器资源的所述作业完成时间的标准偏差;
将所确定的所述标准偏差与预定的标准偏差阈值进行比较;
以及
响应于所述作业完成时间的所确定的所述标准偏差超过所述预定的标准偏差阈值,调整所述作业划分比率,以用于将下一小批量数据集划分成多个子批量数据集,以用于所述分布式深度学习模型训练过程的下一小批量迭代。
12.根据权利要求11所述的制品,其中调整所述作业划分比率以用于将所述下一小批量数据集划分成多个子批量数据集以用于所述分布式深度学习模型训练过程的所述下一小批量迭代包括:
确定具有针对所述初始小批量迭代的最快作业完成时间的加速器资源;
确定具有针对所述初始小批量迭代的最慢作业完成时间的加速器资源;以及
基于预先指定的作业划分比率调整值,调整被确定为具有所述最快作业完成时间和所述最慢作业完成时间的所述加速器资源之间的作业划分比率。
13.根据权利要求12所述的制品,其中调整被确定为具有所述最快作业完成时间和所述最慢作业完成时间的所述加速器资源之间的所述作业划分比率包括:
将被分配给被确定为具有所述最慢作业完成时间的所述加速器资源的所述子批量数据集的大小减小对应于所述预先指定的作业划分比率调整值的量;以及
将被分配给被确定为具有所述最快作业完成时间的所述加速器资源的所述子批量数据集的大小增加对应于所述预先指定的作业划分比率调整值的量。
14.根据权利要求11所述的制品,其中根据所述初始默认作业划分比率将所述初始小批量数据集划分成所述多个子批量数据集包括以下中的一项:(i)将初所述始小批量数据集划分成多个相同大小的子批量数据集;以及(ii)将初所述始小批量数据集划分成多个子批量数据集,其中所述子批量数据集中的至少一些子批量数据集是不同大小的。
15.根据权利要求11所述的制品,其中执行所述迭代批量大小调整过程以迭代地调整所述作业划分比率以用于所述分布式深度学习模型训练过程的后续小批量迭代进一步包括:
针对当前小批量迭代:
根据当前作业划分比率将当前小批量数据集划分成多个子批量数据集;
确定针对所述加速器资源中的每个加速器资源的作业完成时间,以完成所述当前小批量数据集的所述子批量数据集中所述对应的一个子批量数据集的处理;
确定由于针对所述当前小批量迭代的所述当前作业划分比率导致的所述加速器资源的所述作业完成时间的标准偏差;
将所确定的所述标准偏差与所述预定的标准偏差阈值进行比较;
响应于所述作业完成时间的所确定的所述标准偏差超过所述预定的标准偏差阈值,调整所述作业划分比率,以用于将下一小批量数据集划分成多个子批量数据集,以用于所述分布式深度学习模型训练过程的下一小批量迭代;
响应于所述作业完成时间的所确定的所述标准偏差未超过所述预定的标准偏差阈值,维持所述当前作业划分比率,以用于将剩余的小批量数据集划分成多个子批量数据集,以用于所述分布式深度学习模型训练过程的剩余的小批量迭代;以及
响应于针对所述当前小批量迭代的所述作业完成时间的所确定的所述标准偏差超过所述预定的标准偏差阈值,确定预先指定的迭代阈值是否已经被达到;以及
响应于确定所述预先指定的迭代阈值已经被达到,保持所述当前作业划分比率,以用于将剩余的小批量数据集划分成多个子批量数据集,以用于所述分布式深度学习模型训练过程的剩余的小批量迭代。
16.根据权利要求15所述的制品,其中调整所述作业划分比率以用于将所述下一小批量数据集划分成所述多个子批量数据集以用于所述分布式深度学习模型训练过程的所述下一小批量迭代包括:
确定具有针对所述当前小批量迭代的最快作业完成时间的加速器资源;
确定具有针对所述当前小批量迭代的最慢作业完成时间的加速器资源;以及
基于预先指定的作业划分比率调整值,调整被确定为具有所述最快作业完成时间和所述最慢作业完成时间的所述加速器资源之间的作业划分比率。
17.根据权利要求11所述的制品,其中提供所述多个加速器资源包括提供虚拟加速器资源的混合集合,其中所述虚拟加速器资源包括虚拟图形处理单元资源。
18.一种计算系统,包括:
包括多个服务器节点的服务器集群,其中所述服务器节点包括加速器资源;
控制服务器节点,其包括用于存储程序指令的存储器,以及用于执行所存储的所述程序指令以使得所述控制服务器节点执行过程的处理器,所述过程包括:
在计算系统的所述服务器节点中的一个或多个服务器节点上提供多个加速器资源以执行分布式深度学习模型训练过程以训练深度学习模型;
将训练数据集划分成多个小批量数据集;
根据初始默认作业划分比率将初始小批量数据集划分成多个子批量数据集;
通过所述加速器资源中的每个加速器资源处理所述初始小批量数据集的所述子批量数据集中对应的一个子批量数据集来执行所述分布式深度学习模型训练过程的初始小批量迭代;以及
执行迭代批量大小调整过程以迭代地调整作业划分比率,以用于所述分布式深度学习模型训练过程的后续小批量迭代,其中所述迭代批量大小调整过程包括:
确定针对所述加速器资源中的每个加速器资源的作业完成时间,以完成所述初始小批量数据集的所述子批量数据集中所述对应的一个子批量数据集的处理;
确定由于针对所述初始小批量迭代的所述初始默认作业划分比率导致的所述加速器资源的所述作业完成时间的标准偏差;
将所确定的所述标准偏差与预定的标准偏差阈值进行比较;
以及
响应于所述作业完成时间的所确定的所述标准偏差超过所述预定的标准偏差阈值,调整所述作业划分比率,以用于将下一小批量数据集划分成多个子批量数据集,以用于所述分布式深度学习模型训练过程的下一小批量迭代。
19.根据权利要求18所述的计算系统,其中调整所述作业划分比率以用于将所述下一小批量数据集划分成所述多个子批量数据集以用于所述分布式深度学习模型训练过程的所述下一小批量迭代包括:
确定具有针对所述初始小批量迭代的最快作业完成时间的加速器资源;
确定具有针对所述初始小批量迭代的最慢作业完成时间的加速器资源;以及
基于预先指定的作业划分比率调整值,调整被确定为具有所述最快作业完成时间和所述最慢作业完成时间的所述加速器资源之间的作业划分比率,其中调整被确定为具有所述最快作业完成时间和所述最慢作业完成时间的所述加速器资源之间的所述作业划分比率包括:
将被分配给被确定为具有所述最慢作业完成时间的所述加速器资源的所述子批量数据集的大小减小对应于所述预先指定的作业划分比率调整值的量;以及
将被分配给被确定为具有所述最快作业完成时间的所述加速器资源的所述子批量数据集的大小增加对应于所述预先指定的作业划分比率调整值的量。
20.根据权利要求18所述的计算系统,其中执行所述迭代批量大小调整过程以迭代地调整所述作业划分比率以用于所述分布式深度学习模型训练过程的后续小批量迭代进一步包括:
针对当前小批量迭代:
根据当前作业划分比率将当前小批量数据集划分成多个子批量数据集;
确定针对所述加速器资源中的每个加速器资源的作业完成时间,以完成所述当前小批量数据集的所述子批量数据集中所述对应的一个子批量数据集的处理;
确定由于针对所述当前小批量迭代的所述当前作业划分比率导致的所述加速器资源的所述作业完成时间的标准偏差;
将所确定的所述标准偏差与所述预定的标准偏差阈值进行比较;
响应于所述作业完成时间的所确定的所述标准偏差超过所述预定的标准偏差阈值,调整所述作业划分比率,以用于将下一小批量数据集划分成多个子批量数据集,以用于所述分布式深度学习模型训练过程的下一小批量迭代;
响应于所述作业完成时间的所确定的所述标准偏差未超过所述预定的标准偏差阈值,维持所述当前作业划分比率,以用于将剩余的小批量数据集划分成多个子批量数据集,以用于所述分布式深度学习模型训练过程的剩余的小批量迭代;以及
响应于针对所述当前小批量迭代的所述作业完成时间的所确定的所述标准偏差超过所述预定的标准偏差阈值,确定预先指定的迭代阈值是否已经被达到;以及
响应于确定所述预先指定的迭代阈值已经被达到,保持所述当前作业划分比率,以用于将剩余的小批量数据集划分成多个子批量数据集,以用于所述分布式深度学习模型训练过程的剩余的小批量迭代。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810878224.0A CN110795228B (zh) | 2018-08-03 | 2018-08-03 | 用于训练深度学习模型的方法和制品、以及计算系统 |
US16/133,054 US11487589B2 (en) | 2018-08-03 | 2018-09-17 | Self-adaptive batch dataset partitioning for distributed deep learning using hybrid set of accelerators |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810878224.0A CN110795228B (zh) | 2018-08-03 | 2018-08-03 | 用于训练深度学习模型的方法和制品、以及计算系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110795228A true CN110795228A (zh) | 2020-02-14 |
CN110795228B CN110795228B (zh) | 2023-08-25 |
Family
ID=69229638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810878224.0A Active CN110795228B (zh) | 2018-08-03 | 2018-08-03 | 用于训练深度学习模型的方法和制品、以及计算系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11487589B2 (zh) |
CN (1) | CN110795228B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444026A (zh) * | 2020-04-20 | 2020-07-24 | 北京工业大学 | 一种云环境下的深度学习训练资源配置预测方法 |
CN111736986A (zh) * | 2020-05-29 | 2020-10-02 | 浪潮(北京)电子信息产业有限公司 | 一种深度学习模型的fpga加速执行方法及相关装置 |
CN111738446A (zh) * | 2020-06-12 | 2020-10-02 | 北京百度网讯科技有限公司 | 深度学习推理引擎的调度方法、装置、设备和介质 |
CN111782592A (zh) * | 2020-06-30 | 2020-10-16 | 北京百度网讯科技有限公司 | 用于划分数据的方法、装置和系统 |
CN111858058A (zh) * | 2020-07-24 | 2020-10-30 | 成都成信高科信息技术有限公司 | 基于并行计算的sgd负载均衡方法、装置及存储介质 |
CN111898698A (zh) * | 2020-08-10 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 对象的处理方法及装置、存储介质和电子设备 |
CN112395272A (zh) * | 2021-01-20 | 2021-02-23 | 鹏城实验室 | 通信算法数据库构建方法、分布式机器装置和存储介质 |
CN112561062A (zh) * | 2020-12-18 | 2021-03-26 | 北京百度网讯科技有限公司 | 神经网络训练方法、装置、计算机设备及存储介质 |
CN113377529A (zh) * | 2021-05-24 | 2021-09-10 | 阿里巴巴新加坡控股有限公司 | 一种智能加速卡及基于智能加速卡的数据处理方法 |
CN113591398A (zh) * | 2021-08-23 | 2021-11-02 | 北京邮电大学 | 基于深度强化学习的智能作业分批方法、装置及电子设备 |
CN113703980A (zh) * | 2021-08-31 | 2021-11-26 | 西安电子科技大学 | 一种分布式机器学习系统及适用于其的通信调度方法 |
WO2021238734A1 (zh) * | 2020-05-29 | 2021-12-02 | 华为技术有限公司 | 一种神经网络的训练方法及相关设备 |
CN114035937A (zh) * | 2021-10-15 | 2022-02-11 | 北京潞晨科技有限公司 | 一种基于人工智能的分布式训练和推理方法、系统、设备和可读存储介质 |
CN114363248A (zh) * | 2020-09-29 | 2022-04-15 | 华为技术有限公司 | 计算系统、加速器、交换平面及聚合通信方法 |
CN114866429A (zh) * | 2022-04-28 | 2022-08-05 | 中国科学技术大学苏州高等研究院 | 联合路由决策和网内聚合的分布式模型训练方法和装置 |
CN115933986A (zh) * | 2022-12-29 | 2023-04-07 | 量子芯云(北京)微电子科技有限公司 | 一种具有高冗余量的计算存储阵列 |
CN116610960A (zh) * | 2023-07-20 | 2023-08-18 | 北京万界数据科技有限责任公司 | 一种人工智能训练参数的监测管理系统 |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9310433B2 (en) * | 2014-04-18 | 2016-04-12 | Breker Verification Systems | Testing SOC with portable scenario models and at different levels |
US10755407B2 (en) * | 2018-01-30 | 2020-08-25 | General Electric Company | Systems and methods for capturing deep learning training data from imaging systems |
EP3564873B1 (en) | 2018-04-30 | 2022-11-30 | Hewlett Packard Enterprise Development LP | System and method of decentralized machine learning using blockchain |
EP3564883B1 (en) | 2018-04-30 | 2023-09-06 | Hewlett Packard Enterprise Development LP | System and method of decentralized management of device assets outside a computer network |
EP3565218B1 (en) | 2018-04-30 | 2023-09-27 | Hewlett Packard Enterprise Development LP | System and method of decentralized management of multi-owner nodes using blockchain |
US11030012B2 (en) | 2018-09-28 | 2021-06-08 | Intel Corporation | Methods and apparatus for allocating a workload to an accelerator using machine learning |
US20200151575A1 (en) * | 2018-11-13 | 2020-05-14 | Teradata Us, Inc. | Methods and techniques for deep learning at scale over very large distributed datasets |
US10820285B2 (en) * | 2018-11-26 | 2020-10-27 | Hitron Technologies Inc. | Method for network synchronization |
US11966818B2 (en) | 2019-02-21 | 2024-04-23 | Hewlett Packard Enterprise Development Lp | System and method for self-healing in decentralized model building for machine learning using blockchain |
US11681945B2 (en) * | 2019-03-11 | 2023-06-20 | Cisco Technology, Inc. | Distributed learning model for fog computing |
EP3938894B1 (en) * | 2019-03-15 | 2023-08-30 | INTEL Corporation | Multi-tile memory management for detecting cross tile access, providing multi-tile inference scaling, and providing optimal page migration |
US11423254B2 (en) * | 2019-03-28 | 2022-08-23 | Intel Corporation | Technologies for distributing iterative computations in heterogeneous computing environments |
US10732983B1 (en) * | 2019-05-02 | 2020-08-04 | Capital One Services, Llc | Systems and methods of parallel and distributed processing of datasets for model approximation |
US11886960B2 (en) * | 2019-05-07 | 2024-01-30 | International Business Machines Corporation | Elastic training of machine learning models via re-partitioning based on feedback from the training algorithm |
US11573803B2 (en) | 2019-05-07 | 2023-02-07 | International Business Machines Corporation | Parallel training of machine learning models |
US11328222B1 (en) * | 2019-05-10 | 2022-05-10 | Innovium, Inc. | Network switch with integrated gradient aggregation for distributed machine learning |
US11521042B2 (en) * | 2019-05-21 | 2022-12-06 | Anil Ravindranath | System and method to dynamically and automatically sharing resources of coprocessor AI accelerators |
JP7279507B2 (ja) * | 2019-05-21 | 2023-05-23 | 富士通株式会社 | 情報処理装置、情報処理プログラム及び制御方法 |
JP7393882B2 (ja) * | 2019-06-18 | 2023-12-07 | キヤノンメディカルシステムズ株式会社 | 医用情報処理装置及び医用情報処理システム |
US11003501B2 (en) * | 2019-07-03 | 2021-05-11 | Advanced New Technologies Co., Ltd. | Loading models on nodes having multiple model service frameworks |
US20220321641A1 (en) * | 2019-07-16 | 2022-10-06 | Nippon Telegraph And Telephone Corporation | Distributed Deep Learning System |
US11057318B1 (en) | 2019-08-27 | 2021-07-06 | Innovium, Inc. | Distributed artificial intelligence extension modules for network switches |
US11218293B2 (en) | 2020-01-27 | 2022-01-04 | Hewlett Packard Enterprise Development Lp | Secure parameter merging using homomorphic encryption for swarm learning |
US11748835B2 (en) | 2020-01-27 | 2023-09-05 | Hewlett Packard Enterprise Development Lp | Systems and methods for monetizing data in decentralized model building for machine learning using a blockchain |
US11593112B2 (en) * | 2020-03-06 | 2023-02-28 | Microsoft Technology Licensing, Llc | Automated runtime configuration for dataflows |
WO2021220616A1 (ja) * | 2020-04-30 | 2021-11-04 | ソニーグループ株式会社 | 情報処理装置及び情報処理方法、コンピュータプログラム、並びに分散学習システム |
CN111695675B (zh) * | 2020-05-14 | 2024-05-07 | 平安科技(深圳)有限公司 | 联邦学习模型训练方法及相关设备 |
US11797340B2 (en) | 2020-05-14 | 2023-10-24 | Hewlett Packard Enterprise Development Lp | Systems and methods of resource configuration optimization for machine learning workloads |
KR102494945B1 (ko) * | 2020-05-15 | 2023-02-01 | 한국항공대학교산학협력단 | 멀티 gpu를 이용한 딥러닝 모델 학습 시의 최적 스플릿 크기 결정 장치 및 방법과 이를 이용한 딥러닝 모델 학습 방법 |
US11288097B2 (en) | 2020-06-12 | 2022-03-29 | Disney Enterprises, Inc. | Automated hardware resource optimization |
US11669473B2 (en) * | 2020-06-26 | 2023-06-06 | Advanced Micro Devices, Inc. | Allreduce enhanced direct memory access functionality |
CN111752713B (zh) * | 2020-06-28 | 2022-08-05 | 浪潮电子信息产业股份有限公司 | 模型并行训练任务负载均衡方法、装置、设备及存储介质 |
US11977986B2 (en) | 2020-07-09 | 2024-05-07 | International Business Machines Corporation | Dynamic computation rates for distributed deep learning |
US11875256B2 (en) | 2020-07-09 | 2024-01-16 | International Business Machines Corporation | Dynamic computation in decentralized distributed deep learning training |
US11886969B2 (en) | 2020-07-09 | 2024-01-30 | International Business Machines Corporation | Dynamic network bandwidth in distributed deep learning training |
US11409564B2 (en) * | 2020-07-31 | 2022-08-09 | International Business Machines Corporation | Resource allocation for tuning hyperparameters of large-scale deep learning workloads |
US20220051089A1 (en) * | 2020-08-17 | 2022-02-17 | Google Llc | Neural Network Accelerator in DIMM Form Factor |
US11729263B2 (en) * | 2020-09-22 | 2023-08-15 | Ribbon Communications Operating Company, Inc. | Methods, apparatus and systems for cloud native application multi-factor load balancing |
CN112162791B (zh) * | 2020-09-25 | 2022-12-30 | 天津大学 | 一种分布式深度学习任务混部后的性能预测方法 |
KR20220045800A (ko) * | 2020-10-06 | 2022-04-13 | 삼성전자주식회사 | 인공지능 모델을 분산 처리하는 시스템 및 그 동작 방법 |
TWI756974B (zh) * | 2020-12-09 | 2022-03-01 | 財團法人工業技術研究院 | 機器學習系統及其資源配置方法 |
US20220215234A1 (en) * | 2021-01-07 | 2022-07-07 | Microsoft Technology Licensing, Llc | Determining schedules for processing neural networks on hardware |
CN112732444A (zh) * | 2021-01-12 | 2021-04-30 | 北京工业大学 | 一种面向分布式机器学习的数据划分方法 |
US20220269528A1 (en) * | 2021-02-24 | 2022-08-25 | Huawei Technologies Co., Ltd. | System, method and apparatus for intelligent heterogeneous computation |
CN113032152B (zh) * | 2021-04-02 | 2023-03-24 | 北京百度网讯科技有限公司 | 用于深度学习框架的调度方法、调度装置、电子设备、存储介质和程序产品 |
US11847491B1 (en) | 2021-04-22 | 2023-12-19 | Habana Labs Ltd. | Low latency execution of a machine learning model |
US20230140239A1 (en) * | 2021-11-01 | 2023-05-04 | Samsung Electronics Co., Ltd. | Method and apparatus with data loading |
US11853392B2 (en) | 2021-11-30 | 2023-12-26 | International Business Machines Corporation | Providing reduced training data for training a machine learning model |
CN116226652A (zh) * | 2021-12-02 | 2023-06-06 | 华为技术有限公司 | 一种训练加速方法及相关装置 |
US20230236889A1 (en) * | 2022-01-27 | 2023-07-27 | Microsoft Technology Licensing, Llc | Distributed accelerator |
CN114820279B (zh) * | 2022-05-18 | 2023-03-24 | 北京百度网讯科技有限公司 | 基于多gpu的分布式深度学习方法、装置及电子设备 |
US20230409889A1 (en) * | 2022-06-17 | 2023-12-21 | Google Llc | Machine Learning Inference Service Disaggregation |
EP4332836A1 (en) * | 2022-08-30 | 2024-03-06 | Tata Consultancy Services Limited | Method and system for switching between hardware accelerators for data model training |
CN115248728B (zh) * | 2022-09-21 | 2023-02-03 | 之江实验室 | 面向智能计算的分布式训练任务调度方法、系统和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6269351B1 (en) * | 1999-03-31 | 2001-07-31 | Dryken Technologies, Inc. | Method and system for training an artificial neural network |
US20140142929A1 (en) * | 2012-11-20 | 2014-05-22 | Microsoft Corporation | Deep neural networks training for speech and pattern recognition |
CN105378762A (zh) * | 2014-04-08 | 2016-03-02 | 微软技术许可有限责任公司 | 使用交替方向乘子法的深度学习 |
CN106779093A (zh) * | 2017-01-06 | 2017-05-31 | 中国科学院上海高等研究院 | 基于滑动窗口采样的分布式机器学习训练方法及其系统 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6888831B1 (en) | 2000-09-28 | 2005-05-03 | Western Digital Ventures, Inc. | Distributed resource reservation system for establishing a path through a multi-dimensional computer network to support isochronous data |
US20080195843A1 (en) | 2007-02-08 | 2008-08-14 | Jaya 3D Llc | Method and system for processing a volume visualization dataset |
US8286196B2 (en) | 2007-05-03 | 2012-10-09 | Apple Inc. | Parallel runtime execution on multiple processors |
US7970872B2 (en) | 2007-10-01 | 2011-06-28 | Accenture Global Services Limited | Infrastructure for parallel programming of clusters of machines |
US8423799B2 (en) | 2009-11-30 | 2013-04-16 | International Business Machines Corporation | Managing accelerators of a computing environment |
US8803892B2 (en) | 2010-06-10 | 2014-08-12 | Otoy, Inc. | Allocation of GPU resources across multiple clients |
US8627143B2 (en) | 2010-07-12 | 2014-01-07 | Hewlett-Packard Development Company, L.P. | Dynamically modeling and selecting a checkpoint scheme based upon an application workload |
US9135189B2 (en) | 2011-09-07 | 2015-09-15 | Microsoft Technology Licensing, Llc | Delivering GPU resources across machine boundaries |
US8938416B1 (en) | 2012-01-13 | 2015-01-20 | Amazon Technologies, Inc. | Distributed storage of aggregated data |
JP6009075B2 (ja) | 2012-12-20 | 2016-10-19 | 中国科学院近代物理研究所 | 粒子流動のシミュレーションシステム及びその方法 |
JP2014135013A (ja) | 2013-01-11 | 2014-07-24 | Fujitsu Ltd | 画像転送方法、サーバ機器及びプログラム |
US9774739B2 (en) | 2014-03-20 | 2017-09-26 | Genesys Telecommunications Laboratories, Inc. | Resource sharing in a peer-to-peer network of contact center nodes |
US9836354B1 (en) | 2014-04-28 | 2017-12-05 | Amazon Technologies, Inc. | Automated error detection and recovery for GPU computations in a service environment |
US9690928B2 (en) | 2014-10-25 | 2017-06-27 | Mcafee, Inc. | Computing platform security methods and apparatus |
US9965823B2 (en) | 2015-02-25 | 2018-05-08 | Microsoft Technology Licensing, Llc | Migration of graphics processing unit (GPU) states |
US11087234B2 (en) | 2016-01-29 | 2021-08-10 | Verizon Media Inc. | Method and system for distributed deep machine learning |
US20170353397A1 (en) | 2016-06-06 | 2017-12-07 | Advanced Micro Devices, Inc. | Offloading Execution of an Application by a Network Connected Device |
US20180075347A1 (en) | 2016-09-15 | 2018-03-15 | Microsoft Technology Licensing, Llc | Efficient training of neural networks |
-
2018
- 2018-08-03 CN CN201810878224.0A patent/CN110795228B/zh active Active
- 2018-09-17 US US16/133,054 patent/US11487589B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6269351B1 (en) * | 1999-03-31 | 2001-07-31 | Dryken Technologies, Inc. | Method and system for training an artificial neural network |
US20140142929A1 (en) * | 2012-11-20 | 2014-05-22 | Microsoft Corporation | Deep neural networks training for speech and pattern recognition |
CN105378762A (zh) * | 2014-04-08 | 2016-03-02 | 微软技术许可有限责任公司 | 使用交替方向乘子法的深度学习 |
CN106779093A (zh) * | 2017-01-06 | 2017-05-31 | 中国科学院上海高等研究院 | 基于滑动窗口采样的分布式机器学习训练方法及其系统 |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444026A (zh) * | 2020-04-20 | 2020-07-24 | 北京工业大学 | 一种云环境下的深度学习训练资源配置预测方法 |
WO2021238734A1 (zh) * | 2020-05-29 | 2021-12-02 | 华为技术有限公司 | 一种神经网络的训练方法及相关设备 |
CN111736986A (zh) * | 2020-05-29 | 2020-10-02 | 浪潮(北京)电子信息产业有限公司 | 一种深度学习模型的fpga加速执行方法及相关装置 |
CN111736986B (zh) * | 2020-05-29 | 2023-06-23 | 浪潮(北京)电子信息产业有限公司 | 一种深度学习模型的fpga加速执行方法及相关装置 |
CN113743570B (zh) * | 2020-05-29 | 2024-06-04 | 华为技术有限公司 | 一种神经网络的训练方法及相关设备 |
CN113743570A (zh) * | 2020-05-29 | 2021-12-03 | 华为技术有限公司 | 一种神经网络的训练方法及相关设备 |
CN111738446A (zh) * | 2020-06-12 | 2020-10-02 | 北京百度网讯科技有限公司 | 深度学习推理引擎的调度方法、装置、设备和介质 |
CN111738446B (zh) * | 2020-06-12 | 2023-11-03 | 北京百度网讯科技有限公司 | 深度学习推理引擎的调度方法、装置、设备和介质 |
CN111782592A (zh) * | 2020-06-30 | 2020-10-16 | 北京百度网讯科技有限公司 | 用于划分数据的方法、装置和系统 |
CN111782592B (zh) * | 2020-06-30 | 2024-06-07 | 北京百度网讯科技有限公司 | 用于划分数据的方法、装置和系统 |
CN111858058A (zh) * | 2020-07-24 | 2020-10-30 | 成都成信高科信息技术有限公司 | 基于并行计算的sgd负载均衡方法、装置及存储介质 |
WO2022033241A1 (zh) * | 2020-08-10 | 2022-02-17 | 腾讯科技(深圳)有限公司 | 对象的处理方法及装置、存储介质和电子设备 |
CN111898698B (zh) * | 2020-08-10 | 2021-07-27 | 腾讯科技(深圳)有限公司 | 对象的处理方法及装置、存储介质和电子设备 |
CN111898698A (zh) * | 2020-08-10 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 对象的处理方法及装置、存储介质和电子设备 |
CN114363248A (zh) * | 2020-09-29 | 2022-04-15 | 华为技术有限公司 | 计算系统、加速器、交换平面及聚合通信方法 |
CN112561062B (zh) * | 2020-12-18 | 2023-10-31 | 北京百度网讯科技有限公司 | 神经网络训练方法、装置、计算机设备及存储介质 |
CN112561062A (zh) * | 2020-12-18 | 2021-03-26 | 北京百度网讯科技有限公司 | 神经网络训练方法、装置、计算机设备及存储介质 |
CN112395272A (zh) * | 2021-01-20 | 2021-02-23 | 鹏城实验室 | 通信算法数据库构建方法、分布式机器装置和存储介质 |
CN113377529A (zh) * | 2021-05-24 | 2021-09-10 | 阿里巴巴新加坡控股有限公司 | 一种智能加速卡及基于智能加速卡的数据处理方法 |
CN113377529B (zh) * | 2021-05-24 | 2024-04-19 | 阿里巴巴创新公司 | 一种智能加速卡及基于智能加速卡的数据处理方法 |
CN113591398A (zh) * | 2021-08-23 | 2021-11-02 | 北京邮电大学 | 基于深度强化学习的智能作业分批方法、装置及电子设备 |
CN113591398B (zh) * | 2021-08-23 | 2023-05-23 | 北京邮电大学 | 基于深度强化学习的智能作业分批方法、装置及电子设备 |
CN113703980A (zh) * | 2021-08-31 | 2021-11-26 | 西安电子科技大学 | 一种分布式机器学习系统及适用于其的通信调度方法 |
CN114035937A (zh) * | 2021-10-15 | 2022-02-11 | 北京潞晨科技有限公司 | 一种基于人工智能的分布式训练和推理方法、系统、设备和可读存储介质 |
CN114866429B (zh) * | 2022-04-28 | 2023-07-18 | 中国科学技术大学苏州高等研究院 | 联合路由决策和网内聚合的分布式模型训练方法和装置 |
CN114866429A (zh) * | 2022-04-28 | 2022-08-05 | 中国科学技术大学苏州高等研究院 | 联合路由决策和网内聚合的分布式模型训练方法和装置 |
CN115933986A (zh) * | 2022-12-29 | 2023-04-07 | 量子芯云(北京)微电子科技有限公司 | 一种具有高冗余量的计算存储阵列 |
CN116610960B (zh) * | 2023-07-20 | 2023-10-13 | 北京万界数据科技有限责任公司 | 一种人工智能训练参数的监测管理系统 |
CN116610960A (zh) * | 2023-07-20 | 2023-08-18 | 北京万界数据科技有限责任公司 | 一种人工智能训练参数的监测管理系统 |
Also Published As
Publication number | Publication date |
---|---|
US11487589B2 (en) | 2022-11-01 |
CN110795228B (zh) | 2023-08-25 |
US20200042362A1 (en) | 2020-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795228B (zh) | 用于训练深度学习模型的方法和制品、以及计算系统 | |
US10776164B2 (en) | Dynamic composition of data pipeline in accelerator-as-a-service computing environment | |
US10698766B2 (en) | Optimization of checkpoint operations for deep learning computing | |
US10728091B2 (en) | Topology-aware provisioning of hardware accelerator resources in a distributed environment | |
US10891156B1 (en) | Intelligent data coordination for accelerated computing in cloud environment | |
US11216314B2 (en) | Dynamic reallocation of resources in accelerator-as-a-service computing environment | |
US11315013B2 (en) | Implementing parameter server in networking infrastructure for high-performance computing | |
CN110301128B (zh) | 基于学习的资源管理数据中心云架构的实现方法 | |
US10310908B2 (en) | Dynamic usage balance of central processing units and accelerators | |
US9984337B2 (en) | Parallelized machine learning with distributed lockless training | |
US10574734B2 (en) | Dynamic data and compute management | |
US11409449B2 (en) | Workload based storage optimization | |
CN114730275A (zh) | 使用张量在分布式计算系统中进行矢量化资源调度的方法和装置 | |
KR20230036518A (ko) | 워크로드 실행을 오프로드하는 기술들 | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
US11443244B2 (en) | Parallel ensemble of machine learning algorithms | |
Herrero-Lopez | Accelerating SVMs by integrating GPUs into MapReduce clusters | |
US20240126561A1 (en) | Dynamic distribution of container images | |
US20230410428A1 (en) | Hybrid gpu-cpu approach for mesh generation and adaptive mesh refinement | |
US20190354833A1 (en) | Method and system for reducing communication frequency in neural network systems | |
US11928517B2 (en) | Feature resource self-tuning and rebalancing | |
CN114168311A (zh) | 计算装置和处理器实现的方法 | |
US20240220794A1 (en) | Training systems and operating method thereof | |
Lambda et al. | Serverless computing | |
US20230342177A1 (en) | Methods and decentralized systems that distribute automatically learned control information to agents that employ distributed machine learning to automatically instantiate and manage distributed applications |
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 |