CN114207636A - 电子设备及其控制方法 - Google Patents
电子设备及其控制方法 Download PDFInfo
- Publication number
- CN114207636A CN114207636A CN202080056192.1A CN202080056192A CN114207636A CN 114207636 A CN114207636 A CN 114207636A CN 202080056192 A CN202080056192 A CN 202080056192A CN 114207636 A CN114207636 A CN 114207636A
- Authority
- CN
- China
- Prior art keywords
- gpu
- gpus
- tasks
- bandwidth
- execute
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/5044—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 hardware capabilities
-
- 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
-
- 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/5055—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 software capabilities, i.e. software resources associated or available to the machine
-
- 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/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/501—Performance criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
电子设备包括与外部服务器通信的通信接口;以及处理器,用于通过执行至少一个指令来控制电子设备。处理器配置成从每个外部服务器接收多个GPU对的带宽值以及关于多个GPU是否被使用的信息,外部服务器中所包括的多个GPU被组合成多个GPU对,基于接收到与机器学习相关的输入作业,识别执行输入作业中所包括的任务所需的GPU的数量和带宽值,基于多个GPU对的带宽值、所接收的关于多个GPU是否被使用的信息、以及GPU的数量和带宽值,从多个GPU中确定执行任务的GPU。
Description
技术领域
本公开涉及一种电子设备及其控制方法,更具体地,涉及一种确定网络中的图形处理单元(GPU)以进行有效数据学习的电子设备及其控制方法。
背景技术
近来,人工智能系统正在各种领域中使用。在人工智能系统中,与基于现有技术规则的智能系统不同,机器自身学习、做决定并变得更智能。人工智能系统随着其被更多地使用而显示出更高的识别率,并且变得能够更正确地理解用户偏好。为此,基于现有技术规则的智能系统逐渐被基于深度学习的人工智能系统所替代。
然而,与在数据学习过程中使用大量数据作为输入数据的机器学习相关的作业需要若干GPU。
根据在提供若干GPU的云中分配GPU的现有技术方法,在数据学习过程中在GPU之间的网络带宽中出现了瓶颈现象。在这种情况下,存在这样的问题:即使待用于数据学习的GPU的数量增加,性能也不会得到改善,并且被分配来执行数据学习的GPU的利用程度低。
发明内容
技术问题
提供一种电子设备以及控制该电子设备的方法,该电子设备能够通过利用可用GPU的带宽来确定执行数据学习的GPU从而减少数据学习过程中的瓶颈现象。
技术方案
另外的方面将部分地在随后的描述中阐述,并且部分地将从描述中显而易见,或者可以通过实践所呈现的实施例来获知。
根据本发明的一个方面,一种电子设备包括:通信接口,其与多个外部服务器通信;存储器,其包括至少一个指令;以及处理器,其用于通过执行至少一个指令来控制电子设备。处理器配置成通过通信接口从多个外部服务器中的每一个接收多个GPU对的带宽值和关于多个GPU是否被使用的信息,其中,多个外部服务器所包括的多个GPU被组合成多个GPU对,并且基于输入的与机器学习相关的作业,识别执行输入作业中包括的多个任务所需的GPU的数量和带宽值,基于多个GPU对的带宽值、所接收的关于多个GPU是否被使用的信息、以及所识别的执行多个任务所需的GPU的数量和带宽值,确定用于执行多个任务中的每一个的多个GPU,并控制通信接口将与多个任务相关的学习数据发送到多个经确定GPU。
其中处理器进一步配置成:基于所接收的关于多个GPU是否被使用的信息,识别多个GPU中的可用GPU,基于执行多个任务所需的GPU的数量和带宽值将可用GPU组合为可用GPU对,通过将可用GPU对中的至少一个可用GPU对包括在多个组中的每一者中来识别多个组,基于预定策略确定多个组中的组,并将所确定的组中所包括的GPU分别确定为执行多个任务的GPU。
其中处理器进一步配置成基于预定策略通过以下方式来确定所述组:识别多个组中其中所包括的至少一个可用GPU对具有大于或等于执行多个任务所需的带宽值的带宽值的组,且将所述组中包含具有最小带宽值的至少一个可用GPU对的组中所包括的GPU确定为执行多个任务的GPU。
其中处理器进一步配置成:在多个组中不存在其中至少一个可用GPU对的带宽值大于或等于执行多个任务所需的带宽值的组的情况下,将多个组中的、其中所包括的至少一个可用GPU对的带宽值最大的组中所包括的GPU确定为执行多个任务的GPU。
其中处理器进一步配置成:在多个GPU对中识别带宽值大于或等于执行多个任务所需的经识别带宽值的候选GPU对,基于执行输入作业所需的带宽值的顺序和GPU的数量,依次识别候选GPU对中具有最小带宽值的GPU对,并将GPU对中所包括的GPU分别确定为执行多个任务的GPU。
其中多个GPU对包括第一GPU对和第二GPU对,第一GPU对包括外部服务器中所包括的多个第一GPU,第二GPU对包括多个外部服务器中彼此不同的外部服务器中所包括的多个第二GPU。
其中处理器进一步配置成基于接收由多个外部服务器测量的多个GPU对的带宽值来确定可用带宽,其中通过通信接口从多个外部服务器周期性地接收带宽值。
其中存储器配置成存储与多个GPU对中正被使用的GPU对的带宽值有关的信息,且处理器进一步配置成:通过排除正被使用的GPU对来确定多个GPU对中执行输入作业的GPU。
其中,通过将学习数据输入到所确定的GPU中的每一者而获取的多个局部梯度是相互同步的,多个局部梯度基于学习数据而指示所确定的GPU中所包括的参数的变化程度。
其中,GPU中所包括的参数是基于经同步的多个局部梯度而训练的。
根据本公开的一个方面,一种用于控制电子设备的方法包括:分别从多个外部服务器中的每一者接收多个GPU对的带宽值以及关于多个GPU是否被使用的信息,多个GPU被组合成多个GPU对,基于输入与机器学习相关的作业,识别执行输入作业中所包括的多个任务所需的GPU的数量和带宽值,基于多个GPU对的带宽值、所接收的关于多个GPU是否被使用的信息以及执行多个任务所需的经识别的GPU的数量和带宽值,确定用于执行多个任务中的每一者的多个GPU;以及将与多个任务相关的学习数据发送到所确定的多个GPU。
该方法进一步包括:分别从包括多个图形处理单元(GPU)的多个外部服务器接收多个GPU对的带宽值以及关于多个GPU是否被使用的信息,多个GPU被组合成多个GPU对;基于接收到与机器学习相关的输入作业,识别执行输入作业中所包括的多个任务所需的GPU的数量和带宽值;基于多个GPU对的带宽值、所接收的关于多个GPU是否被使用的信息以及执行多个任务所需的GPU的数量和带宽值,确定用于执行多个任务的多个GPU中的GPU;以及将与多个任务相关的学习数据发送到所确定的GPU。
其中,确定GPU进一步包括:基于所接收的关于多个GPU是否被使用的信息,识别多个GPU中的可用GPU;基于执行多个任务所需的GPU的数量和带宽值,将可用GPU组合为可用GPU对;通过将可用GPU对中的至少一个可用GPU对包括到多个组中的每个组中来识别多个组;基于预定策略确定多个组中的组;以及将所确定的组中所包括的GPU分别确定为执行多个任务的GPU。
其中,基于预定策略确定所述组包括:在多个组中识别其中所包括的至少一个可用GPU对具有大于或等于执行多个任务所需的带宽值的带宽值的组;以及将所述组中包含具有最小带宽值的至少一个可用GPU对的组中所包括的GPU确定为执行多个任务的GPU。
其中,确定GPU进一步包括:在多个组中不存在其中至少一个可用GPU对的带宽值大于或等于执行多个任务所需的带宽值的组的情况下,将多个组中的、其中所包括的至少一个可用GPU对的带宽值最大的组中所包括的GPU确定为执行多个任务的GPU。
其中,确定GPU进一步包括:在多个GPU对中识别带宽值大于或等于执行多个任务所需的经识别带宽值的候选GPU对;基于执行输入作业所需的带宽值的顺序和GPU的数量,依次识别候选GPU对中具有最小带宽值的GPU对;以及将GPU对中所包括的GPU分别确定为执行多个任务的GPU。
附图说明
图1是示出根据实施例的机器学习系统的图;
图2是示出根据实施例的电子设备的示意性配置的图;
图3是用于更详细地示出根据实施例的电子设备的处理器的操作的图;
图4是示出根据实施例的电子设备按照通信或网络技术的类型所获取的可用带宽的图;
图5是示出根据实施例的获取机器学习作业所需的带宽的电子设备的操作的图;
图6是示出根据实施例的在GPU包括在电子设备中的情况下的GPU分配方法的示例的图;
图7是示出根据实施例的GPU的各种分配方法的图;
图8是示出根据实施例的在所分配的GPU之间同步局部梯度的操作的图;
图9是示出根据实施例的电子设备的控制方法的流程图;以及
图10是示出根据实施例的分配GPU的电子设备的操作的流程图。
具体实施方式
首先,将简要描述本说明书中使用的术语,然后将详细描述实施例。
作为这里使用的术语,考虑到所描述的功能,尽可能地选择当前广泛使用的通用术语。然而,这些术语可以根据在相关领域作业的本领域技术人员的意图、先前的法院判决或新技术的出现而变化。此外,在特定情况下,可能存在由申请人指定的术语,并且在这些情况下,将在相关描述中详细描述这些术语的含义。因此,这里使用的术语应该基于这里描述的术语的含义和整体内容来定义,而不仅仅是基于术语的名称。
可以对实施例进行各种修改。因此,尽管在具体描述中详细地描述了某些实施例,但是实施例不限于此,并且可以应用各种修改、等同表述或替换。
诸如“第一”、“第二”等的术语可用于描述各种元件,但这些术语并非旨在限制这些元件。这些术语仅用于将一个元件与另一个元件区分开。
单数表达式包括复数表达式,只要它们在上下文中没有明显的不同意思即可。此外,诸如“包括”和“由……组成”的术语应被解释为指定在说明书中描述了此类特征、数字、步骤、操作、元件、组件或其组合,而不应预先排除添加一个或多个其它特征、数字、步骤、操作、元件、组件或其组合的存在或可能性。
在实施例中,“模块”或“部件”执行至少一个功能或操作,并且可以实现为硬件或软件,或者实现为硬件和软件的组合。此外,多个“模块”或“部分”可以集成到至少一个模块中并实现为至少一个处理器,除了需要实现为特定硬件的“模块”或“部分”之外。
在下文中,将参考附图详细描述某些实施例。
图1是示出根据实施例的机器学习系统的图。
参照图1,根据实施例的机器学习系统1000包括电子设备100和一个或多个外部服务器200。实施例可以用在由包括至少一个GPU的多个服务器组成的网络环境中,其中,网络用户向电子设备100提交关于需要若干GPU的分布式机器学习(DML)的作业10,例如输入作业。也就是说,输入到电子设备100的作业10由用于执行分布式机器学习的多个任务(例如,任务X、任务Y和任务Z)组成,并且通过每个GPU分布式地学习每个任务。
根据实施例的电子设备100可以是至少一个服务器,但是这仅仅是一个示例,并且电子设备100可以是各种用户终端设备,诸如智能电话、TV、台式PC、平板PC、公用电话亭等。
电子设备100可以确定将执行输入作业10的多个任务的GPU。
具体地,电子设备100可以从包括多个GPU(例如,GPU A、GPU B、GPU C和GPU D)的外部服务器200接收关于包括在外部服务器200中的多个可用GPU的信息以及关于包括在多个GPU中的至少一个GPU对的带宽的信息。这里,电子设备100可以周期性地从外部服务器接收关于多个可用GPU的信息和关于至少一个GPU对的带宽的信息。然而,这仅仅是一个例子,并且当接收到作业请求时,电子设备100可以从外部服务器200接收关于多个可用GPU的信息和关于至少一个GPU对的带宽的信息。这里,GPU对可以是将多个GPU组合为以两个为单位的对。例如,电子设备100可以从外部服务器200接收关于多个GPU中的可用GPU对(例如,GPUA到GPU D)以及GPU对的带宽值的信息。
此外,当输入与机器学习相关的作业时,电子设备100可以获取关于执行包括在输入作业10中的多个任务所需的GPU的数量和带宽值的信息。
此外,电子设备100可以基于来自外部服务器200的关于正在使用的GPU的信息和关于可用带宽的信息,以及执行包括在作业中的多个任务所需的GPU的数量和带宽值,来确定要执行多个任务的多个GPU。
这里,被确定为执行多个任务的多个GPU可以以在一个方向上发送数据的环(单向环)的形式连接,并且多个GPU可以通过向环拓扑上的相邻GPU发送数据(例如,局部梯度)来执行同步。
将参考图2至图10详细描述确定要执行输入作业10的多个GPU的电子设备100的具体操作。
图2是用于说明根据实施例的电子设备的示意性配置的图。
参照图2,电子设备100包括通信接口110、存储器120和处理器130。
通信接口110是用于执行与外部服务器的通信的组件。同时,通信接口110与外部服务器的通信连接可以包括经由第三装置(例如,中继器、集线器、接入点、外部服务器或网关等)的通信。
特别地,根据实施例的通信接口110可以被实现为以太网。根据实施例的以太网是通过总线结构方法的近场通信网络(LAN),并且它可以通过载波侦听多路访问与冲突检测(CSMA/CD)方法来发送数据。包括在本公开的系统中的电子设备100和多个外部服务器200可以通过以太网连接。
通信接口110可以通过有线通信或无线通信与多个外部服务器通信。特别地,电子设备100可以通过与外部服务器的有线连接或无线连接从多个外部服务器接收关于GPU的信息,所述GPU可以执行与机器学习有关的作业。具体地,关于包括在多个外部服务器中的多个GPU的信息可以是关于多个GPU中的可用GPU的信息以及关于多个可用GPU对的带宽值的信息。这里,关于可用GPU的信息可以包括关于GPU是否正在执行与机器学习有关的作业的信息。此外,带宽意味着通信系统的数据的传输速率,且落入在两个GPU之间通信中传输数据的能力内,并且可以与在两个GPU之间通信中的可用数据的最大传输速度相关。
此外,多个可用GPU对的带宽值可意味着在外部服务器中所包括的多个GPU中未使用的以两个GPU为单位获取的多个GPU对中的每一对的带宽值。这里,GPU对的带宽值可以意味着构成一对的两个GPU之间的带宽值。
这里,GPU对可以是包括外部服务器中所包括的多个GPU的GPU对。这种GPU对可以被称为节点内。这里,节点可以意味着外部服务器。
GPU对可以是包括不同外部服务器中的每一者中所包括GPU的GPU对。例如,在GPU对中,可以包括第一外部服务器中所包括的GPU和第二外部服务器中所包括的GPU。这种GPU对可以被称为节点间。
通常,节点内的带宽值可以大于节点间的带宽值。
此外,通信接口110可以将学习数据发送到包括被分配来执行与机器学习有关的作业的GPU的外部服务器。
存储器120可以存储用于电子设备100的操作的各种程序和数据。具体地,在存储器120中,可以存储至少一个指令。处理器130可以通过执行存储在存储器120中的指令来执行电子设备100的操作。
存储器120可以实现为非易失性存储器、易失性存储器、闪存、硬盘驱动器(HDD)或固态驱动器(SSD)等。此外,存储器120可以由处理器130访问,并且处理器130可以执行对数据进行读取、记录、校正、删除、更新等操作。在一个实施例中,术语存储器可以包括存储器120、处理器130内的ROM、RAM、或安装在电子设备100上的存储卡(例如,微型SD卡、记忆棒)。
在存储器120中,可以存储从多个外部服务器接收的关于GPU是否被使用的信息以及GPU对的带宽值,其中包括在每个外部服务器中的GPU被组合成GPU对。这里,在存储于存储器120中的GPU对的带宽值中,可以包括未被使用的可用GPU对的带宽值,其中包括在每个外部服务器中的GPU被组合成GPU对。此外,当通过通信接口110从多个外部服务器周期性地接收关于GPU是否被使用的信息以及包括在每个外部服务器中的GPU所组合成的GPU对的带宽值时,存储器120可以周期性地更新关于GPU是否被使用的信息以及包括在每个外部服务器中的GPU所组合成的GPU对的带宽值,并存储它们。
此外,在存储器120中,可以存储与机器学习相关的输入作业所需的GPU对的带宽值或必要GPU的数量中的至少一者。
处理器130可以与通信接口110和存储器120电连接,并控制电子设备100的整体操作。具体地,处理器130可以通过执行存储在存储器120中的至少一个指令来控制电子设备100的整体操作。
根据一个实施例,处理器130可以被实现为数字信号处理器(DSP)、微处理器和时间控制器(TCON)。然而,这不是限制性的,并且处理器130可以包括中央处理单元(CPU)、微控制器单元(MCU)、微处理单元(MPU)、控制器、应用处理器(AP)或通信处理器(CP)以及ARM处理器中的一者或多者,或者可以由这些术语来定义。此外,处理器130可以实现为其中存储有处理算法或大规模集成(LSI)的片上系统(SoC),或者以现场可编程门阵列(FPGA)的形式实现。
处理器130可以通过通信接口110从多个外部服务器中的每一个接收多个GPU对的带宽值和关于所述多个GPU是否被使用的信息,包括在多个外部服务器中的多个GPU被组合成所述多个GPU对。
这里,通过通信接口110所接收的GPU对的带宽值是从多个外部服务器中的每一者测量,并且可以周期性地从多个外部服务器中的每一者接收GPU对的带宽值。例如,GPU对的带宽值可以基于预定周期从多个外部服务器接收,或者可以在每次输入与机器学习相关的作业并且发生GPU分配事件时从多个外部服务器接收。
下面将参照图3详细描述处理器130测量可执行与机器学习有关的作业的GPU的可用带宽的特定操作。
此外,当输入与机器学习相关的作业时,处理器130可识别执行包括在输入作业中的多个任务所需的GPU的数量和带宽值。这里,执行多个任务所需的GPU的数量可以与多个任务的数量相关,并且执行多个任务所需的带宽值可以意味着:当执行包括所述任务的作业时,GPU之间不会发生瓶颈现象的最小GPU带宽值。
这里,处理器130可以基于输入作业的各种属性获取执行多个任务所需的带宽值。具体地,输入作业的各种属性可以是机器学习模型的类型、机器学习模型的大小、数据集、批的大小或处理器130的处理性能中的至少一者。下面将参考图3详细描述获取执行多个任务所需的带宽值的处理器130的这种特定操作。
处理器130可确定多个GPU,其中将基于从多个外部服务器接收的多个GPU对的带宽值、关于从多个外部服务器接收的多个GPU是否被使用的信息(即,关于可用GPU的信息)、以及执行多个任务所需的经识别的GPU的数量和带宽值来执行多个任务中的每一者。
这里,处理器130可以分配可用GPU对中的GPU来执行输入作业,可用GPU对是通过组合多个外部服务器中所包括的多个GPU而获取的。在此情况下,处理器130可通过以下方式来确定可用GPU对:基于从多个外部服务器接收的关于GPU是否被使用的信息而排除多个GPU对中正被使用的GPU对。
处理器130可以在通过组合多个外部服务器中所包括的多个GPU而获取的GPU对中,识别带宽值大于或等于执行多个任务所需的带宽值的GPU对。
这里,处理器130可以基于执行包括在输入作业中的多个任务所需的GPU的数量,在带宽值大于或等于用于执行多个任务所需的带宽值的GPU对中依次识别具有最小带宽值的GPU对。例如,如果执行多个任务所需的GPU的数量是3,并且执行任务所需的GPU对的带宽值是100Gbps,则处理器130可以在通过组合多个外部服务器中所包括的多个GPU而获取的GPU对中识别带宽值大于或等于100Gbps的GPU对。处理器130可以例如通过从具有最小带宽值的GPU对开始依次识别三个GPU对,来在带宽值大于或等于100Gbps的GPU对中识别具有最小带宽值的三个GPU对。处理器130可将包括在三个经识别GPU对中的GPU确定为将执行三个任务中的每一者的GPU。
作为另一实例,处理器130可通过以下方式来获取包括至少一个GPU对的多个组:基于执行包括在输入作业中的多个任务所需的GPU的数量而组合可用GPU对。例如,如果包括在网络中的GPU的数量是4,并且执行多个任务所需的GPU的数量是2,则处理器130可以总共获取六个组,其中GPU以2为单位组合。这里,在每个组中,可以包括一个GPU对。作为又一示例,如果包括在网络中的GPU的数量是4,并且执行多个任务所需的GPU的数量是3,则处理器130可以获取四个组,其中GPU以3为单位组合。这里,在每个组中,可以包括三个GPU对。
处理器130可以基于预定策略确定所获取的多个组中的一个组。处理器130可将所确定的组中所包括的GPU确定为将执行多个任务中的每一者的GPU。
这里,当存在满足在多个GPU对中执行多个任务的条件的若干GPU对时,或者当不存在满足该条件的GPU对时,预定策略可以是用于确定执行多个任务的GPU对的标准。这种预定策略可以在执行与机器学习相关的作业之前被存储在存储器120中,并且它可以在电子设备100的制造过程期间由制造商设置,或者可以由用户设置。
作为一个实例,处理器130可以在其中包括在该组中的GPU对的最小带宽值大于执行多个任务所需的带宽值的组中,基于预定策略识别最小带宽为最小的组。处理器130可将所识别的组中所包括的多个GPU确定为用以执行多个任务中的每一者的多个GPU。
如果不存在其中GPU对的最小带宽值大于执行多个任务所需的带宽值的组,则处理器130可基于预定策略来识别其中GPU对的最小带宽值最大的组,并将包括在所识别的组中的多个GPU确定为执行所述多个任务中的每一个的多个GPU。
作为另一个例子,如果没有GPU对的最小带宽值大于执行多个任务所需的带宽值的组,则处理器130可以基于预定策略重新获取GPU对的组,直到获取GPU对的最小带宽值大于执行多个任务所需的带宽值的组。
下面将参考图10更详细地描述确定GPU对以执行输入作业的任务的策略。
通过将学习数据分别输入到被确定为执行任务的多个GPU,可以为每个GPU获取局部梯度,并且所获取的局部梯度中的每一者可以相互同步。这里,局部梯度表示基于输入到GPU的学习数据而包括在GPU中的参数的变化程度,并且基于经同步的局部梯度来学习包括在GPU中的参数。
这里,经同步的局部梯度可以是在每个GPU中获取的局部梯度的平均值。在此情况下,每一GPU可通过广播、分散、聚集、减少和全减少方法来同步局部梯度。特别地,与在分布式深度学习期间通过中心的参数的外部服务器来同步局部梯度的方法相比,全减小方法具有有效地使用带宽的优点。
下面将参考图8更详细地描述使多个GPU相互同步的上述操作。
图3是用于更详细地示出根据实施例的电子设备的处理器的操作的图。
参考图3,处理器130可包括可用带宽测量部分131、所需带宽估计部分132和GPU分配部分133。这里,可用带宽测量部分131、所需带宽估计部分132和GPU分配部分133中的每一者都可以实现为软件模块,或者可以是至少一个硬件芯片的形式。
可用带宽测量部分131是测量可用GPU对的带宽值的组件,用于在输入与机器学习相关的作业的情况下确定可执行包括在作业中的任务的GPU对。可用带宽测量部分131可以周期性地测量通过组合包括在多个外部服务器中的所有GPU中的两个或更多个而获取的GPU对的带宽值。具体地,可用带宽测量部分131可以周期性地从多个外部服务器接收GPU对的带宽值,并计算GPU对的可用带宽值。
例如,可用带宽测量部分131可以通过包括在云中的多个外部服务器(例如,虚拟机或物理机器)中的带宽测量应用编程接口(API)来测量GPU对的带宽的实际值。作为另一实例,可用带宽测量部分131可通过从经由组合包括在多个外部服务器中的所有GPU中的两者或两者以上而获取的所有GPU对中减去正被执行的机器学习作业所需的带宽总和的方法来测量可用带宽值。
如图4所示,由可用带宽测量部分131获取的可用带宽可根据连接云环境中的GPU对的通信/网络技术的类型而变化。此外,由可用带宽测量部分131获取的可用带宽(链路容量)可以根据与另一业务共享网络带宽的状态而变化。通常,节点内的带宽值大于节点间的带宽值。
所需带宽估计部分132是获取GPU的数量和所需GPU的最小带宽的组件,使得在输入与机器学习相关的作业的情况下,当通过使用多个GPU来执行与机器学习相关的作业时不会出现瓶颈现象。
这里,所需带宽估计部分132可基于学习模型的类型、学习模型的大小、数据集、批的大小和根据处理器的模型的处理性能中的至少一个属性来确定GPU的所需数量和GPU的所需带宽。
当输入与机器学习相关的作业时,可以提供与该作业相关的模板,如图5所示。在与作业相关的模板中,可以包括与GPU(gpu)的所需数量相关的字段、与所需带宽(interGPUbandwidth)相关的字段、指示在不存在满足最小带宽值(besteffortallowed)的GPU的情况下等是否允许尽力而为方法的字段等。
这里,在与作业相关的模板中指定输入作业中所需的GPU数量和所需带宽的情况下,所需带宽估计部分132可以获取指定数量的GPU和带宽值。参照图5,所需带宽估计部分132可将执行作业所需的GPU的数量获取为16,且将所需带宽值获取为1000Mbps。
在输入与未指定所需带宽值的机器学习相关的作业的情况下,所需带宽估计部分132可以基于与机器学习相关的输入作业的属性来计算GPU的所需数量和所需带宽值的估计值。具体而言,所需带宽估计部分132可基于学习模型的类型、学习模型的大小、数据集、批次的大小和根据处理器的模型的处理性能中的至少一者属性来估计GPU的所需数量和GPU的所需带宽。
作为另一个例子,所需带宽估计部分132可以将GPU的所需数量以及与先前执行的机器学习有关的作业的所需带宽值存储在存储器中,并且将GPU的经存储数量和带宽值中类似于与机器学习有关的输入作业的作业的GPU数量和带宽值估计为GPU的所需数量和与机器学习有关的输入的所需带宽值。
GPU分配部分133是基于在可用带宽测量部分131处获取的GPU对的带宽值以及在所需带宽估计部分132处获取的GPU的所需数量和用于执行作业的所需带宽值,在包括在多个外部服务器中的GPU之间分配用于执行输入作业的GPU的组件。
GPU分配部分133可以通过组合经由组合包括在多个外部服务器中的所有GPU而获取的GPU对来获取GPU对组。这里,GPU分配部分133可以获取多个组,使得多个组中的每一个包括基于在所需带宽估计部分132处获取的GPU数量的所需数量GPU。
GPU分配部分133可以在多个所获取的组中选择可用带宽值大于或等于所需带宽值的组作为候选组。这里,GPU分配部分133可以选择其中包括在组中的GPU对的最小带宽值大于所需带宽的组作为候选组。也就是说,GPU分配部分133可以选择可用带宽足够的GPU对组,使得在GPU之间的局部梯度的同步过程中不会出现瓶颈现象。
GPU分配部分133可在所选择的候选组中根据预定策略选择一个组,且将输入作业中包括的任务分配给组中包括的多个GPU中的每一者。这里,GPU分配部分133可以考虑任务中所需的带宽值和GPU中的带宽值来将每个任务分配给每个GPU。
如果在多个所获取的组中没有可用带宽值大于或等于所需带宽值的组,则GPU分配部分133可以根据基于预定策略的尽力而为方法从多个组中选择GPU对中最小带宽最大的组,或者从可用带宽测量部分131获取可用带宽值,直到获取到可用带宽值大于或等于所需带宽值的组。
作为一个例子,可以基于在例如图5所示的“besteffortallowed:false”输入作业中指定的信息来确定是基于尽力而为方法来选择组,还是从可用带宽测量部分131获取可用带宽值直到获取到可用带宽值大于或等于所需带宽值的组。例如,在信息被指定为“besteffortallowed:false”的情况下,GPU分配部分133可以从可用带宽测量部分131获取可用带宽值,直到获取到可用带宽值大于或等于所需带宽值的组。在信息被指定为“besteffortallowed:true”的情况下,GPU分配部分133可以根据尽力而为方法从多个组中选择其中GPU对的最小带宽是最大的一个组。下面将参考图10更详细地描述这种分配GPU的方法。
图6是用于说明在电子设备中包括GPU的情况下GPU分配方法的实例的图。
参照图6,电子设备100包括处理器130和多个GPU 61。为了便于解释,在图6中省略了通信接口和存储器,并且图6中所示的电子设备100的处理器130的可用带宽测量部分131、所需带宽估计部分132和GPU分配部分133基本上与图3中的组件相同,因此将省略重复的解释。
可用带宽测量部分131可通过确定是否使用GPU并使用从分别包括多个GPU的多个外部服务器200-1、200-2、200-3和200-4接收的GPU对的带宽值来测量可用带宽。这里,在电子设备100中包括多个GPU 61的情况下,可用带宽测量部分131可以测量包括在电子设备100中的多个GPU 61是否被使用以及GPU对之间的带宽值。
例如,参考图6,在包括在第一外部服务器200-1中的八个GPU中,第一GPU、第二GPU、第三GPU和第五GPU如阴影正方形所示正被使用,并且在包括在第二外部服务器200-2中的八个GPU中,第一GPU、第四GPU、第五GPU和第八GPU正被使用。可用带宽测量部分131可以从每个外部服务器接收关于正被使用的GPU的信息,并且获取关于在包括在电子设备100中的GPU之间正被使用的GPU的信息。此外,可用带宽测量部分131可以从多个外部服务器接收可用GPU被组合成的所有GPU对的带宽值,或者通过包括在电子设备100中的带宽测量API来测量带宽值。
这里,GPU对可以包括一个外部服务器中所包括的两个GPU(例如,如图7所示,包括第一外部服务器200-1的第六GPU和第八GPU的GPU对71,并且GPU对71可以被称为节点内),或者包括分别包括在不同的外部服务器中的GPU(例如,包括第一外部服务器200-1的第八GPU和第二外部服务器200-2的第六GPU的GPU对72,如图7所示,GPU对72可以被称为节点间)。
如果输入了与机器学习相关的作业10,则所需带宽估计部分132可以估计用于执行作业10的所需GPU的数量和所需带宽值。
GPU分配部分133可以基于在可用带宽测量部分131处获取的带宽值以及在所需带宽估计部分132处获取的GPU的数量和最小带宽值而在多个外部服务器200-1至200-4中所包括的多个GPU以及电子设备100中所包括的多个GPU 61中确定用于执行输入作业10的多个GPU。
在图6中,示出了多个外部服务器200-1至200-4以及电子设备100分别包括8个GPU,但是GPU的数量不限于此。
图8是用于说明在所分配的GPU之间同步局部梯度的操作的图。
参照图8,由电子设备确定的GPU 81-1和82-1至81-n可以通过使用包括在每个GPU中的参数来执行学习。具体而言,作为分配输入作业的学习数据的数据单元的批次被输入①到GPU 81-1至81-n中的每一个中,并且所确定的GPU 81-1至81-n中的每一个可以通过使用所输入的批次来获取②用于更新参数的局部梯度。这里,局部梯度可以表示参数的变化程度。
在GPU 81-1至81-n中的每一个处获取的局部梯度可以相互同步③。具体地,可以通过集体通信方法来同步局部梯度。这里,集合通信方法是指分布式处理环境中的GPU之间的通信方法,并且可以意味着在中心处不存在参数的外部服务器的情况下执行GPU之间的通信的方法。作为集合通信的类型,存在广播、分散、聚集、减少、全减少等,并且与通过中心的参数的外部服务器同步梯度的方法相比,其具有有效地使用带宽的优点。
集合通信方法的代表性示例是环全减少方法,并且在该方法中,GPU以在一个方向上发送数据的环(单向环)的形式连接,并且每个GPU通过在环拓扑上向相邻GPU发送数据来执行局部梯度的同步。
在对GPU③之间的局部梯度进行同步的过程中,GPU之间的网络带宽被消耗,如果GPU没有被适当选择,则在对局部梯度进行同步的过程中可能出现GPU之间的瓶颈现象,从而可能出现学习时间的增加和资源效率的降低。然而,根据实施例,用于执行与机器学习相关的作业的GPU基于可用带宽值和执行该作业所需的GPU的数量以及最小带宽值来分配,并且因此可以最小化在同步过程中可能发生的瓶颈现象。
然后,所确定的GPU 81-1至81-n中的每一个可以通过反映所同步的梯度来更新④参数。
图9是示出根据实施例的电子设备的控制方法的流程图。
参照图9,在操作S910中,电子设备可以从多个外部服务器中的每一个接收多个GPU对的带宽值和关于多个GPU是否被使用的信息。这里,从多个外部服务器接收的GPU对的带宽值可以从包括在每个外部服务器中的带宽测量API直接测量,或者可以通过从GPU对的带宽值中减去使用GPU对的作业的所需带宽值的和的方法来测量。
当输入与机器学习相关的作业时,在操作S920中,电子设备可以识别GPU的数量和执行包括在输入作业中的多个任务所需的带宽值。这里,执行输入作业所必需的GPU的数量可以对应于任务的数量。
电子设备可以基于作业的属性获取执行作业所需的GPU的数量和最小带宽值。例如,电子设备可以基于学习模型的类型、学习模型的大小、数据集、批次的大小或处理器的处理性能中的至少一者来获取执行作业所需的GPU的数量和带宽值。
作为示例,电子设备可以基于在与当输入作业时提供的作业相关的模板中指定的信息来获取GPU的数量和最小带宽值。作为另一个例子,电子设备可以存储先前执行的作业的GPU的数量和最小带宽值,并且从所存储的GPU的数量和最小带宽值中选择与输入作业类似的作业的GPU的数量和最小带宽值。
在图9中,示出了在测量可用带宽之后估计所需的带宽,但是不限于此次序。
在操作S930中,电子设备可以基于所接收的多个GPU对的带宽值、所接收的关于多个GPU是否被使用的信息、以及执行多个任务所需的GPU的数量和带宽值来确定多个GPU,在该多个GPU中将执行多个任务中的每一个。
这里,电子设备可以基于多个任务中的带宽值和GPU对的带宽值来确定将分配任务的GPU对,并且确定GPU对中所包括的多个GPU是用于执行任务的多个GPU。
在操作S940中,电子设备可以将与多个任务相关的学习数据发送到多个所确定的GPU。这里,发送到每个GPU的学习数据可以是分配学习数据的批次。
图10是示出根据实施例的分配GPU的电子设备的操作的流程图。
参照图10,首先,在操作S1010中,电子设备可以接收与机器学习有关的任务的输入。在操作S1020中,电子设备可以确定GPU对的带宽值和执行输入作业所需的GPU的数量。
在操作S1030中,电子设备可以获取包括在多个外部服务器中的多个GPU中的可用GPU对的带宽值。在操作S1040中,电子设备可基于所需数量的GPU来获取GPU对组。具体地,电子设备可以基于输入作业中的GPU的所需数量而在所有可用GPU对中获取GPU对被组合到其中的多个组。
在操作S1050中,电子设备可以在多个组中识别GPU对的最小带宽值大于或等于GPU对的所需带宽值的组。例如,如果在每个组中包括三个GPU对,则电子设备可以在多个组中识别三个带宽值中的最小带宽值大于或等于执行的作业所需的带宽值的组。
这里,如果存在最小带宽值大于或等于所需带宽值的组(操作S1060-Y),则在操作S1070中,电子设备可以基于预定策略确定多个组中的一个组。这里,当在多个GPU对中存在满足执行多个任务的条件的若干GPU对时,或者当不存在满足该条件的GPU对时,预定策略可以是用于确定执行多个任务的GPU对的标准。这样的预定策略可以在执行与机器学习有关的作业之前被存储在存储器中,并且它可以在电子设备的制造过程期间由制造商设置,或者可以由用户设置。
作为一个实例,电子设备可以基于预定策略而在组中所包括的GPU对的最小带宽值大于执行多个任务所需的带宽值的组中识别最小带宽为最小的组,并且将包括在所识别的组中的GPU对确定为执行多个任务中的每一个的多个GPU。
如果没有最小带宽值大于或等于所需带宽值的组(操作S1060-N),则在操作S1080中,电子设备可以确定是否允许尽力而为方法(besteffortallowed)。这里,如果允许尽力而为方法(besteffortallowed=true)(操作S1080-Y),则在操作S1090中,电子设备可以选择GPU对的最小带宽值是最大的一组。
如果不允许尽力而为方法(besteffortallowed=false)(操作S1080-N),则电子设备可以返回到从多个外部服务器获取可用GPU对的带宽值的操作S1030,并且重复操作S1030到S1050,直到获取到最小带宽值大于所需带宽值的组。
根据上述各种实施例,基于可用GPU的带宽值和作业中所需的带宽值来分配GPU,且因此,可最小化在局部梯度的同步过程期间可能发生的瓶颈现象。因此,可以减少机器学习过程所花费的时间,并且可以有效地使用资源。
上述各种实施例可以通过使用可由计算机或类似于计算机的设备读取的记录介质,通过使用软件、硬件或其组合来实现。根据通过硬件的实现,可以通过使用用于执行各种功能的专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器或电子单元中的至少一者来实现实施例。在一些情况下,本说明书中所描述的实施例可实施为处理器本身。根据通过软件的实现,本说明书中描述的诸如过程和功能的实施例可以被实现为单独的软件模块。每个软件模块可以执行本说明书中描述的一个或多个功能和操作。
执行根据上述实施例的方法的软件可以存储在非暂时性计算机可读介质中。这种非暂时性计算机可读介质可以在安装在各种设备上时使用。
非暂时性计算机可读介质是指半永久地存储数据并且可由机器读取的介质,而不是在短时间内存储数据的介质,例如寄存器、高速缓存和存储器。具体地,可以在存储到诸如CD、DVD、硬盘、蓝光盘、USB、存储卡、ROM等的非暂时性计算机可读介质中的同时提供上述各种应用或程序。
此外,根据本文描述的实施例的方法可以在被包括在计算机程序产品中的同时被提供。计算机程序产品是指一种产品,它可以在卖方和买方之间进行交易。计算机程序产品可以以机器可读的存储介质(例如,光盘只读存储器(CD-ROM))的形式在线分发,或者通过应用程序存储器(例如,Google PlayTM)分发。在在线分发的情况下,计算机程序产品的至少一部分可以至少临时地被存储在存储介质中,诸如制造商的外部服务器、应用商店的外部服务器、以及外部中继服务器的存储器,或者可以被临时地生成。
虽然已经参考附图具体示出和描述了某些实施例,但是提供这些实施例是为了说明的目的,并且本领域的普通技术人员将理解,可以根据本公开做出各种修改以及等同的其它实施例。因此,本公开的实际技术范围由所附权利要求的技术精神来限定。
Claims (15)
1.一种电子设备,包括:
通信接口,配置成与包括多个图形处理单元(GPU)的多个外部服务器通信;
存储器,包括至少一个指令;以及
处理器,配置成通过执行所述至少一个指令来控制所述电子设备,
其中所述处理器进一步配置成:
通过所述通信接口分别从所述多个外部服务器接收由所述多个GPU组合而成的多个GPU对的带宽值以及关于所述多个GPU是否被使用的信息,
基于接收到与机器学习相关的输入作业,识别执行所述输入作业中所包括的多个任务所需的GPU的数量和带宽值,
基于所述多个GPU对的带宽值、所接收的关于所述多个GPU是否被使用的信息、以及执行所述多个任务所需的GPU的数量和带宽值,从所述多个GPU中确定执行所述多个任务的GPU,以及
控制所述通信接口将与所述多个任务相关的学习数据发送到所确定的GPU。
2.根据权利要求1所述的电子设备,其中所述处理器进一步配置成:
基于所接收的关于所述多个GPU是否被使用的信息,识别所述多个GPU中的可用GPU,
基于执行所述多个任务所需的GPU的数量和带宽值,将所述可用GPU组合为可用GPU对,
通过将所述可用GPU对中的至少一个可用GPU对包括到多个组中的每个组中来识别所述多个组,
基于预定策略确定所述多个组中的组,以及
将所确定的组中所包括的GPU分别确定为执行多个任务的GPU。
3.根据权利要求2所述的电子设备,其中所述处理器进一步配置成基于所述预定策略通过以下方式来确定所述组:
在所述多个组中识别其中所包括的所述至少一个可用GPU对具有大于或等于执行所述多个任务所需的带宽值的带宽值的组,且将所述组中包含具有最小带宽值的至少一个可用GPU对的组中所包括的GPU确定为执行所述多个任务的GPU。
4.根据权利要求3所述的电子设备,其中所述处理器进一步配置成:
在所述多个组中不存在其中所述至少一个可用GPU对的带宽值大于或等于执行所述多个任务所需的带宽值的组的情况下,将所述多个组中的、其中所包括的所述至少一个可用GPU对的带宽值最大的组中所包括的GPU确定为执行所述多个任务的GPU。
5.根据权利要求1所述的电子设备,其中所述处理器进一步配置成:
在所述多个GPU对中识别带宽值大于或等于执行所述多个任务所需的经识别带宽值的候选GPU对,
基于执行所述输入作业所需的带宽值的顺序和GPU的数量,依次识别所述候选GPU对中具有最小带宽值的GPU对,并将所述GPU对中所包括的GPU分别确定为执行所述多个任务的GPU。
6.根据权利要求1所述的电子设备,其中所述多个GPU对包括第一GPU对和第二GPU对,所述第一GPU对包括外部服务器中所包括的多个第一GPU,所述第二GPU对包括所述多个外部服务器中彼此不同的外部服务器中所包括的多个第二GPU。
7.根据权利要求1所述的电子设备,其中所述处理器进一步配置成基于接收由所述多个外部服务器测量的所述多个GPU对的带宽值来确定可用带宽,
其中,通过所述通信接口从所述多个外部服务器周期性地接收带宽值。
8.根据权利要求1所述的电子设备,其中所述存储器配置成存储与所述多个GPU对中正被使用的GPU对的带宽值有关的信息,
所述处理器进一步配置成:
通过排除正被使用的GPU对来确定所述多个GPU对中的用于执行所述输入作业的GPU。
9.根据权利要求1所述的电子设备,其中通过将所述学习数据输入到所确定的GPU中的每一者而获取的多个局部梯度是相互同步的,所述多个局部梯度基于所述学习数据而指示所确定的GPU中所包括的参数的变化程度。
10.根据权利要求9所述的电子设备,其中所述GPU中所包括的所述参数是基于经同步的多个局部梯度而训练的。
11.一种用于控制电子设备的方法,所述方法包括:
分别从包括多个图形处理单元(GPU)的多个外部服务器接收由所述多个GPU组合而成的多个GPU对的带宽值以及关于所述多个GPU是否被使用的信息;
基于接收到与机器学习相关的输入作业,识别执行所述输入作业中所包括的多个任务所需的GPU的数量和带宽值;
基于所述多个GPU对的带宽值、所接收的关于所述多个GPU是否被使用的信息以及执行所述多个任务所需的GPU的数量和带宽值,确定用于执行所述多个任务的所述多个GPU中的GPU;以及
将与所述多个任务相关的学习数据发送到所确定的GPU。
12.根据权利要求11所述的方法,其中确定GPU进一步包括:
基于所接收的关于所述多个GPU是否被使用的信息,识别所述多个GPU中的可用GPU;
基于执行所述多个任务所需的GPU的数量和带宽值,将所述可用GPU组合为可用GPU对;
通过将所述可用GPU对中的至少一个可用GPU对包括到多个组中的每个组中来识别所述多个组;
基于预定策略确定所述多个组中的组;以及
将所确定的组中所包括的GPU分别确定为执行多个任务的GPU。
13.根据权利要求12所述的方法,其中基于所述预定策略确定所述组包括:
在所述多个组中识别其中所包括的所述至少一个可用GPU对具有大于或等于执行所述多个任务所需的带宽值的带宽值的组;以及
将所述组中包含具有最小带宽值的至少一个可用GPU对的组中所包括的GPU确定为执行所述多个任务的GPU。
14.根据权利要求13所述的方法,其中确定GPU进一步包括:
在所述多个组中不存在其中所述至少一个可用GPU对的带宽值大于或等于执行所述多个任务所需的带宽值的组的情况下,将所述多个组中的、其中所包括的所述至少一个可用GPU对的带宽值最大的组中所包括的GPU确定为执行所述多个任务的GPU。
15.根据权利要求11所述的方法,其中确定GPU进一步包括:
在所述多个GPU对中识别带宽值大于或等于执行所述多个任务所需的经识别带宽值的候选GPU对;
基于执行所述输入作业所需的带宽值的顺序和GPU的数量,依次识别所述候选GPU对中具有最小带宽值的GPU对;以及
将所述GPU对中所包括的GPU分别确定为执行所述多个任务的GPU。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0100171 | 2019-08-16 | ||
KR1020190100171A KR20210020570A (ko) | 2019-08-16 | 2019-08-16 | 전자 장치 및 이의 제어 방법 |
PCT/KR2020/010828 WO2021034024A1 (en) | 2019-08-16 | 2020-08-14 | Electronic apparatus and method for controlling thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114207636A true CN114207636A (zh) | 2022-03-18 |
Family
ID=74567785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080056192.1A Pending CN114207636A (zh) | 2019-08-16 | 2020-08-14 | 电子设备及其控制方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11609793B2 (zh) |
EP (1) | EP3987398A4 (zh) |
KR (1) | KR20210020570A (zh) |
CN (1) | CN114207636A (zh) |
WO (1) | WO2021034024A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115129651A (zh) * | 2022-06-29 | 2022-09-30 | 苏州浪潮智能科技有限公司 | 一种多gpu数据传输方法、装置、设备及存储介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968478A (zh) * | 2018-03-06 | 2022-08-30 | 华为技术有限公司 | 一种数据处理的方法、装置、服务器和系统 |
EP4038486A4 (en) * | 2020-11-17 | 2023-02-22 | Zhejiang Dahua Technology Co., Ltd | DATA STORAGE AND PROCESSING SYSTEMS AND PROCEDURES |
KR102296907B1 (ko) * | 2021-03-02 | 2021-09-01 | 주식회사 에이아이댑스 | 블록체인 기반 클라우드 서비스 제공 방법 및 시스템 |
CN113516250B (zh) * | 2021-07-13 | 2023-11-03 | 北京百度网讯科技有限公司 | 一种联邦学习方法、装置、设备以及存储介质 |
CN114285766B (zh) * | 2021-08-20 | 2023-06-13 | 腾讯科技(深圳)有限公司 | 一种网络带宽检测方法、装置、电子设备和存储介质 |
CN117539631B (zh) * | 2023-11-20 | 2024-08-09 | 摩尔线程智能科技(北京)有限责任公司 | Gpu系统的控制方法、装置、电子设备和存储介质 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006338264A (ja) | 2005-06-01 | 2006-12-14 | Toyota Infotechnology Center Co Ltd | タスク割当装置およびタスク割当方法 |
US7730119B2 (en) | 2006-07-21 | 2010-06-01 | Sony Computer Entertainment Inc. | Sub-task processor distribution scheduling |
US20110213998A1 (en) | 2008-06-11 | 2011-09-01 | John George Mathieson | System and Method for Power Optimization |
WO2014052843A1 (en) | 2012-09-28 | 2014-04-03 | Cycle Computing, Inc. | Real time optimization of compute infrastructure in a virtualized environment |
KR101594915B1 (ko) | 2014-01-23 | 2016-02-17 | 서울대학교산학협력단 | 매니코어 클러스터 시스템 상에서 병렬 프로그래밍을 수행하는 방법 및 매니코어 클러스터 시스템 |
CN106155807A (zh) * | 2015-04-15 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种实现资源调度的方法与设备 |
US10142195B1 (en) | 2015-09-30 | 2018-11-27 | EMC IP Holding Company LLC | Partitioned performance tracking core resource consumption independently |
US10896064B2 (en) | 2017-03-27 | 2021-01-19 | International Business Machines Corporation | Coordinated, topology-aware CPU-GPU-memory scheduling for containerized workloads |
CN106959891A (zh) | 2017-03-30 | 2017-07-18 | 山东超越数控电子有限公司 | 一种实现gpu调度的集群管理方法和系统 |
CN107135257A (zh) | 2017-04-28 | 2017-09-05 | 东方网力科技股份有限公司 | 一种节点集群中任务分配的方法、节点和系统 |
US10325343B1 (en) * | 2017-08-04 | 2019-06-18 | EMC IP Holding Company LLC | Topology aware grouping and provisioning of GPU resources in GPU-as-a-Service platform |
JP2019067084A (ja) | 2017-09-29 | 2019-04-25 | 富士通株式会社 | 情報処理システム、情報処理装置、及び、転送先決定方法 |
US11164079B2 (en) * | 2017-12-15 | 2021-11-02 | International Business Machines Corporation | Multi-GPU deep learning using CPUs |
CN109992407B (zh) | 2018-01-02 | 2020-11-20 | 中国移动通信有限公司研究院 | 一种yarn集群gpu资源调度方法、装置和介质 |
US10698766B2 (en) * | 2018-04-18 | 2020-06-30 | EMC IP Holding Company LLC | Optimization of checkpoint operations for deep learning computing |
CN109033001B (zh) | 2018-07-17 | 2021-08-27 | 北京百度网讯科技有限公司 | 用于分配gpu的方法和装置 |
US10893120B2 (en) * | 2018-09-19 | 2021-01-12 | International Business Machines Corporation | Data caching and data-aware placement to accelerate machine learning applications |
CN109933430B (zh) | 2019-03-08 | 2022-02-25 | 北京百度网讯科技有限公司 | 分配图形处理器的方法和装置 |
-
2019
- 2019-08-16 KR KR1020190100171A patent/KR20210020570A/ko not_active Application Discontinuation
-
2020
- 2020-08-13 US US16/992,887 patent/US11609793B2/en active Active
- 2020-08-14 EP EP20853861.1A patent/EP3987398A4/en active Pending
- 2020-08-14 WO PCT/KR2020/010828 patent/WO2021034024A1/en unknown
- 2020-08-14 CN CN202080056192.1A patent/CN114207636A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115129651A (zh) * | 2022-06-29 | 2022-09-30 | 苏州浪潮智能科技有限公司 | 一种多gpu数据传输方法、装置、设备及存储介质 |
CN115129651B (zh) * | 2022-06-29 | 2024-06-07 | 苏州浪潮智能科技有限公司 | 一种多gpu数据传输方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20210020570A (ko) | 2021-02-24 |
WO2021034024A1 (en) | 2021-02-25 |
EP3987398A1 (en) | 2022-04-27 |
EP3987398A4 (en) | 2022-08-31 |
US20210049042A1 (en) | 2021-02-18 |
US11609793B2 (en) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114207636A (zh) | 电子设备及其控制方法 | |
WO2021136137A1 (zh) | 一种资源调度方法、装置及相关设备 | |
CN112153700B (zh) | 一种网络切片资源管理方法及设备 | |
CN105511954B (zh) | 一种报文处理方法及装置 | |
WO2018177012A1 (zh) | 一种控制带宽的方法、装置和设备 | |
US8751657B2 (en) | Multi-client storage system and storage system management method | |
CN113098773B (zh) | 数据处理方法、装置及系统 | |
EP3253027A1 (en) | Resource allocation method and apparatus for virtual machines | |
US9606945B2 (en) | Access controller, router, access controlling method, and computer program | |
US20180285294A1 (en) | Quality of service based handling of input/output requests method and apparatus | |
JP6519111B2 (ja) | データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置 | |
CN111142788B (zh) | 一种数据迁移方法、装置和计算机可读存储介质 | |
US9063929B2 (en) | Information processing apparatus, information processing method, computer-readable recording medium having stored therein program | |
US20150212958A1 (en) | Data transmission apparatus, communication control method, and communication control program | |
CN107544845B (zh) | Gpu资源调度方法及装置 | |
CN111625592A (zh) | 分布式数据库的负载均衡方法和装置 | |
CN114629849A (zh) | 存储设备及其操作方法 | |
WO2023045552A1 (zh) | 服务部署方法、服务部署系统、电子设备及存储介质 | |
CN110035128A (zh) | 一种直播调度方法、装置、直播系统及存储介质 | |
US10419300B2 (en) | Cost management against requirements for the generation of a NoC | |
CN111400241B (zh) | 数据重构方法和装置 | |
CN116827797A (zh) | PCIe带宽分配方法及服务器 | |
CN114285766B (zh) | 一种网络带宽检测方法、装置、电子设备和存储介质 | |
CN111026699B (zh) | 基于环形总线的多核网络通信方法、装置及系统 | |
CN115525419A (zh) | 神经网络模型的训练方法、装置、系统及存储介质 |
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 |