CN114661480A - 深度学习任务资源分配方法和系统 - Google Patents
深度学习任务资源分配方法和系统 Download PDFInfo
- Publication number
- CN114661480A CN114661480A CN202210564956.9A CN202210564956A CN114661480A CN 114661480 A CN114661480 A CN 114661480A CN 202210564956 A CN202210564956 A CN 202210564956A CN 114661480 A CN114661480 A CN 114661480A
- Authority
- CN
- China
- Prior art keywords
- resource
- task
- resources
- heterogeneous
- cpu
- 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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
-
- 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/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种深度学习任务资源分配方法和系统。所述资源分配方法包括:采集CPU资源和异构资源的工作状态;根据采集的工作状态构造资源特征;根据用户提交的深度学习任务构造任务特征;根据所述资源特征和所述任务特征确定针对所述任务的资源分配决策结果;以及基于所述资源分配决策结果,向所述深度学习任务分配CPU资源和异构资源。本方案能够在平台层面优化对CPU资源和异构资源的调度。具体地,该方案利用池化技术将异构的资源抽象为统一的资源池,通过对资源状态的实时采集和智能决策,结合现有的云平台容器化管理应用,实现全平台CPU和异构资源的高利用率智能调度。
Description
技术领域
本公开涉及一种深度学习领域,尤其涉及一种深度学习任务资源分配方法和系统。
背景技术
基于深度学习的人工智能技术的革新大大推动了计算机视觉,自然语言处理,医学等领域的发展,并在学术界和工业界都受到了极大的关注。目前,深度学习任务的数据处理和训练位于同一段代码中,被一并编译并在相同的机器上运行。然而,不同深度学习任务所需要的通用计算资源(例如,利用CPU进行数据处理)与专用异构计算资源(例如,利用GPU、FPGA或ASIC进行神经网络训练)的配比差异较大,这种多样性导致计算设备的硬件资源配比无法满足任务需求。在计算平台配备大型CPU和异构计算集群时,如上问题尤为凸显。
为此,需要一种能够提升深度学习平台整体计算效率的方法。
发明内容
本公开要解决的一个技术问题是提供一种深度学习任务资源分配方法和系统,能够在平台层面优化对CPU资源和异构资源的调度。具体地,该优化方案利用池化技术将异构的资源抽象为统一的资源池,通过对资源状态的实时采集和智能决策,结合现有的云平台容器化管理应用,实现全平台CPU和异构资源的高可用高利用率智能调度。
根据本公开的第一个方面,提供了一种深度学习任务资源分配方法,包括:采集CPU资源和异构资源的工作状态;根据采集的工作状态构造资源特征;根据用户提交的深度学习任务构造任务特征;根据所述资源特征和所述任务特征确定针对所述任务的资源分配决策结果;以及基于所述资源分配决策结果,向所述深度学习任务分配CPU资源和异构资源。
可选地,所述方法还包括:将包括CPU的计算节点作为CPU计算节点加入CPU计算节点集合;对计算节点包括的异构硬件进行分析并将分析得到的计算能力和显存加入异构资源池,其中,所述采集CPU资源和异构资源的工作状态包括:实时采集所述CPU计算节点集合内各个CPU计算节点的工作状态;以及实时采集所述异构资源池内各个异构硬件的计算能力和显存的使用状态。
可选地,所述采集CPU资源和异构资源的工作状态包括:实时采集连通CPU计算节点和异构资源池的高速网络的网络状态;以及实时采集CPU计算节点和异构资源绑定状态。
可选地,对用户提交的深度学习任务进行任务特征分析包括:估算用户提交的所述深度学习任务所需的CPU计算资源和异构资源;以及根据估算的所需的CPU计算资源和异构资源进行任务特征分析。
可选地,根据资源特征和任务特征确定针对所述任务的资源分配决策结果包括:将任务特征和资源特征进行向量化表示;将向量化表示生成的特征向量送入调度策略价值评估网络;以及获取调度策略价值评估网络的输出结果作为所述资源分配决策结果。
可选地,所述调度策略价值评估网络的参数基于强化学习进行自适应调整,以获取优化的调度策略。
可选地,根据资源特征和任务特征确定针对所述任务的资源分配决策结果包括:基于当前的调度策略选择,确定当前调度策略下针对所述任务的资源分配决策结果。
可选地,基于所述资源分配决策结果,向所述深度学习任务分配CPU资源和异构资源包括:基于所述资源分配决策结果,向所述深度学习任务分配CPU计算资源和异构资源;以及在分配的CPU计算资源所在的节点上建立用于与异构资源通信的虚拟异构资源代理。
可选地,所述方法还包括:基于分配的CPU计算资源和虚拟异构资源代理构建任务单元;以及将用户提交的深度学习任务发送给所述任务单元进行执行。
根据本公开的第二个方面,提供了一种深度学习任务资源分配系统,包括:计算服务器集群,用于为计算平台提供CPU资源和异构资源以进行深度学习计算;工作状态采集节点,用于采集所述计算服务器集群中CPU资源和异构资源的工作状态;智能决策节点,用于根据采集的工作状态构造资源特征,对用户提交的深度学习任务构造任务特征,并根据资源特征和任务特征确定针对所述任务的资源分配决策结果;以及资源分配节点,用于基于所述资源分配决策结果,向所述深度学习任务分配CPU资源和异构资源。
根据本公开的第三个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一方面所述的方法。
根据本公开的第四个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一方面所述的方法。
由此,本发明对不同的异构资源进行了统一的资源抽象,对外体现简单的计算能力和显存,极大的降低了不同异构资源的使用和调度难度;采集了的硬件性能数据,由智能决策节点辅助资源分配节点进行资源状态分析,能够更加精细化的对资源进行控制。进一步地,可以使用图神经网络对深度学习任务和异构资源进行描述,再通过强化学习的迭代达到调度优化,能够极大的提升资源调度能力。通过改变强化学习的奖励,可以适配多种分配策略,能够满足多种用户的资源使用诉求。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1A-图1B示出了本发明中进行计算图划分以及异步执行的一个例子。
图2示出了根据本发明一个实施例的深度学习任务资源分配方法的示意性流程图。
图3示出了根据本发明一个实施例的深度学习任务资源分配系统的组成示意图。
图4示出了根据本发明的深度学习任务资源分配系统进行计算资源调度的一个例子。
图5示出了根据本发明一个实施例可用于实现上述深度学习任务资源分配方法的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
机器学习近年得到迅速发展,在图像分类、检测、视频和语音处理等领域取得良好的应用效果,并且依然具备极大的发展前景。深度学习是机器学习的分支,是一种以人工神经网络为架构,对数据资料进行表征学习的算法。在机器学习平台上进行的机器学习任务尤其可以认为是深度学习平台上进行的深度学习任务。神经网络的工作负载特征是计算和数据密集。神经网络计算所需的乘加操作通常为G数量级,而计算所需参数则通常为M至数百M字节数量级等。
神经网络的具体算法可基于深度学习计算框架实现。深度学习计算框架是指端到端的深度学习任务平台,各种深度学习框架往往都拥有各自的生态系统,其中包含各种工具、库等资源,可助力开发者,使其能够轻松地构建和部署由深度学习提供支持的应用。深度学习框架通过高级编程接口为神经网络的设计、训练和验证提供了构建模块。
在实际执行时,由于神经网络巨大的参数规模、庞大的计算量和极高并行度的特点,以及对于硬件平台稳定性和高计算能耗比的要求,常规的CPU已经无法满足神经网络的计算需求。为此,利用FPGA、GPU、ASIC等异构处理器实现的深度计算加速器成为领域内的必然选择。例如,现有的深度学习专用GPU已经可以配置多达几千的计算核,并通过高度优化的调度实现强大的并行乘加计算。
然而,这些异构处理器的出现并不能在深度学习任务中完全去除对通用计算单元(即,CPU)的需要。这是因为深度学习数据集需要经过一系列的操作,才能转换为深度学习模型能够理解的形式。这些转换操作,并不适合如上所述的诸如GPU的异构处理器进行执行,而通常由通用计算单元执行。这些操作通常包括但不限于数据准备和数据预处理等,通过将数据转换成深度学习模型可以理解并使用的形式来驱动接下来的模型训练或推理。
在现有的深度学习领域中,存在各类的深度学习任务。由于模型中CPU密集的预处理操作的量彼此相差甚远,因此这些深度学习任务对CPU资源有着不同的要求。举例而言,针对处理能力相对固定的CPU和GPU,对CPU和GPU的需求比可以从2到64。这意味如果在一台8-GPU的机器上运行多个WDL或DeepFM任务,将会需要至少512个CPU核才能跟上GPU的数据消耗速度。而在同样的8-GPU的机器上运行Bert任务时,则仅需要16个CPU核。由于通常无法确定某一台机器上要运行的深度学习任务的类型,因此无论配备更多或是更少的CPU,都会因为CPU与GPU比例的失配而导致硬件利用效率低下的问题。
传统的GPU使用方法是本机使用,资源分配的调度逻辑是选择给作业选择合理的物理机器,除了如上所述的资源失配问题之外,还涉及如下缺点:
(1)单机资源切割不合理,导致任务无法找到合适的GPU资源,最终导致作业失败;
(2)不同的硬件资源需要不同的调度策略,上层调度方案极其复杂;
(3)遇到故障无法快速迁移,只能进行重新调度。
另外,异构资源只能作为本地资源使用还会使得资源的灵活性、容错性无法保证:在服务器中封装硬件设备后,后续将难以对硬件进行添加、删除或更改,而且将多种异构设备全部装载到同一个服务器上会使得计算资源成本高昂。
因此在为广大用户提供深度学习计算服务的平台层面,更加需要一种能够将通用计算和异构计算解绑,并在平台层面上加以调度,由此提升平台整体计算效率的智能调度方案。
在平台层面进行CPU和异构资源调度优化的前提在于深度学习任务中需要CPU执行的部分和需要异构资源执行的部分不再局限在同一台物理机器上执行。即,深度学习任务中,数据处理和训练处理需要被解耦。
在本发明的一个实现中,可以通过对计算图的划分来实现同一训练任务中数据处理和训练处理的解耦。图1A-图1B示出了本发明中进行计算图划分以及异步执行的一个例子。
具体地,如下结合图1A展示了优化切图策略如何能够自动化地从一张原始的数据流图中识别出可以被分离到CPU侧执行的最大范围。
由于深度学习框架TensorFlow提供了tf.data.service库,因此用户可以依据已有的tf.data算子来对代码进行手动重构,从而实现一定程度上的预处理部分加速。训练数据集可经由计算图中的Dataset(数据集)、Map(映射)和Iterator(迭代器)的tf.data算子而进行初步处理,并且可以如图所示,基于tf.data算子的身份来对计算图进行简单的划分。然后上述切分的范围不够优化,因为非tf.data算子(如图所示的stringOps(字符串算子)、Unique(去重)、Validation(去除不合法)算子)实际上也是可由CPU异步执行的算子。
为此,在一个实施例中,可以从计算图的角度定义了数据预处理部分的子图,即该子图中的节点不会进行反向传播。因为假如节点需要反向传播,在每一个训练步骤中节点都需要等待后向计算更新完参数后才能处理下一个步骤,无法异步地提前进入下一个步骤。从数据流图的角度来看,没有后向计算这一属性可以解释为节点不依赖于有状态节点(即用于维护模型参数的节点),因为只要一个节点位于所有有状态节点的上游,就可以异步执行而无需等待状态更新。
由此,基于节点状态有无的划分标准,如图所示的stringOps(字符串算子)、Unique(去重)、Validation(去除不合法)算子以及其他涉及数据变换(例如,图形变换)的算子也可被划入数据处理子图。而只有在行进到图示的左侧特征列涉及读取Embedding表(嵌入表)的EmbeddingLookup(嵌入查找)节点时,才由于涉及该特征列的嵌入读取而遇到第一个有状态节点。此时,可以依据规定的切分标准,在EmbeddingLookup节点的输入边(即,上部)进行切分(如图1A左侧的×符号所示)。
类似地,图示的右侧特征列所涉及的算子仅涉及数据预处理,而由于并入主干后Matmul(乘加)算子需要进行涉及该特征列的嵌入读写操作,因此可以在右侧特征列与主干算子Matmul算子的连接边上进行切分(如图2右侧的×符号所示)。可以对其他特征列进行类似的操作,由此实现优化的划分。
在实际操作中,可以采用优化的图划分算法来进行计算图划分。在划分了之后,还可以在每一条被划分的边的两侧,增加一对通信节点。以图2所示的计算图为例,可以在左侧×符号的上端添加一个DWSend节点(即,在其他转换之后),在左侧×符号的下端添加一个DWRecv节点(即,在EmbeddingLookup节点之上);同样地,可以在右侧×符号的上端添加一个DWSend节点(即,在右侧的其他转换之后),在右侧×符号的下端添加一个DWRecv节点(即,在Matmul节点之上)。
由此,在被划分出的数据处理子图中,左侧特征列经过其他变换所得到的经处理的数据,可最终交由该DWSend节点发送,并由被划分出的训练处理子图中的左侧对应DWRecv节点接收。类似地,左侧特征列经过其他变换所得到的经处理的数据,可最终交由右侧DWSend节点发送,并由被划分出的训练处理子图中的右侧对应DWRecv节点接收。图1B示出了在图划分后通过插入通信算子来实现数据通信的例子。由此,通过优化的划分策略,能够对计算图进行更为合理的划分,使得尽可能多的适合CPU处理的数据处理部分被分类上部的DW(数据工作)子图,并将需要进行反向传播而无法被处理的算子归入下部的TW(训练工作)子图。TW子图可由异构资源执行,并通过两侧通信算子经由高速网络进行通信。虽然在图中没有示出,在某些实施例中,还可以支持动态伸缩,例如,复制DW子图和/或TW子图,以提升数据处理或是训练处理的并行度。
如上,通过计算图的划分以及通信节点的添加,能够实现同一个深度学习任务的数据处理部分由CPU资源执行,执行得到的经处理数据经由高速网络发送给非本地的异构资源,并由该异构资源针对经处理数据执行训练子图,由此为针对CPU资源和异构资源的全平台优化调度提供了基础。
针对本地执行CPU和异构资源严重失配的问题,本发明在深度学习任务,尤其是深度任务能够被划分并异步执行的前提下,提出一种深度学习任务资源分配方案,能够在平台层面优化对CPU资源和异构资源的调度。具体地,该优化利用池化技术将异构的资源抽象为统一的资源池,通过对资源状态的采集和智能决策,结合现有的云平台容器化管理应用,实现全平台CPU和异构资源的高可用高利用率智能调度。
图2示出了根据本发明一个实施例的深度学习任务资源分配方法的示意性流程图。该方法可以由实现为深度学习计算平台的深度学习任务资源分配系统执行,用于对深度学习任务,尤其是深度学习任务的调度进行优化。
在步骤S210,采集CPU资源和异构资源的工作状态。在此,采集的CPU资源和异构资源是深度学习计算平台上的CPU和异构服务器集群内的运算资源,即,是平台“全局”能够提供用以进行深度学习计算的资源,并且通常包括针对大量的CPU和异构服务器的物理设备所抽象出的资源。在一些实施例中,同一台物理计算服务器上通常同时安装有CPU和异构资源,例如作为协处理器的GPU,此时需要分别采集这台服务器上的CPU资源信息和异构资源信息,并且汇总到平台以供调度。
例如,计算平台的计算服务器集群配备了1000台可用的计算服务器,这1000台计算服务台可以具有统一的硬件配置,例如,每台服务器都配备有统一型号的CPU和GPU,或是可以具有不同的硬件配置,例如各台服务器的CPU处理能力不同,并且各台服务器可以安装有不同的异构硬件(例如,GPI/IPU/AI卡等等)。此时,在一个实施例中,可以基于统一的分析方法,来计算每台机器各自包括的CPU资源和异构资源,并将其各自汇总到平台的CPU资源池和异构资源池中。在一个优选实施例中,例如在使用kubernets(如下简称“k8s”)参与调度的实施例中,由于k8s具备CPU资源分配功能,因此可以将平台的CPU资源池实现为一个个的CPU计算节点;而对各式各样的异构硬件则可基于其计算能力和显存进行抽象。在此,计算能力(computecapability)可以用于表示GPU进行运算处理的能力。例如,在一个实施例中,可以使用TOPS为单位来进行计算能力的表征。在此,TOPS是Tera Operations PerSecond的缩写,1TOPS代表处理器每秒钟可进行一万亿次(10^12)操作。在另一个实施例中,针对特定异构硬件厂商,例如特定GPU厂商,设备的计算能力由版本号表示,并可由应用程序在运行时用于确定当前 GPU 上可用的硬件功能(包括硬件运算能力)和/或指令。
于是,本发明的深度学习任务资源分配方法还可以包括:将包括CPU的计算节点作为CPU计算节点加入CPU计算节点集合;以及对计算节点包括的异构硬件进行能力分析,并将基于对异构硬件进行能力分析得到的计算能力和显存加入异构资源池。此时,步骤S210中采集的工作状态包括:实时采集所述CPU计算节点集合内各个CPU计算节点的工作状态;以及实时采集所述异构资源池内各个异构硬件的计算能力和显存的使用状态。
进一步地,由于平台调度存在大量异构计算在CPU计算节点所处物理服务器之外的非本地执行情况,因此,所述采集CPU资源和异构资源的工作状态除了如上CPU计算节点集群和异构资源池各自的使用状态之外,还包括:实时采集连通CPU计算节点和异构资源池的高速网络的网络状态;以及实时采集CPU计算节点和异构资源绑定状态。
在采集了CPU资源、异构资源及其连通和绑定的信息之后,可以在步骤S220,根据采集的工作状态构造资源特征。在此,资源可以指整个深度学习计算平台(即,计算平台的深度学习任务资源分配系统)能够调配的资源,即,整个计算平台“全局”的资源。另外,可以在步骤S230,根据用户提交的深度学习任务构造任务特征。在此,应该理解的是,对计算平台而言,用户任务的提交与特征的构造,与平台资源的状态获取和资源特征的构造是彼此独立的过程。平台可以不断地接收各个用户提交的任务执行申请,并且持续地对CPU资源池和异构资源池进行状态监测。因此步骤S210和S220与步骤S230可以同时、交替或是颠倒顺序执行,本发明对此不做限制。
根据用户提交的深度学习任务构造任务特征可以包括:估算用户提交的所述深度学习任务所需的CPU计算资源和异构资源,例如,平台可以包括专门的用于深度学习任务异构资源需求分析的模块;以及根据估算的所需的CPU计算资源和异构资源构造任务特征。在其他实施例中,也可以是用户在提交深度学习任务时,自行声明所需的计算资源。
随后,在步骤S240,可以根据资源特征和任务特征确定针对所述任务的资源分配决策结果。可以基于各类算法来基于当前的资源特征和求取的任务特征来进行针对该任务的资源分配。在一个实施例中,可以利用基于强化学习的深度学习网络,由其自行学习当前资源状态和提交任务状态下,对提交任务的优化策略。
于是,根据资源特征和任务特征确定针对所述任务的资源分配决策结果可以包括:将任务特征和资源特征进行向量化表示;将向量化表示生成的特征向量送入调度策略价值评估网络;以及获取调度策略价值评估网络的输出结果作为所述资源分配决策结果。
可以将优化分配结果看作是通过调度算法将给定的N个任务分配到现有的M个资源中,达到资源利用率最大化(例如,M 个资源使用数量最小化),该过程可以抽象为整数规划问题。为此,在一个实施例中,可以构建任务节点和资源节点二分图,并且使得各个节点的向量化表示(embedding)包含邻居节点的信息。对于任务节点而言,主要是汇总资源节点的信息,对于资源节点而言,主要是汇总任务节点的信息。可以通过多次图卷积操作,使得每个任务节点可以获取所有的资源节点信息和任务节点信息,因此可以做出全局的决策。在另一个实施例中,也可以利用图注意网络来实现任务节点的全局决策。
特别地,资源节点的特征向量是动态变化的,一旦资源上被分配了任务,整个剩余的资源情况,需要通过特征向量的变化来传递给其他节点。这也是需要实时采集CPU计算节点和异构资源池工作状态的愿意。
进一步地,可以构造价值评估函数,并且调度策略价值评估网络的参数可以基于强化学习进行自适应调整,以获取全局优化的调度策略。
在一个实施例中,可以给出强化学习中状态(states)、行为(actions)、奖励(rewards)的定义,具体如下:
States: 针对任务-资源二分图的一系列任务调度行为。状态可以是长度为 p 的向量,它表示当前任务资源调度情况,是对当前图的一种描述;
Actions: 在当前的资源分配情况下,将任务 i 调度到资源 j 的操作;
Rewards: 采取 action v 所带来的价值或奖励。本方案追求的是完成整个任务资源调度所带来的价值或奖励的最大化。对于单次任务分配行为,它的 reward 可以使得累积奖励值最大化、所消耗的资源,如机器数,最小化。
另外,可以依赖构造的价值评估函数 Q来制定策略(Policy)。进一步地,所述调度策略价值评估网络可以具有多策略切换功能。根据资源特征和任务特征确定针对所述任务的资源分配决策结果于是可以包括:基于当前的调度策略选择,确定当前调度策略下针对所述任务的资源分配决策结果。多策略可以实现为强化学习的不同奖励,以满足资源利用最高、调度速度最高等多种平台的实现需求。
随后,在步骤S250,基于所述资源分配决策结果,向所述深度学习任务分配CPU资源和异构资源。由此,将用户提交的深度学习任务进行CPU和异构资源分割并进行计算平台的全局优化。
在一个实施例中,可以利用k8s等现有的云平台多主机容器化管理应用参与平台调度。为此,基于所述资源分配决策结果,向所述深度学习任务分配CPU资源和异构资源可以包括:基于所述资源分配决策结果,向所述深度学习任务分配CPU计算资源和异构资源;以及在分配的CPU计算资源所在的节点上建立用于与异构资源通信的虚拟异构资源代理。
可以基于分配的CPU计算资源和虚拟异构资源代理构建任务单元。该任务单元例如可以时k8s中的pod(配置荚),并且可以将用户提交的深度学习任务发送给所述任务单元进行执行。例如,pod可由k8s进行后续控制,以进行任务训练。
本发明还可以实现为一种深度学习任务资源分配系统,该系统能够执行如上所述的资源分配方法并且可以是深度学习计算平台的一部分。图3示出了根据本发明一个实施例的深度学习任务资源分配系统的组成示意图。
如图所示,系统300可以包括资源分配节点310、计算服务器集群320、工作状态采集节点330和智能决策节点340。
计算服务器集群320用于为计算平台提供CPU资源和异构资源以进行深度学习计算。例如,集群320可以包括彼此经由高速网络通信的大量计算服务器,例如1000台计算服务器,上述服务器可以通过各类分析方法,抽象并汇总成CPU资源池(例如,抽象为一个个的CPU计算节点)和异构资源池(例如,基于计算能力和显存进行统一抽象)。
工作状态采集节点330可以用于采集(尤其是实时采集)所述计算服务器集群中CPU资源和异构资源的工作状态。例如,采集1000台计算服务器中CPU的当前使用率、异构资源的使用率、网络状态(例如,网络速度)以及异构资源与上层CPU的绑定状态等。
智能决策节点340可以工作状态采集节点330获取其采集的工作状态学习,并根据采集的工作状态进行资源特征分析,对用户提交的深度学习任务进行任务特征分析,并根据资源特征和任务特征确定针对所述任务的资源分配决策结果。上述分配决策结果可以发送给资源分配节点310,用于基于所述资源分配决策结果,向所述深度学习任务分配CPU资源和异构资源,即,对集群320中被分配的CPU和异构资源下发调度指令。由于可由资源分配节点310接收用户提交的深度学习任务(例如,任务代码),因此资源分配节点310还可用于将深度学习任务所需的资源信息提供给智能决策节点340以供决策。
如下将结合深度学习任务资源分配系统的一个具体实现,描述本发明的应用例。图4示出了根据本发明的深度学习任务资源分配系统进行计算资源调度的一个例子。与图3类似的,系统400同样包括资源分配节点410、计算服务器集群420、工作状态采集节点430和智能决策节点440。
具体地,资源分配节点410可以通过硬件分析能力将底层硬件(GPI/IPU/AI卡)进行统一的抽象,将底层节点通过硬件技术抽象为统一的计算能力和显存,供由节点410、430和440组成的智能调度系统对抽象后的硬件进行统一的管理。图中示出了集群420被抽象成的CPU计算节点集合421和异构资源池422。
资源分配节点410可以用于接收用户任务,向智能决策节点440提供任务所需CPU资源和异构资源信息,还可以包括基于智能决策节点440的决策结果进行调度的调度器411。
资源分配节点410包括异构资源需求分析模块412,用于负责分析任务对异构资源的需求,将任务需求转化为统一抽象的计算能力和显存。经转换的计算能力和显存信息(即,异构资源信息)和任务所需的CPU计算资源信息可以如图所示传送给智能决策节点440,更具体地,传递给智能决策节点440的任务特征分析模块441。
在一个实施例中,调度器411可以包括云平台主机容器化管理应用,例如图示的k8s。k8s现有的实现是单卡本地使用。在本发明中,可以使用了一个虚拟计算能力设备和k8s对接,虚拟计算能力设备来统一分发计算能力需求(即,图示的调度器411),将计算能力分发到真实的设备上进行计算,而分发的逻辑(计算能力申请)是由智能决策节点440确定并分发给资源分配节点410的智能决策结果所决定的。
在具体执行过程中,可由k8s先分配CPU资源,再由调度器411分配异构计算能力。在分配CPU资源的节点上,可以建立虚拟异构资源代理,例如图1B中DWSend通信节点。虚拟异构资源代理可以与分配的异构资源进行通信(例如,与异构资源上的DWRecv通信节点进行通信),由此完成经处理数据向异构资源的传输。在一个实施例中,可以将虚拟异构资源代理和分配的CPU资源整合成一个完整的pod对外使用,例如,由k8s进行后续的控制。
在资源分配节点410执行决策结果时,可以去异构资源池进行资源切片(即,仅选取物理异构硬件中当前任务所需的部分),并且将切片信息上报给k8s,供CPU计算节点使用。在某些实施例中,资源分配节点410还可以负责和k8s自身的调度中心进行交互,辅助k8s选择合理的CPU计算资源。
工作状态采集节点430用于进行信息采集,并将采集的信息提交给智能决策节点440,供其进行资源分析和决策。在一个实施例中,工作状态采集节点430可以采集如下信息:
a、由模块431负责采集异构资源池的硬件信息(利用率,健康状态,GPU性能指标,节点网络状态);
b、由模块432负责采集网络状态(例如,网络的当前速率),需要采集网络状态的原因在于深度学习的训练需要大量的数据,数据会占用大量带宽,因此智能决策节点440会将网络带宽作为选择异构资源的影响因子去分析,例如如果k8s选的CPU节点网络带宽压力大,就会尽量选择本节点进行异构资源分配;以及
c、由模块433采集池化资源的绑定状态和上层CPU资源的利用率。
另外,虽然未在图中示出,还可以采集异构资源的故障信息,用于异构资源池422的更新。
智能决策节点440可以包括任务特征分析模块441、资源分析模块442和多资源多策略智能决策模块443。任务特征分析模块441根据资源分配模块上送上来的作业资源需求,对作业进行特征分析以构造任务特征;资源分析模块442根据工作状态采集节点430采集的资源信息,对资源进行特征分析,以构造资源特征。在优选实施例中,资源多策略智能决策模块443基于图神经网络从全局的角度对AI任务和异构资源进行向量化表示,并形成调度策略价值评估网络,然后通过强化学习来不断地自适应调整调度策略价值评估网络参数,最终得到全局优化的调度策略进行调度。优选地,可以评估网络可以适配多种智能决策方法,满足资源利用最高、调度速度最高等多种用户需求。
在具体操作中,资源分配流程可以包括如下操作:
1、用户发起需要异构资源的任务;
2、资源分配节点410可以分析用户任务的资源需求,向智能决策节点440输出该任务对计算能力和显存的需求;
3、智能决策节点440从工作状态采集节点430实时采集集群420的当前信息,对任务和全局的资源进行分析,选择合适的异构资源类型和异构节点作为决策结果
4、决策结果交由资源分配节点410进行资源分配,分配完成后可由上层k8s系统的插件将异构资源和CPU资源进行关联,统一交付给用户使用。
在集群420内部由服务器发生故障时,可以通过工作状态的采集,发现故障后实时上报给资源分配节点410中的智能调度器411。调度器411可以基于原有的资源分配情况,进行新资源的分配,并然后通知上层应用进行数据备份迁移。在新资源挂载后,可以进行异构资源故障迁移。
图5示出了根据本发明一个实施例可用于实现上述深度学习任务资源分配方法的计算设备的结构示意图。
参见图5,计算设备500包括存储器510和处理器520。
处理器520可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,例如,在用作如上所述的集群420的计算服务器时,处理器520可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,协处理器可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,FieldProgrammable Gate Arrays)。
存储器510可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器520或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器510可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器510可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器510上存储有可执行代码,当可执行代码被处理器520处理时,可以使处理器520执行上文述及的深度学习计算平台优化方法。
上文中已经参考附图详细描述了根据本发明的深度学习计算平台优化方法以及利用该方法进行调度优化的深度学习计算平台。
本方案基于池化技术对资源进行智能调度,包括可以实现:
(1)诸如GPU的异构资源完全和CPU资源解绑定,避免由于CPU资源使用完而GPU无法使用的情况,并且智能决策节点通过工作状态采集节点感知资源的状态,能够更好的指导上层资源分配系统选择合适的CPU计算资源进行任务运行;
(2)智能决策节点根据不同策略能够更好地进行资源全局调配,降低任务无法找到合适资源的情况的发生,并且当资源不足的时候,智能决策节点可以进行碎片资源组合的决策来满足任务执行需求。
(3)针对不同的硬件资源通过硬件技术在资源分配模块统一抽象成计算能力和显存,因此智能资源池可以兼容任意硬件的添加;
(4)当遇到异构硬件故障,由于CPU资源和异构资源属于弱绑定关系,可以通过资源分配模块再次进行异构资源分配,达到异构故障的无感迁移。
本发明对不同的异构资源进行了统一的资源抽象,对外体现简单的计算能力和显存,极大的降低了不同异构资源的使用和调度难度;采集了全局的硬件性能数据,由智能决策节点辅助资源分配节点进行全局资源状态分析,能够更加精细化的对资源进行控制。进一步地,可以使用图神经网络对AI任务和全局异构资源进行描述,再通过强化学习的迭代达到全局调度优化(例如,最为优化),能够极大的提升资源调度能力。通过改变强化学习的奖励,可以适配多种全局分配策略,能够满足多种用户的资源使用诉求。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (12)
1.一种深度学习任务资源分配方法,包括:
采集CPU资源和异构资源的工作状态;
根据采集的工作状态构造资源特征;
根据用户提交的深度学习任务构造任务特征;
根据所述资源特征和所述任务特征确定针对所述任务的资源分配决策结果;以及
基于所述资源分配决策结果,向所述深度学习任务分配CPU资源和异构资源。
2.如权利要求1所述的方法,包括:
将包括CPU的计算节点作为CPU计算节点加入CPU计算节点集合;
对计算节点包括的异构硬件进行分析并将分析得到的计算能力和显存加入异构资源池,
其中,所述采集CPU资源和异构资源的工作状态包括:
实时采集所述CPU计算节点集合内各个CPU计算节点的工作状态;以及
实时采集所述异构资源池内各个异构硬件的计算能力和显存的使用状态。
3.如权利要求2所述的方法,其中,所述采集CPU资源和异构资源的工作状态包括:
实时采集连通CPU计算节点和异构资源池的高速网络的网络状态;以及
实时采集CPU计算节点和异构资源绑定状态。
4.如权利要求1所述的方法,其中,对用户提交的深度学习任务构造任务特征包括:
估算用户提交的所述深度学习任务所需的CPU计算资源和异构资源;以及
根据估算的所需的CPU计算资源和异构资源构造所述任务特征。
5.如权利要求1所述的方法,其中,根据所述资源特征和所述任务特征确定针对所述任务的资源分配决策结果包括:
将所述任务特征和所述资源特征进行向量化表示;
将向量化表示生成的特征向量送入调度策略价值评估网络;以及
获取调度策略价值评估网络的输出结果作为所述资源分配决策结果。
6.如权利要求5所述的方法,其中,所述调度策略价值评估网络的参数基于强化学习进行自适应调整,以获取优化的调度策略。
7.如权利要求1所述的方法,其中,根据所述资源特征和所述任务特征确定针对所述任务的资源分配决策结果包括:
基于当前的调度策略选择,确定当前调度策略下针对所述任务的资源分配决策结果。
8.如权利要求1所述的方法,其中,基于所述资源分配决策结果,向所述深度学习任务分配CPU资源和异构资源包括:
基于所述资源分配决策结果,向所述深度学习任务分配CPU计算资源和异构资源;以及
在分配的CPU计算资源所在的节点上建立用于与异构资源通信的虚拟异构资源代理。
9.如权利要求8所述的方法,还包括:
基于分配的CPU计算资源和虚拟异构资源代理构建任务单元;
将用户提交的深度学习任务发送给所述任务单元进行执行。
10.一种深度学习任务资源分配系统,包括:
计算服务器集群,用于为计算平台提供CPU资源和异构资源以进行深度学习计算;
工作状态采集节点,用于采集所述计算服务器集群中CPU资源和异构资源的工作状态;
智能决策节点,用于根据采集的工作状态构造资源特征,根据用户提交的深度学习任务构造任务特征分析,并根据所述资源特征和所述任务特征确定针对所述任务的资源分配决策结果;
资源分配节点,用于基于所述资源分配决策结果,向所述深度学习任务分配CPU资源和异构资源。
11.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至9中任一项所述的方法。
12.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210564956.9A CN114661480B (zh) | 2022-05-23 | 2022-05-23 | 深度学习任务资源分配方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210564956.9A CN114661480B (zh) | 2022-05-23 | 2022-05-23 | 深度学习任务资源分配方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114661480A true CN114661480A (zh) | 2022-06-24 |
CN114661480B CN114661480B (zh) | 2022-09-02 |
Family
ID=82036831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210564956.9A Active CN114661480B (zh) | 2022-05-23 | 2022-05-23 | 深度学习任务资源分配方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114661480B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115729714A (zh) * | 2023-01-06 | 2023-03-03 | 之江实验室 | 一种资源分配方法、装置、存储介质及电子设备 |
CN116720645A (zh) * | 2022-10-21 | 2023-09-08 | 荣耀终端有限公司 | 一种任务分配方法、分配设备及任务分配系统 |
CN117573382A (zh) * | 2024-01-17 | 2024-02-20 | 国网浙江省电力有限公司丽水供电公司 | 一种数据采集任务编排方法、装置 |
CN118331716A (zh) * | 2024-06-14 | 2024-07-12 | 八维通科技有限公司 | 异构算力集成系统下算力智能迁移方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120124591A1 (en) * | 2010-11-17 | 2012-05-17 | Nec Laboratories America, Inc. | scheduler and resource manager for coprocessor-based heterogeneous clusters |
CN109240814A (zh) * | 2018-08-22 | 2019-01-18 | 湖南舜康信息技术有限公司 | 一种基于TensorFlow的深度学习智能调度方法和系统 |
CN110290075A (zh) * | 2019-04-17 | 2019-09-27 | 李士锋 | 一种警用云计算平台的资源管理方法及系统 |
CN113434261A (zh) * | 2021-08-27 | 2021-09-24 | 阿里云计算有限公司 | 异构计算设备虚拟化方法及系统 |
CN114389955A (zh) * | 2022-03-02 | 2022-04-22 | 中国电子科技集团公司第十四研究所 | 嵌入式平台异构资源池化管理方法 |
CN114418127A (zh) * | 2022-03-23 | 2022-04-29 | 阿里云计算有限公司 | 机器学习计算优化方法和平台 |
-
2022
- 2022-05-23 CN CN202210564956.9A patent/CN114661480B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120124591A1 (en) * | 2010-11-17 | 2012-05-17 | Nec Laboratories America, Inc. | scheduler and resource manager for coprocessor-based heterogeneous clusters |
CN109240814A (zh) * | 2018-08-22 | 2019-01-18 | 湖南舜康信息技术有限公司 | 一种基于TensorFlow的深度学习智能调度方法和系统 |
CN110290075A (zh) * | 2019-04-17 | 2019-09-27 | 李士锋 | 一种警用云计算平台的资源管理方法及系统 |
CN113434261A (zh) * | 2021-08-27 | 2021-09-24 | 阿里云计算有限公司 | 异构计算设备虚拟化方法及系统 |
CN114389955A (zh) * | 2022-03-02 | 2022-04-22 | 中国电子科技集团公司第十四研究所 | 嵌入式平台异构资源池化管理方法 |
CN114418127A (zh) * | 2022-03-23 | 2022-04-29 | 阿里云计算有限公司 | 机器学习计算优化方法和平台 |
Non-Patent Citations (2)
Title |
---|
刘汪根等: "云环境下大规模分布式计算数据感知的调度系统", 《大数据》 * |
胡亚红等: "资源不均衡Spark环境任务调度优化算法研究", 《计算机工程与科学》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116720645A (zh) * | 2022-10-21 | 2023-09-08 | 荣耀终端有限公司 | 一种任务分配方法、分配设备及任务分配系统 |
CN115729714A (zh) * | 2023-01-06 | 2023-03-03 | 之江实验室 | 一种资源分配方法、装置、存储介质及电子设备 |
CN117573382A (zh) * | 2024-01-17 | 2024-02-20 | 国网浙江省电力有限公司丽水供电公司 | 一种数据采集任务编排方法、装置 |
CN117573382B (zh) * | 2024-01-17 | 2024-03-29 | 国网浙江省电力有限公司丽水供电公司 | 一种数据采集任务编排方法、装置 |
CN118331716A (zh) * | 2024-06-14 | 2024-07-12 | 八维通科技有限公司 | 异构算力集成系统下算力智能迁移方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114661480B (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114661480B (zh) | 深度学习任务资源分配方法和系统 | |
US20220391665A1 (en) | Method for splitting neural network model by using multi-core processor, and related product | |
CN110619595B (zh) | 一种基于多fpga加速器互联的图计算优化方法 | |
US11500959B2 (en) | Multiple output fusion for operations performed in a multi-dimensional array of processing units | |
Warneke et al. | Exploiting dynamic resource allocation for efficient parallel data processing in the cloud | |
US7647590B2 (en) | Parallel computing system using coordinator and master nodes for load balancing and distributing work | |
CN114418127B (zh) | 机器学习计算优化方法和平台 | |
US8959138B2 (en) | Distributed data scalable adaptive map-reduce framework | |
WO2022068663A1 (zh) | 内存分配方法、相关设备及计算机可读存储介质 | |
US9323580B2 (en) | Optimized resource management for map/reduce computing | |
CN112650590A (zh) | 任务的处理方法、装置及系统、分配方法和装置 | |
JP7527716B2 (ja) | データ処理方法、装置、電子機器、及びコンピュータプログラム | |
CN110347636B (zh) | 数据执行体及其数据处理方法 | |
CN111860807B (zh) | 分形计算装置、方法、集成电路及板卡 | |
JP2014525640A (ja) | 並列処理開発環境の拡張 | |
CN110998531B (zh) | 元组图程序中子图内优化的方法 | |
CN115860061A (zh) | 图神经网络优化方法和图神经网络推理系统 | |
CN115860066A (zh) | 一种基于批处理的神经网络推理流水线复用的方法 | |
CN116795524A (zh) | 任务处理方法、装置、计算机设备、存储介质及程序产品 | |
CN113608858A (zh) | 一种基于MapReduce架构的数据同步用块任务执行系统 | |
Wang et al. | Auto-MAP: A DQN framework for exploring distributed execution plans for DNN workloads | |
CN116048759A (zh) | 数据流的数据处理方法、装置、计算机和存储介质 | |
Zhang et al. | ZIPPER: Exploiting tile-and operator-level parallelism for general and scalable graph neural network acceleration | |
US20080275683A1 (en) | kD TREE AND ENVELOPE TO IMPROVE IDENTIFICATION OF NEAREST ATOMS | |
US11775299B1 (en) | Vector clocks for highly concurrent execution engines |
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 |