CN111897653A - 一种协同计算方法、装置、系统及介质 - Google Patents
一种协同计算方法、装置、系统及介质 Download PDFInfo
- Publication number
- CN111897653A CN111897653A CN202010753623.1A CN202010753623A CN111897653A CN 111897653 A CN111897653 A CN 111897653A CN 202010753623 A CN202010753623 A CN 202010753623A CN 111897653 A CN111897653 A CN 111897653A
- Authority
- CN
- China
- Prior art keywords
- cpu
- message queue
- gpu
- application task
- parameter configuration
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 30
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000012545 processing Methods 0.000 claims description 8
- 230000008901 benefit Effects 0.000 abstract description 5
- 238000013461 design Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本发明提供了本发明提供了一种协同计算方法、装置、系统及介质,所述协同计算方法包括:CPU将应用任务放入第一消息队列;GPU处理第一消息队列中的应用任务,并把处理后的结果放入第二消息队列;CPU处理第二消息队列中的应用任务。本发明提供的GPU+CPU协同计算方法,能够在GPU+CPU的系统中,充分发挥CPU和GPU各自的优势,尽可能地利用系统资源,在提升计算性能的同时保证系统负载的均衡性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种协同计算方法、装置、系统及介质。
背景技术
基于GPU+CPU的异构协同计算系统具有很大的发展潜力。
由于GPU在神经网络计算方面得天独厚的优势,很多基于神经网络的系统,如基于神经网络的语音识别、语音合成等系统都已经引入了GPU,利用GPU的超强算力,提升整个系统的计算能力。
同时由于历史原因,以及CPU在串行/并行计算方面也有其优势,并不能完全使用GPU替代掉CPU。因此,目前最常见的系统是GPU+CPU的异步系统计算构架:由GPU负责计算量最大的神经网络计算部分,而这部分计算占整个系统中的大部分计算,其他并行计算由CPU线程多线程负责。
但由于CPU和GPU计算能力差距巨大,有各自擅长的应用领域,所以协同计算时,如果不进行协同设计,极容易造成资源浪费、系统负载失衡甚至达不到预定目标。
在GPU+CPU的异构系统中,如果不进行协同设计,在高并发计算时,极容易造成负载失衡,导致整个机器的sy升高,影响整个系统的性能,甚至不可用,这是因为sy严重升高,说明系统调度困难,从而也会影响系统的正常计算能力,最终恶性循环。
发明内容
本发明实施例的目的是提供一种协同计算方法及装置,以解决现有技术中的GPU+CPU异构计算系统中,由于协同原因导致的负载失衡问题。
为解决上述问题,第一方面,本发明提供了一种协同计算方法,所述方法包括:
CPU将应用任务放入第一消息队列;
GPU处理第一消息队列中的应用任务,并把处理后的结果放入第二消息队列;
CPU处理第二消息队列中的应用任务。
在一种可能的实现方式中,根据应用任务,调节CPU的参数配置。
在一种可能的实现方式中,所述根据应用任务,调节CPU的参数配置,具体为:
根据应用任务,配置CPU使用的核个数。
在一种可能的实现方式中,所述根据应用任务,配置CPU使用的核个数,具体为:
配置给CPU使用的核个数小于CPU总核数。
在一种可能的实现方式中,调节GUP的参数配置,处理第一消息队列中的应用任务。
通过使用新的协同计算方法,系统负载均衡性和计算性都能大幅度提高。
第二方面,本发明提供了一种协同计算装置,所述装置包括:CPU运算模块和GPU运算模块;
所述CPU运算模块,用于将应用任务放入第一消息队列;
所述GPU运算模块,用于处理第一消息队列中的应用任务,并把处理后的结果放入第二消息队列;
所述CPU运算模块,还用于处理第二消息队列中的应用任务。
在一种可能的实现方式中,所述装置还包括CPU参数配置模块,用于根据应用任务,调节CPU的参数配置。
在一种可能的实现方式中,所述装置还包括GPU参数配置模块,用于调节GUP的参数配置,处理第一消息队列中的应用任务。
第三方面,本发明提供了一种协同计算系统,所述系统包括至少一个处理器和存储器;
所述存储器,用于存储一个或多个程序指令;
所述处理器,用于运行一个或多个程序指令,用以执行如第一方面所述的方法。
第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质包括一个或多个程序指令,所述一个或多个程序指令可被如第三方面所述的系统执行,以实现如第一方面所述的方法。
通过应用本发明实施例提供的一种GPU+CPU协同计算装置,能够在GPU+CPU的系统中,充分发挥CPU和GPU各自的优势,尽可能地利用系统资源,在提升计算性能的同时保证系统负载的均衡性。
附图说明
图1为本发明实施例提供的协同计算方法流程示意图;
图2为本发明实施例提供的CUP&GPU调度系统设计架构图;
图3为本发明实施例提供的协同计算装置结构示意图一;
图4为本发明实施例提供的协同计算装置结构示意图二;
图5为本发明实施例提供的协同计算装置结构示意图三‘
图6为为本发明实施例提供的协同计算系统结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1为本发明实施例提供的协同计算方法流程示意图。如图1所示,该协同计算方法包括以下流程:
步骤110,CPU将应用任务放入第一消息队列。
具体的,在运算过程中,CPU和GPU的运算速度差别很大,GUP运算比较快,CPU的运算速度远远跟不上GPU的运算速度,会导致数据丢失,或系统调度直接被压瘫痪。若不进行协同设计,在高并发计算时,很容易造成系统负载失衡。图2是本发明实施例提供的CUP&GPU调度系统设计架构图,如图2所示,本发明实施例在CUP和GPU中间增Message Queue消息队列,起到直接削峰和CPU与GPU调度解耦作用,避免GPU运算过快,CPU处理堆积,直接导致系统服务崩溃。具体的,当CUP接收到应用任务时,CUP将应用任务放入第一消息队列,比如从第一消息队列1到第一消息队列N,等待GPU的处理。
在一个示例中,在CPU接收到应用任务时,CPU对应用任务进行简单的运算,根据应用任务,调节CPU的参数配置,具体的,根据应用任务,配置CPU使用的核个数,比如,CPU是32核,若不加限制的话,就会导致CPU的使用率达到100%,为防止CPU不可用,不将总核数配置给CPU使用,而是配置给CPU使用的核个数小于CPU总核数,比如将其中的30核分配给CPU,这样,CPU的使用率只有90%多,达不到100%。即:当应用任务多线程并发请求时,特别是峰值周期请求持续增加,通过配置最大可用的CPU核个数避免系统调度直接被压瘫痪和CPU使用率直接达到100%.
步骤120,GPU处理第一消息队列中的应用任务,并把处理后的结果放入第二消息队列。
在另一个示例中,如图2所示,可以调节GUP参数配置,处理第一消息队列中的应用任务,具体的,可以根据第一消息队列中的任务情况,来调节GUP参数配置,比如,可根据任务的多少,来配置GPU卡的具体数量。GPU处理完第一消息队列中的应用任务,把处理后的结果放入第二消息队列中,等待CPU来进行处理。
步骤130,CPU处理第二消息队列中的应用任务。
在本发明实施例提供的协同计算方法中,CPU和GPU完全没有直接通讯,两者之间不会发生速度不匹配的问题,而是通过增加的消息队列产生联系。
本发明实施例通过增加CPU和GPU参数配置和Message Queue消息队列异步削峰和解耦,既解决GPU+CPU异构计算算力又解决了系统负载的满载问题。具体的:
1,当应用任务多线程并发请求时,特别是峰值周期请求持续增加,通过配置最大可用的CPU核个数避免系统调度直接被压瘫痪和CPU使用率直接达到100%。
2,增加Message Queue消息队列,起到直接削峰和CPU与GPU调度解耦作用,避免GPU运算过快,CPU处理堆积,直接导致系统服务崩溃。
3,为了提高算力,GPU运算模块增加GPU参数设备,如可配置同时使用多张GPU卡计算消息队列里特定的任务等。
与上述实施例对应的,本发明还提供了一种协同计算装置,如图3所示,该语音识别装置包括:CPU运算模块310和GPU运算模块320。
CPU运算模块310,用于将应用任务放入第一消息队列;
GPU运算模块320,用于处理第一消息队列中的应用任务,并把处理后的结果放入第二消息队列;
CPU运算模块310,还用于处理第二消息队列中的应用任务。
在再一个示例中,如图4所示,装置还包括CPU参数配置模块410,用于根据应用任务,调节CPU的参数配置。
在又一个示例中,如图5所示,装置还包括GPU参数配置模块510,用于调节GUP的参数配置,处理第一消息队列中的应用任务。
再次需要说明的是,装置也可同时包括CPU参数配置模块410和GPU参数配置模块510。
本发明实施例提供的一种协同计算装置中各部件所执行的功能均已在上述方法中做了详细介绍,因此这里不做过多赘述。
与上述实施例相对应的,本发明实施例、还提供了一种协同计算系统,具体如图6所示,该系统包括至少一个处理器610和存储器620;
存储器610,用于存储一个或多个程序指令;
处理器620,用于运行一个或多个程序指令,执行如上述实施例所介绍的一种协同计算方法中的任一方法步骤。
与上述实施例相对应的,本发明实施例还提供了一种计算机存储介质,该计算机存储介质中包括一个或多个程序,其中,一个或多个程序指令用于被一种协同计算系统执行如上介绍的协同计算方法。
目前人工智能发展越来越迅速,算法逐步升级,算力要求越来越大,基于GPU+CPU的异构系统慢慢占据主流,但存在计算能力不匹配,系统负载陡增崩溃问题。本发明实施例通过设计一种GPU+CPU异构系统协同调度系统,既解决GPU+CPU异构计算算力又解决了系统负载的满载问题。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种协同计算方法,其特征在于,所述方法包括:
CPU将应用任务放入第一消息队列;
GPU处理第一消息队列中的应用任务,并把处理后的结果放入第二消息队列;
CPU处理第二消息队列中的应用任务。
2.根据权利要求1所述的方法,其特征在于,根据应用任务,调节CPU的参数配置。
3.根据权利要求2所述的方法,其特征在于,所述根据应用任务,调节CPU的参数配置,具体为:
根据应用任务,配置CPU使用的核个数。
4.根据权利要求3所述的方法,其特征在于,所述根据应用任务,配置CPU使用的核个数,具体为:
配置给CPU使用的核个数小于CPU总核数。
5.根据权利要求1所述的方法,其特征在于,调节GUP的参数配置,处理第一消息队列中的应用任务。
6.一种协同计算装置,其特征在于,所述装置包括:CPU运算模块和GPU运算模块;
所述CPU运算模块,用于将应用任务放入第一消息队列;
所述GPU运算模块,用于处理第一消息队列中的应用任务,并把处理后的结果放入第二消息队列;
所述CPU运算模块,还用于处理第二消息队列中的应用任务。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括CPU参数配置模块,用于根据应用任务,调节CPU的参数配置。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括GPU参数配置模块,用于调节GUP的参数配置,处理第一消息队列中的应用任务。
9.一种协同计算系统,其特征在于,所述系统包括至少一个处理器和存储器;
所述存储器,用于存储一个或多个程序指令;
所述处理器,用于运行一个或多个程序指令,用以执行如权利要求1至5中一个或多个所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括一个或多个程序指令,所述一个或多个程序指令可被如权利要求9所述的系统执行,以实现如权利要求1至5中一个或多个所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010753623.1A CN111897653A (zh) | 2020-07-30 | 2020-07-30 | 一种协同计算方法、装置、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010753623.1A CN111897653A (zh) | 2020-07-30 | 2020-07-30 | 一种协同计算方法、装置、系统及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111897653A true CN111897653A (zh) | 2020-11-06 |
Family
ID=73183494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010753623.1A Pending CN111897653A (zh) | 2020-07-30 | 2020-07-30 | 一种协同计算方法、装置、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111897653A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120069029A1 (en) * | 2010-09-20 | 2012-03-22 | Qualcomm Incorporated | Inter-processor communication techniques in a multiple-processor computing platform |
CN104778074A (zh) * | 2014-01-14 | 2015-07-15 | 腾讯科技(深圳)有限公司 | 一种计算任务处理方法及装置 |
CN110349076A (zh) * | 2019-07-18 | 2019-10-18 | 秒针信息技术有限公司 | 数据的处理方法及装置 |
CN111061804A (zh) * | 2019-10-30 | 2020-04-24 | 平安科技(深圳)有限公司 | 基于大数据的异步数据处理方法、装置、设备和存储介质 |
CN111190735A (zh) * | 2019-12-30 | 2020-05-22 | 湖南大学 | 一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统 |
-
2020
- 2020-07-30 CN CN202010753623.1A patent/CN111897653A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120069029A1 (en) * | 2010-09-20 | 2012-03-22 | Qualcomm Incorporated | Inter-processor communication techniques in a multiple-processor computing platform |
CN104778074A (zh) * | 2014-01-14 | 2015-07-15 | 腾讯科技(深圳)有限公司 | 一种计算任务处理方法及装置 |
CN110349076A (zh) * | 2019-07-18 | 2019-10-18 | 秒针信息技术有限公司 | 数据的处理方法及装置 |
CN111061804A (zh) * | 2019-10-30 | 2020-04-24 | 平安科技(深圳)有限公司 | 基于大数据的异步数据处理方法、装置、设备和存储介质 |
CN111190735A (zh) * | 2019-12-30 | 2020-05-22 | 湖南大学 | 一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107592345B (zh) | 交易限流装置、方法及交易系统 | |
CN107124472A (zh) | 负载均衡方法及装置、计算机可读存储介质 | |
US11876731B2 (en) | System and methods for sharing memory subsystem resources among datacenter applications | |
CN108900626B (zh) | 一种云环境下数据存储方法、装置及系统 | |
CN110990154B (zh) | 一种大数据应用优化方法、装置及存储介质 | |
US20110131579A1 (en) | Batch job multiplex processing method | |
CN112181613B (zh) | 异构资源分布式计算平台批量任务调度方法及存储介质 | |
US11438271B2 (en) | Method, electronic device and computer program product of load balancing | |
CN109828790B (zh) | 一种基于申威异构众核处理器的数据处理方法和系统 | |
CN115237580B (zh) | 面向智能计算的流水并行训练自适应调整系统、方法 | |
CN112711479A (zh) | 服务器集群的负载均衡系统、方法、装置和存储介质 | |
CN116361010B (zh) | 一种用于腾云s2500的cpu资源调配调度优化方法 | |
CN113032102A (zh) | 资源重调度方法、装置、设备和介质 | |
CN114579284A (zh) | 任务调度方法及装置 | |
CN110580195A (zh) | 一种基于内存热插拔的内存分配方法和装置 | |
CN104156271A (zh) | 一种协同计算集群负载均衡的方法及系统 | |
CN114217974A (zh) | 一种云计算环境中的资源管理方法及系统 | |
CN106775975A (zh) | 进程调度方法及装置 | |
CN106775925B (zh) | 一种虚拟机cpu的限额处理方法和装置 | |
CN111367645B (zh) | 一种实时任务调度控制方法、系统、设备及可读存储介质 | |
CN111897653A (zh) | 一种协同计算方法、装置、系统及介质 | |
CN111722923A (zh) | 一种异构资源的调用方法、装置和计算机可读存储介质 | |
CN115269118A (zh) | 一种虚拟机的调度方法、装置及设备 | |
CN111736986B (zh) | 一种深度学习模型的fpga加速执行方法及相关装置 | |
CN108255601B (zh) | 一种分配llc资源的方法及装置 |
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 |