CN116719635A - 一种异构计算架构中核函数的调度方法 - Google Patents

一种异构计算架构中核函数的调度方法 Download PDF

Info

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
Application number
CN202310485654.7A
Other languages
English (en)
Inventor
李正蛟
魏子重
赵鑫鑫
王帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Inspur Science Research Institute Co Ltd
Original Assignee
Shandong Inspur Science Research Institute Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Inspur Science Research Institute Co Ltd filed Critical Shandong Inspur Science Research Institute Co Ltd
Priority to CN202310485654.7A priority Critical patent/CN116719635A/zh
Publication of CN116719635A publication Critical patent/CN116719635A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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所述的一种异构计算架构中核函数的调度方法,其特征在于:所述调度程序包括:
调用请求接收模块,用于接收应用计算核调用请求;
请求调度模块,调用至少一个线程,并行处理调用请求;
第一确定模块,用于解析请求信息,确定请求优先级;
第二确定模块,用于检索计算核,确定计算核执行状态和执行参数;
第三确定模块,用于互斥执行计算核,确定执行顺序;
执行模块,执行每个调用请求,互斥异构计算设备,顺序执行调用请求,同步异构设备计算结果。
CN202310485654.7A 2023-05-04 2023-05-04 一种异构计算架构中核函数的调度方法 Pending CN116719635A (zh)

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)

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