异构计算系统的自动调谐技术方案

技术编号:36333871 阅读:33 留言:0更新日期:2023-01-14 17:45
本发明专利技术提供了一种在异构计算系统中在计算程序的运行时间期间配置程序参数以用于计算的方法,在自动调谐系统中处理编译程序,以优化应用的参数,以便在包括例如CPU和GPU核心的异构系统中进行处理。的异构系统中进行处理。的异构系统中进行处理。

【技术实现步骤摘要】
【国外来华专利技术】异构计算系统的自动调谐


[0001]本专利技术涉及具有不同类型处理器的计算系统,以及一种用于对不同任务进行布置以在处理器之间划分将不同任务安排在处理器之间以有效方式进行并行计算的技术。

技术介绍

[0002]这种异构计算系统包括超级计算机(也称为高性能计算机),其包括CPU(中央处理单元)和GPU(图形处理单元)核心二者。还可以提供另外的专用计算单元,如FPGA(现场可编程门阵列)、DSP(数字信号处理器)和量子计算单元。
[0003]单独的计算任务可能比另一个更适合在一种类型的处理器上执行,并且布置不同的任务并行处理可能是相当大的任务。布置任务由不同单元处理以优化并行化程度被称为调谐。调谐可以是“离线”的,在运行前执行,也可以是“在线”的,在运行时间期间执行。虽然程序开发人员能够使用他们的技能和知识来实现调谐,但这种手动调谐是很耗时的。自动地调谐,或自动调谐,是期望的发展。
[0004]例如,在Siegfried Benkner等人的《Automatic Application Tuning for HPC Architectures》中描述了自动调谐,来自Dagstuhl研讨会13401,2014年9月29日至10月4日,第214

243页,https://www.dagstuhl.de/13401的报告,出于所有目的而通过引用并入。
[0005]在线自动调谐的问题是,系统用户可能经历运行时间增加,因为系统在搜索最佳配置期间实现不同的配置。

技术实现思路

>[0006]本专利技术提供了一种执行在线自动调谐的方法,该方法与已知的在线调谐技术相当,同时减少所需的运行时间。
[0007]本专利技术提供了一种在异构计算系统中在计算程序的运行时间期间配置程序参数以用于计算的方法,该方法包括:接收计算程序的转换,该转换包括一个或多个计算应用;针对每个计算应用生成一个或多个调谐参数,该一个或多个调谐参数被分类;以及对于待优化的计算应用,在运行时间期间递归地执行以下操作:调整计算应用的一个或多个调谐参数,使用经调整的一个或多个调谐参数执行计算应用,获得针对使用经调整的一个或多个调谐参数执行计算应用的性能指标,并确定经调整的一个或多个调谐参数是否提供关于性能度量的改进以及是否已满足终止标准以结束调整,其中,存储计算应用被优化的动态状态的指标特性,该指标在优化中用于确定已知优化是否可用于由存储的指标指示的动态状态。
[0008]在另一方面,本专利技术提供了一种计算实体,其被编程以通过在运行时间期间递归地执行以下操作来优化计算应用:调整计算应用的一个或多个调谐参数,使用经调整的一个或多个调谐参数执行计算应用,针对使用经调整的一个或多个调谐参数执行计算应用来获得性能度量,并确定经调整的一个或多个调谐参数是否提供关于性能度量的改进以及是
否已满足终止标准以结束调整,其中,存储计算应用被优化的动态状态的指标特性,该指标在优化中用于确定已知优化是否可用于由存储的指标指示的动态状态。
附图说明
[0009]现在将参照附图仅通过示例的方式描述本专利技术的优选实施方案,其中:
[0010]图1示出了根据本专利技术的编译器和自动调谐系统的示意图;
[0011]图2是图1的自动调谐系统的示意图;
[0012]图2a是用于在自动调谐期间优化线程数量的计算机代码的示例;
[0013]图2b是本专利技术的自动调谐系统与应用互动的示意图,其中反馈被传递到存储器以更新预测和搜索状态;
[0014]图3是自动调谐的搜索策略的操作的示意图,其中配置C的整数值使用镜像轴随时间变化;
[0015]图4是提供搜索实现接口界面的计算机代码的示例;
[0016]图5示出了Nelder

Mead搜索算法中的可用状态转移;
[0017]图6示出了根据参数类别对简化异构映射的全局搜索空间进行分解的图形表示;
[0018]图7示出了使用应用开发者提供的约束分解全局搜索空间的示例;
[0019]图8是针对参数集T={A;B;C;D;X;Y;Z;W}的搜索空间图的示例,其中{A;B;C;D}是定类的,{W;X;Y;Z}是非定类的;
[0020]图9是针对参数{A;B;C;D;X;Y;Z;W}的分层搜索的示例;
[0021]图10是图11所示的调度树的划分和平台映射的示例;
[0022]图11是针对矩阵乘法的调度树的示例;
[0023]图12是本专利技术的系统所支持的循环的控制流结构的示例;
[0024]图13示出了由目标插件生成的代码段,其中实线箭头表示同步操作,并且虚线箭头表示异步操作;以及
[0025]图14示出了三个数组的分配映射的示例。
具体实施方式
[0026]图1示出了根据本专利技术的自动调谐的实现的示意图。
[0027]该实现包括编译器10和运行时自动调谐系统20。编译器适于对异构平台(如由CPU和GPU组成的系统)的顺序应用进行并行化,并且自动调谐在执行期间执行。编译器10与运行时自动调谐系统20进行交互,以提供在线调谐,优化CPU核心和GPU核心之间的任务分配。
[0028]现在将对编译器10和自动调谐系统20进行单独描述。
[0029]图2中更详细地示出了自动调谐系统20。图2示出了构成自动调谐系统20的逻辑单元。系统20的主要组件是混合调谐单元30。混合调谐单元30实现本专利技术的混合调谐方法,并通过称为参数空间34和指标空间36的单元与应用32互操作。该混合调谐单元30可以通过应用开发者提供的搜索和预测模型选择38和40进行扩展。搜索扩展提供分层搜索功能,其依赖于被布置使用的相应基本搜索算法。模型扩展提供预测模型,以实现混合调谐单元的预测组件。
[0030]应用迭代地与自动调谐系统(也被称为"自动调谐器"或简单的"调谐器")进行交
互。对于先前注册的应用参数集合,应用请求对这些参数进行新的配置,并将针对该配置的性能度量反馈给调谐器。
[0031]因此,将应用与自动调谐器集成需要两个步骤:暴露和注册可调谐参数,并引入更新和反馈调用。可调谐的应用参数可以是任何类型的,并具有任意的语义,只要它可由自动调谐器自由配置。用下一个配置来更新应用参数并将关于配置的性能反馈报告给调谐器,包含了应用的调谐内核。
[0032]因此,更新

样本

反馈序列是调谐循环的主体。大多数时候,反馈是运行时测量,尽管这不是必须的。自动调谐器试图找到最小化度量的参数配置,与度量的含义无关。
[0033]图2a描绘了使用自动调谐来优化线程数量的OpenMP示例。NumThreads参数通过引用注册到调谐器,使用1到16之间的有效值范围。在每次调用add(...)时在第九行调用OMPTuner.start()时,自动用来自该范围的新样本值更新NumThreads。因此,从该变量中读取使用了新的配置。随后调用OMPT本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种在异构计算系统中在计算程序的运行时间期间配置程序参数以用于计算的方法,该方法包括:接收所述计算程序的转换,所述转换包括一个或多个计算应用;针对每个计算应用生成一个或多个调谐参数,所述一个或多个调谐参数被分成类;以及对于待优化的计算应用,在运行时间期间递归地执行以下操作:调整所述计算应用的一个或多个调谐参数,使用经调整的一个或多个调谐参数执行所述计算应用,针对使用经调整的一个或多个调谐参数执行所述计算应用来获得性能度量,并且确定经调整的一个或多个调谐参数是否提供关于所述性能度量的改进以及是否已满足终止标准以结束调整,其中,存储所述计算应用被优化的动态状态的指标特性,所述指标在优化中用于确定已知优化是否可用于由存储的指标指示的动态状态。2.根据权利要求1所述的方法,其中,所述方法还包括由编译器生成所述转换,所述编译器适于评估所述计算程序以确定能够由不同处理单元并行执行的计算应用。3.根据权利要求1或权利要求2所述的方法,其中,所述优化是使用调谐例程来执行的,所述调谐例程选自基于模型的预测过程和在线搜索过程。4.根据权利要求3所述的方法,其中,所述在线搜索过程用于提供训练数据以更新所述基于模型的预测过程。5.根据前述权利要求中任一项的方法,其中,所述一个或多个调谐参数用于确定优化过程是否能够在受...

【专利技术属性】
技术研发人员:伯恩哈德
申请(专利权)人:派泰克股份公司
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1