CN116719635A - 一种异构计算架构中核函数的调度方法 - Google Patents
一种异构计算架构中核函数的调度方法 Download PDFInfo
- Publication number
- CN116719635A CN116719635A CN202310485654.7A CN202310485654A CN116719635A CN 116719635 A CN116719635 A CN 116719635A CN 202310485654 A CN202310485654 A CN 202310485654A CN 116719635 A CN116719635 A CN 116719635A
- Authority
- CN
- China
- Prior art keywords
- computing
- request
- execution
- core
- heterogeneous
- 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
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000006870 function Effects 0.000 claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims abstract description 9
- 230000008569 process Effects 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 abstract description 4
- 230000007717 exclusion Effects 0.000 abstract description 4
- 230000001133 acceleration Effects 0.000 abstract description 2
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 4
- 230000004075 alteration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- 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/5011—Pool
-
- 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/5018—Thread allocation
-
- 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/5021—Priority
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及数据库异构计算加速技术领域,具体为一种异构计算架构中核函数的调度方法,包括以下步骤:接收若干计算核调用请求;调用至少一个线程,并行处理调用请求;针对每个调用请求,解析请求信息,确定请求优先级;针对请求信息,检索计算核,确定计算核执行状态核执行参数;有益效果为:本发明提出的异构计算架构中核函数的调度方法中,调度程序接收若干计算核调用请求,根据请求信息确定计算核执行状态,对计算核增加互斥逻辑的同时,执行时对异构计算设备也增加互斥逻辑,避免了对物理设备及逻辑计算资源的争用,该方法有效的增强了上层应用的健壮性,并降低了开发难度。
Description
技术领域
本发明涉及数据库异构计算加速技术领域,具体为一种异构计算架构中核函数的调度方法。
背景技术
随着通信和网络技术的迅速发展,网络计算概念应运而生。同构网络计算系统now或cow首先兴起,接着很快涌现出异构网络计算系统,从而使异构计算近年来成为并行/分布计算领域中的主要研究热点之一。
现有技术中,随着计算机技术的发展,多线程编程模型已成为应用软件的标配,在多线程编程中对资源的访问大多需要互斥逻辑,在异构计算中面临着同样的多线程互斥访问问题。
发明内容
本发明的目的在于提供一种异构计算架构中核函数的调度方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种异构计算架构中核函数的调度方法,所述调度方法包括以下步骤:
接收若干计算核调用请求;
调用至少一个线程,并行处理调用请求;
针对每个调用请求,解析请求信息,确定请求优先级;
针对请求信息,检索计算核,确定计算核执行状态核执行参数;
针对计算核,构建互斥执行对象,根据优先级确定执行顺序;
针对执行对象及执行顺序,顺序下发计算命令,等待执行结果并返回。
优选的,接收若干计算核调用请求时,调用请求由至少一个线程并行执行。
优选的,调用请求并行处理时,采用线程池技术,针对每个请求分配一个线程进行处理。
优选的,请求信息中包含计算核唯一标识信息用于定位计算核,参数信息。
优选的,请求优先级的确定是不同计算核根据时间复杂度确定,时间复杂度低的优先级高,同一计算核根据参数规模确定,规模小的优先级高。
优选的,采用调度程序实现异构计算架构中核函数的调度。
优选的,所述调度程序包括:
调用请求接收模块,用于接收应用计算核调用请求;
请求调度模块,调用至少一个线程,并行处理调用请求;
第一确定模块,用于解析请求信息,确定请求优先级;
第二确定模块,用于检索计算核,确定计算核执行状态和执行参数;
第三确定模块,用于互斥执行计算核,确定执行顺序;
执行模块,执行每个调用请求,互斥异构计算设备,顺序执行调用请求,同步异构设备计算结果。
与现有技术相比,本发明的有益效果是:
本发明提出的异构计算架构中核函数的调度方法中,调度程序接收若干计算核调用请求,根据请求信息确定计算核执行状态,对计算核增加互斥逻辑的同时,执行时对异构计算设备也增加互斥逻辑,避免了对物理设备及逻辑计算资源的争用,该方法有效的增强了上层应用的健壮性,并降低了开发难度。
附图说明
图1为本发明方法流程图;
图2为本发明调度程序逻辑示意图;
图3为本发明调度程序运行示意图。
具体实施方式
为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参阅图1,本发明提供一种技术方案:一种异构计算架构中计算核调度方法,具体包括以下步骤:
1)接收若干计算核调用请求,所述调用请求由至少一个线程并行执行。
在本说明书提供的实施例中,并行执行调用请求是由上层应用触发,触发方式本说明书不做限制。
2)调用至少一个线程,并行处理调用请求。
具体的,一种可行的调用请求并行处理实施例采用线程池技术,针对每个请求分配一个线程进行处理。
3)针对每个调用请求,解析请求信息,确定请求优先级。
具体的,首先,请求信息中包含计算核唯一标识信息用于定位计算核,参数信息等;
其次,请求优先级的确定一种可行的实施方式是不同计算核根据时间复杂度确定,时间复杂度低的优先级高,同一计算核根据参数规模确定,规模小的优先级高。具体的确定方式本说明书不做限制,可以采用已有成熟的算法。
4)针对所述请求信息,检索计算核,确定计算核执行状态核执行参数。
5)针对所述计算核,构建互斥执行对象,根据所述优先级确定执行顺序。
6)针对所述执行对象及执行顺序,顺序下发计算命令,等待执行结果并返回。
实施例二
在实施例一的基础上,提供一种调度程序,包括:
调用请求接收模块,用于接收应用计算核调用请求;
请求调度模块,调用至少一个线程,并行处理调用请求;
第一确定模块,用于解析请求信息,确定请求优先级;
第二确定模块,用于检索计算核,确定计算核执行状态和执行参数;
第三确定模块,用于互斥执行计算核,确定执行顺序;
执行模块,执行每个调用请求,互斥异构计算设备,顺序执行调用请求,同步异构设备计算结果。
实施例三
参照附图2为本说明书中调度程序逻辑示意图,图中多个请求线程向调度程序发送调用请求,调度程序的接收模块将请求r1~rn放入请求队列;调度模块从请求队列获取请求并并行处理,每个处理线程会根据调度算法确定执行优先级,通过请求信息及优先级信息创建执行对象k1~kn,将执行对象插入有序执行队列中;执行模块从执行队列顺序获取执行对象,调用异构设备驱动接口下发计算指令,已完成指令c1~cn放入完成队列,指令模块遍历完成队列通过回调接口返回计算结果或其他错误。
实施例四
参照附图3为本说明书中调度程序运行示意图,调度程序运行在主机内存中,异构计算设备如GPU、FPGA或ASIC通过主机PCIe接口与处理器相连,调度程序通过设备驱动接口下发计算指令,计算指令的下发不在本发明权利要求范围之内。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (7)
1.一种异构计算架构中核函数的调度方法,其特征在于:所述调度方法包括以下步骤:
接收若干计算核调用请求;
调用至少一个线程,并行处理调用请求;
针对每个调用请求,解析请求信息,确定请求优先级;
针对请求信息,检索计算核,确定计算核执行状态核执行参数;
针对计算核,构建互斥执行对象,根据优先级确定执行顺序;
针对执行对象及执行顺序,顺序下发计算命令,等待执行结果并返回。
2.根据权利要求1所述的一种异构计算架构中核函数的调度方法,其特征在于:接收若干计算核调用请求时,调用请求由至少一个线程并行执行。
3.根据权利要求1所述的一种异构计算架构中核函数的调度方法,其特征在于:调用请求并行处理时,采用线程池技术,针对每个请求分配一个线程进行处理。
4.根据权利要求1所述的一种异构计算架构中核函数的调度方法,其特征在于:请求信息中包含计算核唯一标识信息用于定位计算核,参数信息。
5.根据权利要求4所述的一种异构计算架构中核函数的调度方法,其特征在于:请求优先级的确定是不同计算核根据时间复杂度确定,时间复杂度低的优先级高,同一计算核根据参数规模确定,规模小的优先级高。
6.根据权利要求1所述的一种异构计算架构中核函数的调度方法,其特征在于:采用调度程序实现异构计算架构中核函数的调度。
7.根据权利要求6所述的一种异构计算架构中核函数的调度方法,其特征在于:所述调度程序包括:
调用请求接收模块,用于接收应用计算核调用请求;
请求调度模块,调用至少一个线程,并行处理调用请求;
第一确定模块,用于解析请求信息,确定请求优先级;
第二确定模块,用于检索计算核,确定计算核执行状态和执行参数;
第三确定模块,用于互斥执行计算核,确定执行顺序;
执行模块,执行每个调用请求,互斥异构计算设备,顺序执行调用请求,同步异构设备计算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310485654.7A CN116719635A (zh) | 2023-05-04 | 2023-05-04 | 一种异构计算架构中核函数的调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310485654.7A CN116719635A (zh) | 2023-05-04 | 2023-05-04 | 一种异构计算架构中核函数的调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116719635A true CN116719635A (zh) | 2023-09-08 |
Family
ID=87868628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310485654.7A Pending CN116719635A (zh) | 2023-05-04 | 2023-05-04 | 一种异构计算架构中核函数的调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116719635A (zh) |
-
2023
- 2023-05-04 CN CN202310485654.7A patent/CN116719635A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9983903B2 (en) | Parallel execution of parsed query based on a concurrency level | |
US20210073169A1 (en) | On-chip heterogeneous ai processor | |
CN108416433B (zh) | 一种基于异步事件的神经网络异构加速方法和系统 | |
WO2021088419A1 (zh) | 一种多业务请求进程调用fpga设备的方法及相关装置 | |
EP3893112A2 (en) | Method and apparatus for scheduling deep learning reasoning engines, device, and medium | |
US11422817B2 (en) | Method and apparatus for executing instructions including a blocking instruction generated in response to determining that there is data dependence between instructions | |
CN111078436B (zh) | 数据处理的方法、装置、设备及存储介质 | |
US20220342712A1 (en) | Method for Processing Task, Processor, Device and Readable Storage Medium | |
US11372673B2 (en) | Artificial intelligence chip and instruction execution method for artificial intelligence chip | |
CN109522108A (zh) | 一种基于Kernel合并的GPU任务调度系统及方法 | |
CN111190741A (zh) | 基于深度学习节点计算的调度方法、设备及存储介质 | |
CN116719635A (zh) | 一种异构计算架构中核函数的调度方法 | |
US11301304B2 (en) | Method and apparatus for managing kernel services in multi-core system | |
CN102495762B (zh) | 一种线程调度方法、线程调度装置及多核处理器系统 | |
CN110837419A (zh) | 基于弹性批处理的推理引擎系统、方法及电子设备 | |
CN116243983A (zh) | 处理器、集成电路芯片、指令处理方法、电子设备和介质 | |
US10891134B2 (en) | Method and apparatus for executing instruction for artificial intelligence chip | |
CN115712493A (zh) | 请求处理方法、设备及系统 | |
JPH064314A (ja) | タスク間同期通信装置 | |
US11892970B2 (en) | Synchronizing coprocessors using synchronization instructions to force a second coprocessor to wait until receiving an acknowledgement signal from a first coprocessor | |
CN116700996B (zh) | 一种神经网络的内存分配方法、装置、设备及介质 | |
WO2024016894A1 (zh) | 一种神经网络的训练方法以及相关设备 | |
CN108304343A (zh) | 一种复杂soc的片上通信方法 | |
CN116152628A (zh) | 一种神经网络模型自动流水并行加速方法 | |
CN117539598A (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 |