CN116089050B - 一种异构自适应任务调度方法 - Google Patents

一种异构自适应任务调度方法 Download PDF

Info

Publication number
CN116089050B
CN116089050B CN202310393335.3A CN202310393335A CN116089050B CN 116089050 B CN116089050 B CN 116089050B CN 202310393335 A CN202310393335 A CN 202310393335A CN 116089050 B CN116089050 B CN 116089050B
Authority
CN
China
Prior art keywords
equipment
function
optimization
template
management interface
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.)
Active
Application number
CN202310393335.3A
Other languages
English (en)
Other versions
CN116089050A (zh
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.)
Hunan University
Original Assignee
Hunan University
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 Hunan University filed Critical Hunan University
Priority to CN202310393335.3A priority Critical patent/CN116089050B/zh
Publication of CN116089050A publication Critical patent/CN116089050A/zh
Application granted granted Critical
Publication of CN116089050B publication Critical patent/CN116089050B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
    • 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
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种异构自适应任务调度方法,其方法包括:获取设备相关数据;所述设备相关数据包括参数和设备信息;建立自动调优框架,所述自动调优框架根据所述设备信息获取函数,并根据所述参数将所述函数转换为可执行代码;所述可执行代码用于实现设备自适应调优安装。该方法实现了高效的隐式有限元异构自适应计算,通过该方法能够解决航天、航空、汽车、重工、船舶、电子电器等领域进行产品快速有限元仿真分析需求。

Description

一种异构自适应任务调度方法
技术领域
本发明涉及有限元技术领域,具体涉及一种异构自适应任务调度方法。
背景技术
有限元仿真分析广泛应用于航天、航空、汽车、重工、船舶、电子电器等领域,已经成为工业产品正向创新研制必不可少的手段与方法。与此同时,随着工业的快速发展和产品复杂度的不断提高,相应的有限元仿真计算规模也不断增加。由此导致仿真计算时间呈现爆发式增长,已经成为制约产品快速迭代的关键因素。因此,如何充分利用现代处理器架构实现高效的有限元仿真计算缩短仿真时间,进而缩短产品研发周期、加速产品迭代进程成为至关重要的问题。
现有的HyperWorks OptiStruct求解器,包含了多种隐式有限元求解算法,并实现基于共享内存多线程并行计算方法,但该求解器目前仅支持通过CPU多线程并行来实现加速计算,并不支持GPU异构加速计算,这难以满足当前大规模有限元分析的快速求解需求。
发明内容
基于此,有必要针对现有的问题,提供一种异构自适应任务调度方法。
第一方面,本申请实施例提供了一种异构自适应任务调度方法,所述方法包括:
S1:获取设备相关数据;所述设备相关数据包括参数和设备信息;
S2:建立自动调优框架,所述自动调优框架根据所述设备信息获取函数,并根据所述参数将所述函数转换为可执行代码;所述可执行代码用于实现设备自适应调优安装。
优选的,所述设备相关数据还包括:设备架构、指令集;
所述方法还包括:根据所述设备架构、指令集以及参数对GPU架构进行优化,并构建函数库;所述优化包括底层优化、二次优化以及负载均衡优化;所述指令集包括函数模板;所述函数模板为核函数模板,所述函数模板包括多个。
优选的,所述设备相关数据还包括设备特征;所述设备特征包括但不限于线程束尺寸差异、流处理器提供的缓存与寄存区数量之间的差异、支持张量核心或不支持张量核心;所述设备特征用于进行底层优化。
优选的,所述底层优化为:
根据设备架构、指令集以及设备特征对GPU架构进行底层优化。
优选的,所述二次优化包括:
根据同一所述设备架构中不同的所述参数对GPU架构进行二次优化;
对所述函数模板进行进一步优化,将进一步优化的所述函数模板作为最优函数模板;
获取处理器的多核特征,并根据所述多核特征对所述函数进行并行计算,并行计算的所述函数用于为不同线程数量提供进一步的细粒度优化;
根据所述设备架构以及所述指令集构建函数库。
优选的,构建所述函数库的过程为:
步骤1:根据所述设备架构以及所述指令集,构建指令集模板;所述指令集模板包括多个;
步骤2:为所有所述指令集模板均设计多线程函数模板;通过多线程函数模板为指令集模板中的函数进行不同线程数量下的性能调优,并进一步生成相应的子模板;
步骤3:为所有所述多线程函数模板设计数据适应模板;
步骤4:对所述数据适应模板进行操作系统以及编译器适配,构建所述函数库。
优选的,所述负载均衡优化包括:
建立负载均衡模型,并离散所述负载均衡模型;采用图分区算法对离散后的负载均衡模型进行分区,得到多个子模型;根据多个子模型之间的公共边界进行负载均衡优化。
优选的,建立所述负载均衡模型的过程为:
步骤1:初始化任务池和工作池;
步骤2:遍历任务池中的所有子任务,将当前子任务记为:S
步骤3:基于当前子任务,遍历所有设备,直至获取到当前工作量最少的设备,所述当前工作量最少的设备记为:D min;结束设备遍历;
步骤4:计算当前工作量最少的设备处理当前子任务所需的时间,所述时间记为:T(D min,S);
步骤5:根据此前工作量最少的设备的工作时间以及所述时间,在工作池中更新当前工作量最少的设备的工作时间;结束任务遍历;
通过步骤1至步骤5建立所述负载均衡模型。
优选的,得到所述可执行代码的过程为:
所述自动调优框架根据所述设备信息从函数库中获取函数,所述自动调优框架包括数学模型;将所述参数输入至所述数学模型,输出结果;根据所述结果将所述函数进行模板特化操作,得到所述可执行代码。
优选的,所述方法还包括管理优化;所述管理优化通过设置内存管理接口、设备管理接口以及线程管理接口,分别对设备内存参数、设备间的工作方式以及函数的线程数进行管理;
所述内存管理接口可实时设置不同设备的内存、显存的基础参数以及页锁定内存高级参数;
所述设备管理接口包括异构计算设备管理接口和节点管理接口,通过所述异构计算设备管理接口和所述节点管理接口,定义任务比重划分以及设备或节点间的中从关系;所述设备管理接口可设置参与工作的设备、设备的任务调整以及设备的优先级;所述异构计算设备管理接口和所述节点管理接口便于所述二次优化;
所述线程管理接口可实时管理函数的线程数。
有益效果:通过获取参数和设备信息;以及自动调优框架根据所述设备信息获取函数,并根据所述参数将所述函数转换为可执行代码;所述可执行代码用于实现设备自适应调优安装;该方法实现了高效的隐式有限元异构自适应计算,通过该方法能够解决航天、航空、汽车、重工、船舶、电子电器等领域进行产品快速有限元仿真分析需求。
附图说明
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1为根据本申请一示例性实施例提供的一种异构自适应任务调度方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。
本申请实施例提供一种异构自适应任务调度方法,下面结合附图进行说明。
请参考图1,其示出了本申请的一些实施方式所提供的一种异构自适应任务调度方法的流程图,如图所示,方法可以包括以下步骤:
S1:获取设备相关数据;所述设备相关数据包括参数和设备信息;
具体的,所述设备相关数据还包括:设备架构、指令集;
所述方法还包括:根据所述设备架构、指令集以及参数对GPU(APU/DCU)架构进行优化,并构建函数库;所述优化包括底层优化、二次优化以及负载均衡优化;所述指令集包括函数模板;所述函数模板为核函数模板,所述函数模板包括多个。
多设备支持,底层优化为:根据设备架构、指令集以及设备特征对GPU架构进行底层优化。
由于不同品牌的GPU设备架构存在差异以及相同品牌不同系列不同版本的GPU也存在架构和指令集的差异。针对主流GPU架构,开发隐式有限元计算过程的多种不同kernel函数模板;其中,设备相关数据还包括设备特征;所述设备特征包括但不限于线程束(Warp)尺寸差异,不同的warp尺寸需要匹配kernel不同的线程分组关系,以实现最佳的线程协作与数据共享机制;流处理器(SM)提供的缓存与寄存器数量之间的差异,由于流处理器中可同时执行的线程块(Block)数量受限于寄存器数量与共享内存资源大小,因此需要在kernel中根据不同设备流处理器的资源大小进行合理的局部变量数量以及共享内存使用量控制,从而使得计算效率达到全局最优;是否支持张量核心(Tensor Core),张量核心是某些GPU的特殊计算单元,可以加速许多矩阵计算操作,因此需要为支持张量核心计算的设备在kernel中进行相应的利用,进而构建出适合不同GPU设备的丰富的函数库;所述设备特征用于进行底层优化。
设计了针对不同GPU设备的隐式有限元异构并行计算策略,让程序能在不同的设备上发挥最佳性能,在提升计算效率的基础上解决了以往程序在不同GPU设备上不兼容的问题。
多函数支持,二次优化包括:
根据同一所述设备架构中不同的所述参数对GPU架构进行二次优化;
对所述函数模板进行进一步优化,将进一步优化的所述函数模板作为最优函数模板;具体包括优化函数中循环展开次数,以此更好地利用数据时间局部性;对计算中的只读或者只写进行优化,通过直接写入内存避免中间的缓存写入,节省带宽;优化结构体数据排布方式,调整结构体数组(AOS)与数组结构体(SOA)的使用;在某些复杂的计算过程中由于编译器无法自动优化使用预取(prefetch),可通过手动预取来减少计算等待。
获取处理器的多核特征,并根据所述多核特征对所述函数进行并行计算,并行计算的所述函数用于为不同线程数量提供进一步的细粒度优化;
根据所述设备架构以及所述指令集构建函数库。
具体的,构建所述函数库的过程为:
步骤1:根据不同的所述设备架构(例如ARM和x86)以及不同的所述指令集(例如x86架构中的SSE和AVX系列),构建多个不同的指令集模板;所述指令集模板记为:T i ;所述指令集模板包括多个;
步骤2:为所有所述指令集模板均设计多线程函数模板,多线程函数模板记为:T ij ;通过多线程函数模板为指令集模板中的函数进行不同线程数量下的性能调优,并进一步生成相应的子模板;
步骤3:为所有所述多线程函数模板设计数据适应模板,数据适应模板记为:T ijk
步骤4:针对不同的操作系统(例如Windows、Linux)的特性以及不同的编译器(例如GNU与Intel系列)的特性;对所有数据适应模板T ijk 进行操作系统以及编译器适配,构建所述函数库。
在本实施例中,采用多层次递归二分切分法、多层次K路切分法以及多约束划分机制实现多个子模板之间的均衡性,并且多层次递归二分切分法、多层次K路切分法以及多约束划分机制还用于保证多个子模板之间的公共边界最小。
在有限元分析中,不同网格与单元数量的模型会带来计算规模的巨大差异,为了获取最优计算效率,同一函数并行策略和参数设置都需要进行调整,以适应不同的数据规模。具体涉及的隐式有限元计算包括单元刚度矩阵计算、系统刚度矩阵组装以及系数线性方程求解,这三个主要过程。在本实施例中,提供了同一功能函数的多种参数,用于实现以上三个过程;具体内容为:
1、针对不同数据长度、不同数据形状及其之间的相互组合等等通过预先调优测试后实现分组分类的函数模板,通过进一步优化使得仿真计算时程序能够针对不同的计算数据调用最优的函数版本;
2、针对当前处理器的多核特性,提供具有多种数值计算功能的函数的并行计算来实现。为不同线程数量提供进一步细粒度优化,形成相应并行的模板函数,为用户使用不同线程数量提供高效地解决方案。
针对不同的计算规模和计算类型进行二次调优并构建丰富的算法库,让程序在运行时能自动调用性能最优的函数版本,避免了通用模板函数存在的性能浪费问题。
多节点支持,负载均衡优化包括:
建立负载均衡模型,并离散所述负载均衡模型;采用图分区算法对离散后的负载均衡模型进行分区,得到多个子模型;根据多个子模型之间的公共边界进行负载均衡优化。
其中,建立所述负载均衡模型的过程为:
步骤1:初始化任务池和工作池;
步骤2:遍历任务池中的所有子任务,将当前子任务记为:S
步骤3:基于当前子任务,遍历所有设备,直至获取到当前工作量最少的设备,所述当前工作量最少的设备记为:D min;结束设备遍历;
步骤4:计算当前工作量最少的设备处理当前子任务所需的时间,所述时间记为:T(D min,S);
步骤5:根据此前工作量最少的设备的工作时间以及所述时间,在工作池中更新当前工作量最少的设备的工作时间;结束任务遍历;
通过步骤1至步骤5建立所述负载均衡模型。
考虑特大规模的有限元仿真计算,单个异构设备能提供的算力有限,并且在许多情况下由于设备内存不足导致无法计算。因此,为了进一步提升计算效率和扩大计算规模往往需要支持多设备计算,而如何实现负载均衡是提升多设备计算效率的关键问题。本实施例针对大规模计算任务创建多节点计算负载均衡模型,以解决多节点工作时设备间的负载均衡问题。并设计了高效的图分区算法来实现合理的任务分配,基于图分割的算法对离散后的网络模型进行分区,得到多个子模型。负载均衡问题可抽象为一个多目标非线性优化模型,其中,上层优化目标为子模型间计算量差异度最小,下层优化目标为子模型间公共边界节点最少。在具体的分区计算中,采用多层次递归二分切分法、多层次K路切分法以及多约束划分机制来实现分区后个子模型计算量的均衡性,并且在此基础上保证模型之间的公共边界最小来降低异构并行计算中设备间的数据通信量进而实现高效地多设备自适应并行计算。
通过建立一个动态规划数学模型并结合图分区算法来实现多个不同设备计算任务的分配调度,实现了任意场景中各设备间分负载均衡,提高了整体求解效率。
S2:建立自动调优框架,所述自动调优框架根据所述设备信息获取函数,并根据所述参数将所述函数转换为可执行代码;所述可执行代码用于实现设备自适应调优安装。
具体的,得到所述可执行代码的过程为:
所述自动调优框架根据所述设备信息从函数库中获取函数,所述自动调优框架包括数学模型;将所述参数输入至所述数学模型,输出结果;根据所述结果将所述函数进行模板特化操作,得到所述可执行代码。
利用开发者的经验数据并结合不同硬件平台的实际反馈试验结果设计了一种自动调优框架,该框架可以根据硬件信息在函数库中匹配最优的函数组合进行编译。在该框架内部建立了一种0-1规划数学模型,将各项硬件参数作为输入的优化变量,将目标性能作为极大值优化目标,在此基础上,通过该框架不仅可以为模板中已有的硬件平台自动生成最优函数,而且通过数学模型为新的硬件平台选择模板库中支持的最优的解决方案,实现设备自适应调优安装。
在实际安装时,提供了用户自定义接口,该接口允许用户在安装时自定义某些设备的硬件信息,并且还允许多架构共存安装(即在同一个库中提供多种架构支持)。其次,将进行硬件检测自动获取用户未定义信息,并通过基准测试获取设备实际性能参数。最后,根据设备综合参数信息通过自动调优模型将模板规范转换为可执行代码,即根据调优框架的输出结果在函数泛化模板库中对相应的功能函数进行模板特化操作。若用户同时选择多个硬件环境时,会在参数化搜索空间中分别为每个目标设备自动调优到最佳配置。在为非本地目标平台进行编译安装时,需要指定目标设备,若目标设备在匹配库中不存在,此时默认参数全部失效,则需用户输入所需的该设备所有参数。
在本实施例中,方法还包括管理优化;所述管理优化通过设置内存管理接口、设备管理接口以及线程管理接口,分别对设备内存参数、设备间的工作方式以及函数的线程数进行管理;
所述内存管理接口可实时设置不同设备的内存、显存的基础参数以及页锁定内存高级参数;
所述设备管理接口包括异构计算设备管理接口和节点管理接口,通过所述异构计算设备管理接口和所述节点管理接口,定义任务比重划分以及设备或节点间的中从关系;所述设备管理接口可设置参与工作的设备、设备的任务调整以及设备的优先级;所述异构计算设备管理接口和所述节点管理接口便于所述二次优化;
所述线程管理接口可实时管理函数的线程数,允许进行多级并行计算。
为进一步提升软件的拓展性,本实施例提供了一系列面向运行过程的用户管理接口,其中主要包括内存管理、设备管理以及线程管理三个部分。内存管理可以实时设置不同节点上不同设备的内存与显存基础参数,以及页锁定内存等其他高级参数,用户可以通过该接口来控制程序在执行时对硬件资源的使用率,提升软件的鲁棒性和使用自由度;设备管理可以设置参与工作的设备、各设备的任务调整以及各设备的优先级,其中包括异构计算设备管理和节点管理,其允许用户显式地定义任务比重划分以及设备或者节点间的主从关系,让使用者可以更灵活地对计算过程进行二次调优;线程管理允许用户细粒度地定义不同计算阶段中不同kernel函数所调用的线程数,这允许用户进行多级并行计算,可以根据实际计算工作任务实现更高效地并行计算。
该方法实现了程序安装时自动检测硬件设备进行动态安装,并且在此基础上为用户提供部分自定义接口,允许用户设置和管理实时运行环境,解决了一般程序安装后灵活性不足的问题。
该方法针对众多工程领域对大规模有限元仿真分析的快速计算需求,在实现隐式有限元GPU异构并行计算的基础上,针对不同设备和不同计算规模进行充分优化,并构建了函数库,实现设备的自适应安装。该方法实现了高效的隐式有限元异构自适应计算,通过该方法能解决航天、航空、汽车、重工、船舶、电子电器等领域进行产品快速有限元仿真分析需求。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围,其均应涵盖在本申请的权利要求和说明书的范围当中。

Claims (5)

1.一种异构自适应任务调度方法,其特征在于,包括:
S1:获取设备相关数据;所述设备相关数据包括参数、设备信息、设备架构、指令集;
根据所述设备架构、指令集以及参数对GPU架构进行优化,并构建函数库;所述优化包括底层优化、二次优化以及负载均衡优化;所述指令集包括函数模板;所述函数模板为核函数模板,所述函数模板包括多个;
所述二次优化包括:
根据同一所述设备架构中不同的所述参数对GPU架构进行二次优化;
对所述函数模板进行进一步优化,将进一步优化的所述函数模板作为最优函数模板;
获取处理器的多核特征,并根据所述多核特征对所述函数进行并行计算,并行计算的所述函数用于为不同线程数量提供进一步的细粒度优化;
根据所述设备架构以及所述指令集构建函数库;
构建所述函数库的过程为:
步骤1:根据所述设备架构以及所述指令集,构建指令集模板;所述指令集模板包括多个;
步骤2:为所有所述指令集模板均设计多线程函数模板;通过多线程函数模板为指令集模板中的函数进行不同线程数量下的性能调优,并进一步生成相应的子模板;
步骤3:为所有所述多线程函数模板设计数据适应模板;
步骤4:对所述数据适应模板进行操作系统以及编译器适配,构建所述函数库;
所述负载均衡优化包括:
建立负载均衡模型,并离散所述负载均衡模型;采用图分区算法对离散后的负载均衡模型进行分区,得到多个子模型;根据多个子模型之间的公共边界进行负载均衡优化;
建立所述负载均衡模型的过程为:
步骤1:初始化任务池和工作池;
步骤2:遍历任务池中的所有子任务,将当前子任务记为:S
步骤3:基于当前子任务,遍历所有设备,直至获取到当前工作量最少的设备,所述当前工作量最少的设备记为:D min;结束设备遍历;
步骤4:计算当前工作量最少的设备处理当前子任务所需的时间,所述时间记为:T(D min,S);
步骤5:根据此前工作量最少的设备的工作时间以及所述时间,在工作池中更新当前工作量最少的设备的工作时间;结束任务遍历;
通过步骤1至步骤5建立所述负载均衡模型;
S2:建立自动调优框架,所述自动调优框架根据所述设备信息获取函数,并根据所述参数将所述函数转换为可执行代码;所述可执行代码用于实现设备自适应调优安装。
2.根据权利要求1所述的一种异构自适应任务调度方法,其特征在于,所述设备相关数据还包括设备特征;所述设备特征包括线程束尺寸差异、流处理器提供的缓存与寄存区数量之间的差异、支持张量核心或不支持张量核心;所述设备特征用于进行底层优化。
3.根据权利要求2所述的一种异构自适应任务调度方法,其特征在于,所述底层优化为:
根据设备架构、指令集以及设备特征对GPU架构进行底层优化。
4.根据权利要求1所述的一种异构自适应任务调度方法,其特征在于,得到所述可执行代码的过程为:
所述自动调优框架根据所述设备信息从函数库中获取函数,所述自动调优框架包括数学模型;将所述参数输入至所述数学模型,输出结果;根据所述结果将所述函数进行模板特化操作,得到所述可执行代码。
5.根据权利要求4所述的一种异构自适应任务调度方法,其特征在于,所述方法还包括管理优化;所述管理优化通过设置内存管理接口、设备管理接口以及线程管理接口,分别对设备内存参数、设备间的工作方式以及函数的线程数进行管理;
所述内存管理接口实时设置不同设备的内存、显存的基础参数以及页锁定内存高级参数;
所述设备管理接口包括异构计算设备管理接口和节点管理接口,通过所述异构计算设备管理接口和所述节点管理接口,定义任务比重划分以及设备或节点间的中从关系;所述设备管理接口设置参与工作的设备、设备的任务调整以及设备的优先级;所述异构计算设备管理接口和所述节点管理接口便于所述二次优化;
所述线程管理接口实时管理函数的线程数。
CN202310393335.3A 2023-04-13 2023-04-13 一种异构自适应任务调度方法 Active CN116089050B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310393335.3A CN116089050B (zh) 2023-04-13 2023-04-13 一种异构自适应任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310393335.3A CN116089050B (zh) 2023-04-13 2023-04-13 一种异构自适应任务调度方法

Publications (2)

Publication Number Publication Date
CN116089050A CN116089050A (zh) 2023-05-09
CN116089050B true CN116089050B (zh) 2023-06-27

Family

ID=86212476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310393335.3A Active CN116089050B (zh) 2023-04-13 2023-04-13 一种异构自适应任务调度方法

Country Status (1)

Country Link
CN (1) CN116089050B (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3126971B1 (en) * 2014-03-30 2020-04-29 Universiteit Gent Program execution on heterogeneous platform
CN104102513B (zh) * 2014-07-18 2017-06-16 西北工业大学 一种基于Kepler架构的CUDA运行时参数透明优化方法
DE102017109239A1 (de) * 2017-04-28 2018-10-31 Ilnumerics Gmbh Computerimplementiertes verfahren, computerlesbares medium und heterogenes rechnersystem
CN113110931B (zh) * 2020-01-10 2024-06-04 北京小米松果电子有限公司 内核运算优化方法、装置及系统
CN111290762B (zh) * 2020-01-19 2023-05-12 深圳云天励飞技术有限公司 一种深度学习网络的部署方法、装置及终端设备
CN111552478B (zh) * 2020-04-30 2024-03-22 上海商汤智能科技有限公司 用于生成cuda程序的设备、方法和存储介质
CN113553057B (zh) * 2021-07-22 2022-09-09 中国电子科技集团公司第十五研究所 一种针对不同架构的gpu进行并行计算的优化系统

Also Published As

Publication number Publication date
CN116089050A (zh) 2023-05-09

Similar Documents

Publication Publication Date Title
Dastgeer et al. Auto-tuning SkePU: a multi-backend skeleton programming framework for multi-GPU systems
Hoque et al. Dynamic task discovery in parsec: A data-flow task-based runtime
US9038088B2 (en) Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases
Lu et al. Optimizing depthwise separable convolution operations on gpus
JP2020518881A (ja) コンピュータに実装する方法、コンピュータ可読媒体および異種計算システム
Raju et al. A survey on techniques for cooperative CPU-GPU computing
Wu et al. Compiler-assisted workload consolidation for efficient dynamic parallelism on GPU
Huang et al. Implementing Strassen's algorithm with CUTLASS on NVIDIA Volta GPUs
Silvano et al. The ANTAREX tool flow for monitoring and autotuning energy efficient HPC systems
Cojean et al. Resource aggregation for task-based cholesky factorization on top of modern architectures
Augonnet et al. A unified runtime system for heterogeneous multi-core architectures
Huchant et al. Automatic OpenCL task adaptation for heterogeneous architectures
CN115016938A (zh) 一种基于强化学习的计算图自动划分方法
CN114741204A (zh) 一种仿真模型的任务分解与并行求解的方法
CN116089050B (zh) 一种异构自适应任务调度方法
Odajima et al. GPU/CPU work sharing with parallel language XcalableMP-dev for parallelized accelerated computing
Tianyang et al. A Survey: FPGA‐Based Dynamic Scheduling of Hardware Tasks
Jindal et al. Exploiting GPUs with the super instruction architecture
Lin et al. swFLOW: A dataflow deep learning framework on sunway taihulight supercomputer
Li et al. Performance optimization algorithm of radar signal processing system
Hajiamini et al. Optimality of dynamic voltage/frequency scaling in many-core systems with voltage-frequency islands
Planas et al. AMA: Asynchronous management of accelerators for task-based programming models
Steinberger On dynamic scheduling for the gpu and its applications in computer graphics and beyond
Huang et al. Concurrent CPU-GPU Task Programming using Modern C++
Seiferth et al. Offsite autotuning approach: performance model driven autotuning applied to parallel explicit ODE methods

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