CN111124656A - 用于向专用计算资源分配任务的方法、设备和计算机程序产品 - Google Patents
用于向专用计算资源分配任务的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN111124656A CN111124656A CN201811288666.6A CN201811288666A CN111124656A CN 111124656 A CN111124656 A CN 111124656A CN 201811288666 A CN201811288666 A CN 201811288666A CN 111124656 A CN111124656 A CN 111124656A
- Authority
- CN
- China
- Prior art keywords
- dedicated computing
- hardware information
- task
- computing resource
- dedicated
- 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/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- 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/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
- G06N20/00—Machine learning
-
- 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
-
- 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/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/088—Non-supervised learning, e.g. competitive learning
Abstract
本公开的实施例涉及一种用于向专用计算资源分配任务的方法、设备和计算机程序产品。该方法包括获取多个专用计算资源的硬件信息,其中多个专用计算资源包括第一专用计算资源和第二专用计算资源,并且硬件信息包括第一专用计算资源的第一硬件信息和第二专用计算资源的第二硬件信息。方法还包括生成基于第一硬件信息的第一任务和基于第二硬件信息的第二任务,并且向第一专用计算资源分配第一任务并且向第二专用计算资源分配第二任务。本公开的实施例针对异构专用计算资源(例如加速器设备)场景下的任务调度,根据不同的硬件能力生成相应的内核代码,能够实现针对异构专用计算资源的动态优化,从而提高资源利用率和执行效率。
Description
技术领域
本公开的实施例总体上涉及计算机领域,并且更具体地涉及用于向专用计算资源分配任务的方法、设备以及计算机程序产品。
背景技术
专用处理资源是指一些具有专门用途的处理资源,例如图形处理单元(GPU)和现场可编程门阵列(FPGA)等加速器设备。GPU是一种专用于图形或图像的核心处理器,其主要任务是加速图形处理速度。GPU由于其高性能优势(诸如多核且适于矩阵运算),因而广泛用作许多应用的加速器,诸如机器学习应用和深度学习应用。FPGA是专用集成电路(ASIC)领域中的一种半定制电路,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA具有显著的加速能力,因而也适合执行深度学习任务。
在处理高性能计算任务时,为了提高并行性和处理速度,通常需要多个专用处理资源一起参与。例如,将一个总任务划分成若干个子任务,然后由若干个专用处理资源来分别执行。通常,专用处理资源的价格相对昂贵,用户在购买了新的专用处理资源时可能仍然还在使用一些老的专用处理资源。因此,在执行某个高性能计算任务的过程中,可能存在多个不同类型的多个专用处理资源在同时处理的情形。
发明内容
本公开的实施例提供了一种用于向专用计算资源分配任务的方法、设备和计算机程序产品。
在本公开的一个方面,提供了一种用于向专用计算资源分配任务的方法。该方法包括:获取多个专用计算资源的硬件信息,其中多个专用计算资源包括第一专用计算资源和第二专用计算资源,并且硬件信息包括第一专用计算资源的第一硬件信息和第二专用计算资源的第二硬件信息;生成基于第一硬件信息的第一任务和基于第二硬件信息的第二任务;以及向第一专用计算资源分配第一任务并且向第二专用计算资源分配第二任务。
在本公开的另一方面,提供了一种用于向专用计算资源分配任务的设备。该设备包括处理单元以及存储器,其中存储器被耦合至处理单元并且存储有指令。所述指令在由处理单元执行时执行以下动作:获取多个专用计算资源的硬件信息,其中多个专用计算资源包括第一专用计算资源和第二专用计算资源,并且硬件信息包括第一专用计算资源的第一硬件信息和第二专用计算资源的第二硬件信息;生成基于第一硬件信息的第一任务和基于第二硬件信息的第二任务;以及向第一专用计算资源分配第一任务并且向第二专用计算资源分配第二任务。
在本公开的又一方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使得计算机执行根据本公开的实施例的方法或过程。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。本发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的各个实施例的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中在本公开示例性实施例中,相同的附图标记通常代表相同的元素。
图1示出了根据本公开的实施例的向异构专用计算资源动态分配任务的示例架构的示意图;
图2示出了根据本公开的实施例的用于向专用计算资源分配任务的方法的流程图;
图3示出了根据本公开的实施例的用于使用专用计算资源来执行深度学习任务的示例过程的流程图;
图4示出了根据本公开的实施例的用于各种硬件后端的中间表示和优化的示意图;
图5示出了矩阵乘法累加运算的示意图;
图6示出了根据本公开的实施例的用于收集专用计算资源的硬件信息的示意图;
图7示出了根据本公开的实施例的用于基于硬件信息动态编译的示意图;以及
图8示出了可以用来实施本公开的实施例的设备的示意性块图。
具体实施例
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的一些具体实施例,然而应该理解,可以以各种形式实现本公开,而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象,除非明确指示不同。
专用计算资源(例如加速器设备)由于其高性能优势(例如多核且适于矩阵运算),因而广泛用作许多应用的加速器,诸如机器学习应用和深度神经网络(DNN)学习应用。通常,对于一个高性能计算任务而言,通常需要多个专用处理资源来并发执行,这些多个专用处理资源可能由于购买先后的原因,存在不同的设备类型,例如,用户在今年购买了新的专用处理资源时,可能仍在使用去年购买的老的专用处理资源。因此,在执行某个高性能计算任务的过程中,可能存在多个不同类型的多个专用处理资源在同时处理的情形。传统的方法针对某个给定的高性能计算任务,针对每个专用处理资源生成相同内核代码,而不关心不同专用处理资源之间的硬件差异,更不会对异构专用处理资源集群中的任务执行任何优化。因此,传统的方法无法高效地利用不同的硬件资源,并且执行效率较低。
为此,本公开的实施例提出了一种用于异构专用计算资源的动态优化的方案。本公开的实施例针对异构专用计算资源(例如加速器设备)场景下的任务调度,根据不同的硬件能力生成相应的执行任务,能够实现针对异构专用计算资源的动态优化,从而提高资源利用率和执行效率。
以下参考图2至图8来说明本公开的基本原理和若干示例实现方式。应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制本公开的范围。
图1示出了根据本公开的实施例的向专用计算资源动态分配任务的示例架构100的示意图。如图1所示,示例架构100包括深度学习模型110、动态优化器和编译器120以及异构的专用计算资源集群130,其中专用计算资源集群130包括位于多个节点的多个专用计算资源,例如加速器设备,诸如图形处理单元(GPU)或现场可编程门阵列(FPGA)等。专用计算资源集群130可以被部署在数据中心或者云环境中,其中的GPU 145和GPU 155可以是不同的类型,称为异构GPU场景。异构不仅指代不同品牌的专用计算资源,而且指同一品牌的不同型号的专用计算资源。
异构集群在现实中是很常见的,因为客户不断随时购买新的硬件,因而会获得混合硬件集群。通常,期望在集群中的任何设备上自由调度任务。此外,加速器设备的厂商也不会不断开发新的硬件,例如,英伟达公司的新GPU V100具有支持矩阵乘法累加(MMA)的特殊芯片Tensor Core,与上一代产品相比性能显著提升。
深度学习模型110可以为任何深度学习模型的机器学习模型,包括但不限于卷积神经网络(CNN)、循环神经网络(RNN)、长短期记忆网络(LSTM)、生成式对抗网络(GAN),等等。在发起将要分布式执行的某个深度学习任务之后,动态优化器和编译器120可以调用专用计算资源集群130中的若干个专用计算资源以并发执行这个深度学习任务。
根据本公开的实施例,动态优化器和编译器120在向各个专用计算资源分配任务之前,会获取这些专用计算资源的硬件信息,并且根据各自的硬件信息分配相应的内核代码,由此实现对于异构专用计算资源的动态优化。例如,可以向性能较好的GPU分配较多的任务,或者向支持某些功能的新GPU分配特定类型的任务。此外,本公开的实施例可以作为现有的框架中(TensorFlow XLA、TVM或者nGraph)的一个插件而被实现,另外,对于具有不同类型的加速器设备的混合场景,本公开的实施例能够更充分地利用各个加速器的硬件能力。
应当理解,虽然在下文以或GPU作为专用处理资源的示例进行描述,然而其他类型的专用计算资源也是可以的,例如FPGA等。
图2示出了根据本公开的实施例的用于向专用计算资源分配任务的方法200的流程图。应当理解,方法200可以由以上参考图2所描述的动态优化器和编译器120来执行。
在202,获取多个专用计算资源的硬件信息,其中多个专用计算资源包括第一专用计算资源和第二专用计算资源,并且硬件信息包括第一专用计算资源的第一硬件信息和第二专用计算资源的第二硬件信息。例如,参考图1所描述的动态优化器和编译器120在接收到某个高性能计算任务之后,获取将参与这个任务的GPU 145和GPU 155的硬件信息(例如,GPU的类型等信息)。通常,在异构GPU的场景中,至少两个GPU的类型是不同的。
在204,生成基于第一硬件信息的第一任务和基于第二硬件信息的第二任务。例如,动态优化器和编译器120根据GPU 145的类型编译出第一任务(即整个高性能计算任务的一个子任务,其可以为要在GPU上执行的函数或内核代码),并且根据GPU 155的类型编译出第二任务。
在206,向第一专用计算资源分配第一任务并且向第二专用计算资源分配第二任务。在动态优化器和编译器120编译出的子任务(即内核代码)分别被分配给对应的GPU,以用于在各个GPU上各自执行。因此,本公开的实施例的方法200针对异构专用计算资源场景下的任务调度,根据不同的硬件能力生成相应的执行任务,能够实现动态优化算法以匹配硬件的能力,从而提高资源利用率和执行效率。
此外,在一方面,本公开的实施例能够最大化的利用现有的异构专用处理资源。虽然调度器可以尽量(但不能保证)分配同类资源,但是使用异构资源仍然是很有价值并且不可避免的,因此本公开的实施例能够提供更灵活的任务调度(即,去除了同类调度的限制)。在另一方面,本公开的实施例可以动态发现专用处理资源功能并优化算符。明显不同的物理GPU或vGPU可能代表极大不同的计算能力,因此需要动态发现各种GPU或vGPU的功能。另外,Tensor Core等功能还需要特殊的API才能启用。例如,如果为某个任务分配了两种类型GPU,则最好在具备Tensor Core功能的GPU上启用Tensor Core以获得更高的性能,其使用特殊的cuBlas或cuDNN实现来编译MMA算符,这意味着不同的GPU设备上运行不同的内核实现。此外,本公开的实施例对模型逻辑修改较少,所有优化都应隐藏内部,并且对数据科学家是透明的,其不改变现有的模型逻辑,也不会影响最终的准确性。
图3示出了根据本公开的实施例的用于使用专用计算资源来执行深度学习任务的过程300的流程图。图3所描述的过程300可以是图2所描述的方法200的一个示例详细实现。为了便于更清楚地描述本公开的一些示例实施例,在描述图3的过程300的同时结合了图4-图7一起进行描述。
在302,发起高性能计算任务,例如,应用程序可以基于TVM框架新建一个深度学习任务。当用户启动深度学习任务时,例如TensorFlow上的分布式深度学习训练,通常需要以下输入信息:
·模型信息:诸如ResNet50这样的模型;
·有关训练小批量、训练批次、学习率等的信息;
·输入数据:训练数据的位置,即NFS或HDFS共享存储;
·GPU设备:使用哪个(哪些)节点和GPU来运行训练作业,通常可以通过某些调度程序(如Kubernetes或Mesos或CloudFoundry)来予以授权,诸如,IP1:GPU0、IP1:GPU1、IP2:GPU0、IP2:GPU1等等。
考虑到多种深度学习框架,例如TensorFlow、MXNet、Caffe和PyTorch,以及许多加速器,为了以更统一的方式更好地管理训练模型,并使模型在不同类型的硬件上平稳有效地运行,即使在移动电话中也是如此,可以提供模型的中间表示(IR)作为计算图,然后使用JIT(即时)技术编译模型或图形,以生成特殊目标硬件的优化字节码。这些动态编译器可以将深度学习程序的高层规范降低到低层优化代码,以用于任何硬件后端,例如小内核融合、自动区分、参数压缩、内存优化等。
例如,图4示出了根据本公开的实施例的用于各种硬件后端的中间表示和优化的示意图400。TVM是一个用于CPU、GPU和专用加速器的开放式深度学习编译器堆栈,旨在缩小深度学习框架与面向性能或效率的硬件后端之间的差距。通过TVM,深度学习模型可以被汇编成各种硬件后端的最小可部署模块,因而只需少量额外工作即可轻易地在手机端、嵌入式设备甚至浏览器上运行深度学习任务。TVM还为多硬件平台上的深度学习工作负载提供了统一的优化框架,其中包括依赖全新计算原语的专用加速器。通过采用编译器社区的共同理念,并提供两个中间表征层,有效地将高级深度学习算法降低到多硬件后端。如图4所示,其包含LLVM(诸如x86、ARM、Javascript)、OpenCL、Metal以及CUDA等优化原语的TVM工具包。因此,TVM提出了一个统一的中间表征(IR)堆栈,可以弥补以生产力为中心的深度学习框架与性能或效率导向的硬件后端之间的差距。
在304,向高性能计算任务分配多个加速器设备,例如,动态优化器和编译器120可以将GPU 145和GPU 155分配用于执行高性能计算任务。在本公开的实施例中,可以不局限于分配同类的加速器设备。相反,可以向高性能计算任务分配不同类型的加速器设备。
在306,获取每个加速器设备(诸如GPU)的硬件信息。硬件信息可以包括其标识符、类型以及性能参数。例如,性能参数可以包括GPU所具有的能力,诸如存储器的大小、是否支持虚拟GPU以及是否支持MMA,等等。例如图5示出了MMA运算的示意图500。每个Tensor Core每时钟执行64个浮点FMA混合精度操作,FP16输入乘以全精度乘积和FP32累加,如图5所示,流式多处理器中的8个Tensor内核每个时钟执行1024个浮点运算。Tensor Core在FP16输入数据上运行,并且与FP32累加。FP16乘法产生全精度结果,该结果在FP32操作中累积,其中给定点积中的其他乘积为4×4×4矩阵乘法,如图5所示。由此可见,对于支持特定功能(例如Tensor Core,其可以加速MMA)的GPU,可以使用特殊实现编译MMA算符,以便提高处理效率。
在一些实施例,可以通过GPU的接口实时地获取其硬件信息。例如,在分配参与执行深度学习任务的GPU之后,可以在运行时实时地获取这些GPU的硬件信息。备选地,也可以建立硬件信息库305,提前查询所有GPU的硬件信息并进行存储,然后在需要时可以从硬件信息库305获取硬件信息。例如,图6示出了根据本公开的实施例的用于收集专用计算资源的硬件信息的示意图600。存在三个节点610、620以及630,每个节点上包括两个GPU和代理程序,即代理615、625以及635。通过代理615可以获得节点610中的两个GPU的硬件信息,通过代理625可以获得节点620中的两个GPU的硬件信息,通过代理635可以获得节点630中的两个GPU的硬件信息,然后,可以将所获取的硬件信息存储到硬件信息库305中。在一些实施例中,可以周期性地获取每个GPU的硬件信息(例如,每十秒扫描一次),如果某个GPU的硬件信息尚未被记录,则可以将其插入在硬件信息库305中,而如果某个GPU的硬件信息发生变化,可以将更新后的硬件信息更新到硬件信息库305。下表1示出了示例硬件信息表。
表1:示例硬件信息表
节点的IP地址 | 本地标识 | 硬件类型 | 性能参数 |
192.168.2.45 | GPU 0 | 类型1 | 存储器:24GB |
192.168.2.45 | GPU 1 | 类型1 | 存储器:24GB |
192.168.2.46 | GPU 0 | 类型2 | Tensor Core:Y |
192.168.2.46 | GPU 1 | 类型2 | Tensor Core:Y |
192.168.2.47 | GPU 0 | 类型3 | vGPU:Y |
192.168.2.47 | GPU 1 | 类型3 | vGPU:Y |
如表1所示,硬件信息表可以包括GPU所处的节点的IP地址、GPU的本地标识、GPU的硬件类型以及GPU的部分性能参数。在一些实施例中,节点的IP地址加上GPU的本地标识可以构成每个GPU的唯一标识符。性能参数可以指示GPU的存储器的大小、GUP是否支持TensorCore、是否支持虚拟GPU(vGPU),等等。硬件信息将用户指导JIT编译器构建硬件优化的低层算符。
例如,可以存在基于硬件的GPU虚拟化(诸如英伟达的GRID)和基于软件的GPU虚拟化(诸如EMC的GPUaaS),然后应用程序可以使用逻辑GPU(vGPU)来提供核或处理器方面的自定义功能。在这种情况下,期望获知GPU实际能力然后优化算符。例如,可以选择适当的转换算法,避免分配太多的GPU存储器。
返回参考图3,在308,基于硬件信息编译操作符以生成在各个加速器设备上执行的子任务(例如内核代码)。例如,可以使用中间表示(IR)来进行提取,然后将IR编译到后端设备优化的内核代码。可以将所生成的子任务进行高速缓存以避免重复的编译,如309所示,并且在存储器中记录每个子任务与对应加速器设备(例如GPU)之间的映射表,如311所示。
表2:子任务与加速器设备之间的映射表
如表2所示,将各个子任务的内核代码与将要执行的GPU相关联。对于高性能计算任务1,所有的GPU可以使用相同的内核代码1。而对于高性能计算任务2,特定类型的GPU(因为其支持特殊的新功能)使用内核代码2,而其他类型的GPU使用内核代码3。
图7示出了根据本公开的实施例的用于基于硬件信息动态编译的示意图700。如图7所示,异构的专用计算资源集群710包括第一类型的GPU 711以及第二类型的GPU 712和GPU 713。这些GPU的硬件信息可以被获取并且被存储在硬件信息库305中。在编译操作符之前,可以从硬件信息库305获取每个GPU的硬件信息(例如类型),即,GPU 711为第一类型,如721所示,GPU 712和GPU 713是第二类型,如722和723所示。接下来,对于不同的类型,可以使用不同的编译规则,而对于相同的类型,可以使用相同的编译规则。因此,JIT编译器740可以使用第一规则731来编译将在第一类型的GPU 711上执行的子任务(例如内核代码),并且使用第二规则732来编译将在第二类型的GPU 712和GPU 713上执行的内核代码。然后,JIT编译器740将第一类任务分配给第一类型的GPU 711,如箭头741所示,并且将第二类任务分配给第二类型的GPU 712和713,如箭头742所示。
返回参考图3,在312,基于映射表加载每个加速度设备对应的子任务(即内核代码),然后在314运行每个子任务直至完成。接下来,各个GPU可以返回其执行结果,然后深度学习模型可以组合这些结果以获得最终的训练结果。例如,对于映射表2中的深度学习任务1,每个GPU设备将加载相同的内核代码1。对于映射表2中的深度学习任务2,某些GPU将加载内核代码2(其例如已经被优化用于使用Tensor Core),而其他GPU将加载内核代码3。因此,根据本公开的实施例,多个GPU将使用不同的内核实现,并且提供相同的功能,但是利用了不同的性能和资源使用。
图8示出了可以用来实施本公开的实施例的设备800的示意性块图,设备800可以为本公开的实施例所描述的设备或装置。如图8所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个方法或过程可由处理单元801执行。例如,在一些实施例中,方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到RAM 803并由CPU 801执行时,可以执行上文描述的方法或过程中的一个或多个步骤或动作。
在一些实施例中,以上所描述的方法和过程可以被实现为计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
本文所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言,以及常规的过程式编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或块图中的一个或多个方块中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或块图中的一个或多个方块中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或块图中的一个或多个方块中规定的功能/动作。
附图中的流程图和块图显示了根据本公开的多个实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或块图中的每个方块可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方块中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方块实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,块图和/或流程图中的每个方块、以及块图和/或流程图中的方块的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (17)
1.一种用于向专用计算资源分配任务的方法,包括:
获取多个专用计算资源的硬件信息,多个专用计算资源包括第一专用计算资源和第二专用计算资源,所述硬件信息包括所述第一专用计算资源的第一硬件信息和所述第二专用计算资源的第二硬件信息;
生成基于所述第一硬件信息的第一任务和基于所述第二硬件信息的第二任务;以及
向所述第一专用计算资源分配所述第一任务并且向所述第二专用计算资源分配所述第二任务。
2.根据权利要求1所述的方法,其中获取多个专用计算资源的硬件信息包括:
获得高性能计算任务;
向所述高性能计算任务分配所述多个专用计算资源;以及
实时地获取所述多个专用计算资源中的每个专用计算资源的硬件信息。
3.根据权利要求1所述的方法,其中获取多个专用计算资源的硬件信息包括:
周期性地查询所述多个专用计算资源中的每个专用计算资源的硬件信息;
将查询到的硬件信息存储到数据库中,所述硬件信息包括每个专用计算资源的标识符、类型以及性能参数;以及
从所述数据库获取所述多个专用计算资源的所述硬件信息。
4.根据权利要求1所述的方法,其中生成基于所述第一硬件信息的第一任务和基于所述第二硬件信息的第二任务包括:
基于所述第一硬件信息和第二硬件信息,分别确定第一编译规则和第二编译规则,所述第一硬件信息指示所述第一专用计算资源支持特定功能,所述第二硬件信息指示所述第二专用计算资源不支持所述特定功能;以及
使用第一编译规则和第二编译规则分别生成所述第一任务和所述第二任务。
5.根据权利要求4所述的方法,其中生成基于所述第一硬件信息的第一任务和基于所述第二硬件信息的第二任务还包括:
将所述第一任务与所述第一专用计算资源的第一标识符相关联;以及
将所述第二任务与所述第二专用计算资源的第二标识符相关联,每个标识符包括每个专用计算资源的因特网协议(IP)地址和本地标识。
6.根据权利要求1所述的方法,还包括:
从所述第一专用计算资源接收针对所述第一任务的第一结果;
从所述第二专用计算资源接收针对所述第二任务的第二结果;以及
组合所述第一结果和所述第二结果。
7.根据权利要求1所述的方法,其中所述多个专用计算资源还包括第三专用计算资源,所述第三专用计算资源的类型与所述第二专用计算资源的类型相同,其中向所述第二专用计算资源分配所述第二任务包括:
向所述第二专用计算资源和所述第三专用计算资源分配所述第二任务。
8.根据权利要求1所述的方法,其中所述专用计算资源为图形处理单元(GPU),并且所述第一任务和所述第二任务是深度学习任务,所述方法还包括:
在所述第一专用计算资源和所述第二专用计算资源上分别执行所述深度学习任务。
9.一种用于向专用计算资源分配任务的设备,包括:
处理单元;以及
存储器,其耦合至所述处理单元并且存储有指令,所述指令在由所述处理单元执行时执行以下动作:
获取多个专用计算资源的硬件信息,多个专用计算资源包括第一专用计算资源和第二专用计算资源,所述硬件信息包括所述第一专用计算资源的第一硬件信息和所述第二专用计算资源的第二硬件信息;
生成基于所述第一硬件信息的第一任务和基于所述第二硬件信息的第二任务;以及
向所述第一专用计算资源分配所述第一任务并且向所述第二专用计算资源分配所述第二任务。
10.根据权利要求9所述的设备,其中获取多个专用计算资源的硬件信息包括:
获得高性能计算任务;
向所述高性能计算任务分配所述多个专用计算资源;以及
实时地获取所述多个专用计算资源中的每个专用计算资源的硬件信息。
11.根据权利要求9所述的设备,其中获取多个专用计算资源的硬件信息包括:
周期性地查询所述多个专用计算资源中的每个专用计算资源的硬件信息;
将查询到的硬件信息存储到数据库中,所述硬件信息包括每个专用计算资源的标识符、类型以及性能参数;以及
从所述数据库获取所述多个专用计算资源的所述硬件信息。
12.根据权利要求9所述的设备,其中生成基于所述第一硬件信息的第一任务和基于所述第二硬件信息的第二任务包括:
基于所述第一硬件信息和第二硬件信息,分别确定第一编译规则和第二编译规则,所述第一硬件信息指示所述第一专用计算资源支持特定功能,所述第二硬件信息指示所述第二专用计算资源不支持所述特定功能;以及
使用第一编译规则和第二编译规则分别生成所述第一任务和所述第二任务。
13.根据权利要求12所述的设备,其中生成基于所述第一硬件信息的第一任务和基于所述第二硬件信息的第二任务还包括:
将所述第一任务与所述第一专用计算资源的第一标识符相关联;以及
将所述第二任务与所述第二专用计算资源的第二标识符相关联,每个标识符包括每个专用计算资源的因特网协议(IP)地址和本地标识。
14.根据权利要求9所述的设备,所述动作还包括:
从所述第一专用计算资源接收针对所述第一任务的第一结果;
从所述第二专用计算资源接收针对所述第二任务的第二结果;以及
组合所述第一结果和所述第二结果。
15.根据权利要求9所述的设备,其中所述多个专用计算资源还包括第三专用计算资源,所述第三专用计算资源的类型与所述第二专用计算资源的类型相同,其中向所述第二专用计算资源分配所述第二任务包括:
向所述第二专用计算资源和所述第三专用计算资源分配所述第二任务。
16.根据权利要求9所述的设备,其中所述专用计算资源为图形处理单元(GPU),并且所述第一任务和所述第二任务是深度学习任务,所述动作还包括:
在所述第一专用计算资源和所述第二专用计算资源上分别执行所述深度学习任务。
17.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使计算机执行根据权利要求1至9中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811288666.6A CN111124656B (zh) | 2018-10-31 | 2018-10-31 | 用于向专用计算资源分配任务的方法、设备和计算机可读存储介质 |
US16/415,746 US11163610B2 (en) | 2018-10-31 | 2019-05-17 | Method, device, and computer program product for assigning tasks to dedicated processing resources |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811288666.6A CN111124656B (zh) | 2018-10-31 | 2018-10-31 | 用于向专用计算资源分配任务的方法、设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124656A true CN111124656A (zh) | 2020-05-08 |
CN111124656B CN111124656B (zh) | 2023-09-15 |
Family
ID=70326738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811288666.6A Active CN111124656B (zh) | 2018-10-31 | 2018-10-31 | 用于向专用计算资源分配任务的方法、设备和计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11163610B2 (zh) |
CN (1) | CN111124656B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966485A (zh) * | 2020-06-30 | 2020-11-20 | 北京百度网讯科技有限公司 | 计算资源的调度方法、装置、电子设备以及存储介质 |
CN112001494A (zh) * | 2020-08-20 | 2020-11-27 | 浪潮电子信息产业股份有限公司 | 一种实现nGraph框架支持FPGA后端设备的方法 |
CN112579286A (zh) * | 2020-12-16 | 2021-03-30 | 全芯智造技术有限公司 | 用于光源掩模优化的方法、设备和存储介质 |
CN112988363A (zh) * | 2021-05-17 | 2021-06-18 | 阿里云计算有限公司 | 资源调度方法、装置、服务器和存储介质 |
CN113704687A (zh) * | 2020-05-21 | 2021-11-26 | 杭州海康威视数字技术股份有限公司 | 一种张量计算运行方法、装置及运算系统 |
CN113805941A (zh) * | 2021-08-19 | 2021-12-17 | 贝式计算(天津)信息技术有限公司 | 通过替换指令集对应用软件进行加速的系统及方法 |
WO2022057459A1 (zh) * | 2020-09-17 | 2022-03-24 | 苏州浪潮智能科技有限公司 | 一种基于Tensorcore处理int4数据类型的方法、系统、设备及介质 |
WO2022105295A1 (zh) * | 2020-11-19 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 基于nGraph的GPU后端分布式训练方法和系统 |
WO2022218366A1 (zh) * | 2021-04-14 | 2022-10-20 | 华为技术有限公司 | 计算资源的管理方法、系统以及装置 |
WO2023284347A1 (zh) * | 2021-07-16 | 2023-01-19 | 华为云计算技术有限公司 | 任务执行方法及装置 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210142210A1 (en) * | 2019-11-11 | 2021-05-13 | Alibaba Group Holding Limited | Multi-task segmented learning models |
US20210256092A1 (en) * | 2020-02-19 | 2021-08-19 | Nvidia Corporation | Application programming interface to accelerate matrix operations |
CN113313246A (zh) * | 2020-02-27 | 2021-08-27 | 伊姆西Ip控股有限责任公司 | 用于确定模型压缩率的方法、设备和程序产品 |
CN111813541B (zh) * | 2020-06-12 | 2024-04-09 | 北京火山引擎科技有限公司 | 一种任务调度方法、装置、介质和设备 |
CN111708641B (zh) * | 2020-07-14 | 2024-03-19 | 腾讯科技(深圳)有限公司 | 一种内存管理方法、装置、设备及计算机可读存储介质 |
CN114070657A (zh) * | 2020-08-03 | 2022-02-18 | 华为技术有限公司 | 芯片 |
CN112272227B (zh) * | 2020-10-22 | 2022-04-15 | 华侨大学 | 一种基于计算图的边缘计算任务调度方法 |
US20220147808A1 (en) * | 2020-11-06 | 2022-05-12 | Micron Technology, Inc. | Compiler configurable to generate instructions executable by different deep learning accelerators from a description of an artificial neural network |
CN112527272B (zh) * | 2020-12-25 | 2023-11-17 | 深圳云天励飞技术股份有限公司 | 对接tvm的方法及相关设备 |
CN112667379A (zh) * | 2020-12-29 | 2021-04-16 | 深圳Tcl新技术有限公司 | 任务调度方法及服务器 |
CN112650590B (zh) * | 2020-12-29 | 2024-03-15 | 北京奇艺世纪科技有限公司 | 任务的处理方法、装置及系统、分配方法和装置 |
CN112860373A (zh) * | 2021-01-29 | 2021-05-28 | 西藏宁算科技集团有限公司 | 人工智能分布式训练平台的搭建方法及平台 |
CN113360259B (zh) * | 2021-05-28 | 2022-10-11 | 清华大学 | 一种应用于面向云端深度学习推理的分布式fpga多任务调度算法 |
CN113450002A (zh) * | 2021-07-01 | 2021-09-28 | 京东科技控股股份有限公司 | 任务的分配方法、装置、电子设备及存储介质 |
US20230222087A1 (en) * | 2022-01-12 | 2023-07-13 | Dell Products L.P. | Systems and methods for end-to-end workload modeling for servers |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090217275A1 (en) * | 2008-02-22 | 2009-08-27 | International Business Machines Corporation | Pipelining hardware accelerators to computer systems |
US20110022870A1 (en) * | 2009-07-21 | 2011-01-27 | Microsoft Corporation | Component power monitoring and workload optimization |
CN103580909A (zh) * | 2013-05-22 | 2014-02-12 | 杭州华三通信技术有限公司 | 一种硬件资源定制方法及装置 |
US9087161B1 (en) * | 2004-06-28 | 2015-07-21 | Nvidia Corporation | Asymmetrical scaling multiple GPU graphics system for implementing cooperative graphics instruction execution |
CN107122245A (zh) * | 2017-04-25 | 2017-09-01 | 上海交通大学 | Gpu任务调度方法及系统 |
WO2017185285A1 (zh) * | 2016-04-28 | 2017-11-02 | 华为技术有限公司 | 图形处理器任务的分配方法和装置 |
CN107678752A (zh) * | 2017-08-31 | 2018-02-09 | 北京百度网讯科技有限公司 | 一种面向异构集群的任务处理方法及装置 |
US20180121180A1 (en) * | 2015-06-30 | 2018-05-03 | Huawei Technologies Co., Ltd. | Hardware acceleration method, compiler, and device |
US20180165788A1 (en) * | 2014-04-21 | 2018-06-14 | Qualcomm Incorporated | Flex rendering based on a render target in graphics processing |
US10102015B1 (en) * | 2017-06-22 | 2018-10-16 | Microsoft Technology Licensing, Llc | Just in time GPU executed program cross compilation |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7873869B2 (en) * | 2008-10-09 | 2011-01-18 | International Business Machines Corporation | Checkpointing a hybrid architecture computing system |
US8553040B2 (en) * | 2009-06-30 | 2013-10-08 | Apple Inc. | Fingerprinting of fragment shaders and use of same to perform shader concatenation |
US8739171B2 (en) * | 2010-08-31 | 2014-05-27 | International Business Machines Corporation | High-throughput-computing in a hybrid computing environment |
US8789026B2 (en) * | 2011-08-02 | 2014-07-22 | International Business Machines Corporation | Technique for compiling and running high-level programs on heterogeneous computers |
US8707314B2 (en) * | 2011-12-16 | 2014-04-22 | Advanced Micro Devices, Inc. | Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations |
US9632761B2 (en) * | 2014-01-13 | 2017-04-25 | Red Hat, Inc. | Distribute workload of an application to a graphics processing unit |
US11237872B2 (en) * | 2017-05-23 | 2022-02-01 | Kla-Tencor Corporation | Semiconductor inspection and metrology systems for distributing job among the CPUs or GPUs based on logical image processing boundaries |
US11055807B2 (en) * | 2017-06-12 | 2021-07-06 | Apple Inc. | Method and system for a transactional based display pipeline to interface with graphics processing units |
US11567555B2 (en) * | 2019-08-30 | 2023-01-31 | Intel Corporation | Software assisted power management |
-
2018
- 2018-10-31 CN CN201811288666.6A patent/CN111124656B/zh active Active
-
2019
- 2019-05-17 US US16/415,746 patent/US11163610B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9087161B1 (en) * | 2004-06-28 | 2015-07-21 | Nvidia Corporation | Asymmetrical scaling multiple GPU graphics system for implementing cooperative graphics instruction execution |
US20090217275A1 (en) * | 2008-02-22 | 2009-08-27 | International Business Machines Corporation | Pipelining hardware accelerators to computer systems |
US20110022870A1 (en) * | 2009-07-21 | 2011-01-27 | Microsoft Corporation | Component power monitoring and workload optimization |
CN103580909A (zh) * | 2013-05-22 | 2014-02-12 | 杭州华三通信技术有限公司 | 一种硬件资源定制方法及装置 |
US20180165788A1 (en) * | 2014-04-21 | 2018-06-14 | Qualcomm Incorporated | Flex rendering based on a render target in graphics processing |
US20180121180A1 (en) * | 2015-06-30 | 2018-05-03 | Huawei Technologies Co., Ltd. | Hardware acceleration method, compiler, and device |
WO2017185285A1 (zh) * | 2016-04-28 | 2017-11-02 | 华为技术有限公司 | 图形处理器任务的分配方法和装置 |
CN107122245A (zh) * | 2017-04-25 | 2017-09-01 | 上海交通大学 | Gpu任务调度方法及系统 |
US10102015B1 (en) * | 2017-06-22 | 2018-10-16 | Microsoft Technology Licensing, Llc | Just in time GPU executed program cross compilation |
CN107678752A (zh) * | 2017-08-31 | 2018-02-09 | 北京百度网讯科技有限公司 | 一种面向异构集群的任务处理方法及装置 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704687B (zh) * | 2020-05-21 | 2024-04-05 | 杭州海康威视数字技术股份有限公司 | 一种张量计算运行方法、装置及运算系统 |
CN113704687A (zh) * | 2020-05-21 | 2021-11-26 | 杭州海康威视数字技术股份有限公司 | 一种张量计算运行方法、装置及运算系统 |
CN111966485B (zh) * | 2020-06-30 | 2024-03-15 | 北京百度网讯科技有限公司 | 计算资源的调度方法、装置、电子设备以及存储介质 |
CN111966485A (zh) * | 2020-06-30 | 2020-11-20 | 北京百度网讯科技有限公司 | 计算资源的调度方法、装置、电子设备以及存储介质 |
CN112001494A (zh) * | 2020-08-20 | 2020-11-27 | 浪潮电子信息产业股份有限公司 | 一种实现nGraph框架支持FPGA后端设备的方法 |
US11762721B2 (en) | 2020-08-20 | 2023-09-19 | Inspur Electronic Information Industry Co., Ltd. | Method for realizing nGraph framework supporting FPGA rear-end device |
WO2022036852A1 (zh) * | 2020-08-20 | 2022-02-24 | 浪潮电子信息产业股份有限公司 | 一种实现nGraph框架支持FPGA后端设备的方法 |
WO2022057459A1 (zh) * | 2020-09-17 | 2022-03-24 | 苏州浪潮智能科技有限公司 | 一种基于Tensorcore处理int4数据类型的方法、系统、设备及介质 |
WO2022105295A1 (zh) * | 2020-11-19 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 基于nGraph的GPU后端分布式训练方法和系统 |
CN112579286B (zh) * | 2020-12-16 | 2021-08-06 | 全芯智造技术有限公司 | 用于光源掩模优化的方法、设备和存储介质 |
CN112579286A (zh) * | 2020-12-16 | 2021-03-30 | 全芯智造技术有限公司 | 用于光源掩模优化的方法、设备和存储介质 |
WO2022218366A1 (zh) * | 2021-04-14 | 2022-10-20 | 华为技术有限公司 | 计算资源的管理方法、系统以及装置 |
CN112988363B (zh) * | 2021-05-17 | 2021-09-14 | 阿里云计算有限公司 | 资源调度方法、装置、服务器和存储介质 |
CN112988363A (zh) * | 2021-05-17 | 2021-06-18 | 阿里云计算有限公司 | 资源调度方法、装置、服务器和存储介质 |
WO2023284347A1 (zh) * | 2021-07-16 | 2023-01-19 | 华为云计算技术有限公司 | 任务执行方法及装置 |
CN113805941A (zh) * | 2021-08-19 | 2021-12-17 | 贝式计算(天津)信息技术有限公司 | 通过替换指令集对应用软件进行加速的系统及方法 |
CN113805941B (zh) * | 2021-08-19 | 2023-12-12 | 贝式计算(天津)信息技术有限公司 | 通过替换指令集对应用软件进行加速的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111124656B (zh) | 2023-09-15 |
US11163610B2 (en) | 2021-11-02 |
US20200133735A1 (en) | 2020-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111124656B (zh) | 用于向专用计算资源分配任务的方法、设备和计算机可读存储介质 | |
CN111831287B (zh) | 用于确定执行代码段所需的资源的方法、设备和程序产品 | |
US9557975B2 (en) | Adaptable and extensible runtime and system for heterogeneous computer systems | |
US11188348B2 (en) | Hybrid computing device selection analysis | |
CN114327861B (zh) | 执行eda任务的方法、装置、系统和存储介质 | |
CN109697121B (zh) | 用于向应用分配处理资源的方法、设备和计算机可读介质 | |
Galvez et al. | Automatic topology mapping of diverse large-scale parallel applications | |
CN112925587A (zh) | 用于初始化应用的方法和装置 | |
CN113204412A (zh) | 用于任务调度的方法、电子设备和计算机存储介质 | |
CN104423948A (zh) | 自动化脚本运行方法及装置 | |
CN111767059A (zh) | 深度学习模型的部署方法、装置、电子设备和存储介质 | |
Diehl et al. | Octo-tiger’s new hydro module and performance using hpx+ cuda on ornl’s summit | |
US10095494B2 (en) | Systems and methods for footprint based scheduling | |
CN111563253A (zh) | 智能合约运行方法、装置、设备及存储介质 | |
US9043582B2 (en) | Enhanced instruction scheduling during compilation of high level source code for improved executable code | |
US11573777B2 (en) | Method and apparatus for enabling autonomous acceleration of dataflow AI applications | |
Desnos et al. | Buffer merging technique for minimizing memory footprints of synchronous dataflow specifications | |
US9600254B1 (en) | Loop branch reduction | |
JP2022542007A (ja) | テスト・ベクタを使用した高水準コンストラクトの最適化の自動検証 | |
CN111078230A (zh) | 一种代码生成方法和装置 | |
US8543971B2 (en) | Specifying on the fly sequential assembly in SOA environments | |
Aher et al. | Accelerate the execution of graph processing using GPU | |
US20230205584A1 (en) | Control flow invariant resource identification | |
Fiaidhi et al. | Empowering extreme automation via zero-touch operations and GPU parallelization | |
Vigueras et al. | On the use of GPU for accelerating communication-aware mapping techniques |
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 |