System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种结合元学习和强化学习的动态算子加速调优方法技术_技高网

一种结合元学习和强化学习的动态算子加速调优方法技术

技术编号:43900965 阅读:2 留言:0更新日期:2025-01-03 13:12
一种结合元学习和强化学习的动态算子加速调优方法,首先,构建基于算子调度原语的泛化搜索空间,提取张量程序结构特征,并建立动态算子代价模型。其次,应用元学习优化算法快速调整智能代理参数,利用强化学习状态编码器和元梯度下降算法加速搜索。进一步采用Auto‑tuning技术结合深度强化学习架构,进行算子优化策略搜索。设计奖励函数,依据代码性能反馈指导搜索行为。通过控制变量法和定量分析法,构建计算和访存性能模型,分析算子性能关键因素,评估不同硬件条件下的极限性能。最终,选择最优算子进行代码生成,转化为目标硬件平台的机器码。通过设计一种高质量的泛化搜索空间和性能极限分析方法,显著提升了算子调优的效率和精度,为深度学习系统部署提供优化支持。

【技术实现步骤摘要】

本专利技术涉及深度学习、编译技术与高性能计算交叉技术应用领域,特别是涉及一种结合元学习和强化学习的动态算子加速调优方法


技术介绍

1、算子作为执行深度学习模型的最小执行单元,其性能极大地影响着模型整体的执行效率和功耗。高性能的算子需要结合针对目标硬件的架构特点进行优化,以充分利用目标硬件的计算能力。由于手工调优方法存在开发成本高、计算性能低等局限,自动调优方法近年越来越多地受到学术界和工业界的关注。

2、根据算子的形状大小在编译时是否全部已知,算子可以分为静态张量算子和动态张量算子。目前的研究工作集中在静态张量算子的自动调优上。根据算子编译中间表示的不同,目前算子调优主要分为基于halide表示的自动调优算法和基于多面体表示的自动调优算法。同时,学术界涌现了一批针对静态算子的自动调优算法如autotvm、ansor、flextensor。这些自动优化方法采用随机和演化搜索算法来对搜索空间进行迭代搜索,其缺点是搜寻过程不彻底,无法找到最优和次优结果,并且由于搜寻次数的增多,整个搜寻需要大量的时间开销。

3、近年来,多面体表示也被广泛地应用在特定领域来优化计算密集型程序,如深度学习领域的tensor comprehensions,采用基于演化搜索的参数调优器搜索最佳的参数配置。此外,部分工作开始尝试扩展多面体表示的表达能力。tiramisu借鉴halide表示解耦定义与调度的思想,在多面体表示的基础上引入一组调度命令,通过四级中间表示完全解耦计算表示、循环变换、数据布局和多机通信。该工作要求用户使用调度命令手工编写调度方案。stripe提出嵌套多面体模型来类比深度学习算子和加速器拓扑中的嵌套结构,以支持不同目标硬件上大规模并行计算的调度。多面体表示主要用于嵌套循环程序的编译优化,且要求程序满足静态控制性质,即只包含常量步长的嵌套循环,循环体内分支条件表达式和数组索引表达式必须是循环迭代变量的仿射函数。

4、目前,对动态算子自动调优的关注还比较少,shen等人提出的nimble采用自定义模版搜索算法扩展现有tuning算法来支持动态算子。zhang等人利用同一套抽象和统一的中间表示层对动态算子进行编译优化。及cui等人利用cell与router两个新的编程抽象,来让应用开发者显式地向框架传达动态语义信息,从而解决动态算子优化问题。目前,尚无对应的建模与性能预估方法论可以比较方便评估算子理论性能上限。

5、现有的深度学习算子自动调优的搜索空间设计是整个优化过程的基础,其调度原语之间的关系,会影响最终的搜索效率。同时调度原语集合的丰富程度决定了自动调优算法理论上所能找的最优解的计算性能上限。然而,针对模型中的动态算子,其在编译时无法实施算子融合优化,也无法利用已知的参数取值生成针对性的优化实现,只能直接调用硬件厂商提供的算子库。其优化只能停留在计算图层次而无法深入到算子层次。

6、同时,算子优化的数据流需要经过hbm、l2 cache、l1 buf、l0 buf等多个存储层级。其性能受这些层级内容量、层级间数据管道带宽的共同影响,因此任何的容量带宽不匹配都会降低张量计算核心tensor core的利用率。当前算子理论极限分析依然是一个悬而未决的问题。

7、需要说明的是,在上述
技术介绍
部分公开的信息仅用于对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现思路

1、本专利技术的主要目的在于解决上述
技术介绍
中存在的问题,提供一种结合元学习和强化学习的动态算子加速调优方法。

2、为实现上述目的,本专利技术采用以下技术方案:

3、在本专利技术第一方面,一种结合元学习和强化学习的动态算子加速调优方法,包括以下步骤:

4、a.在深度强化学习框架下,构建动态算子的搜索空间,包括:i.基于算子调度原语构建泛化搜索空间;ii.对张量程序进行特征描述,提取其结构特征;iii.构建动态算子代价模型;

5、b.利用元学习优化算法,通过少量样本快速调整并优化智能代理的参数配置,使用强化学习状态编码器和元梯度下降算法来加速搜索过程;

6、c.采用自动调优auto-tuning机器学习技术,结合深度强化学习搜索架构进行算子优化策略的搜索;

7、d.设计并实现奖励函数,根据执行设备上的代码性能反馈来评估和指导智能代理的搜索行为;

8、e.利用控制变量法和定量分析法,对影响算子性能的关键因素进行数学建模和分析,包括构建计算性能模型和访存性能模型,以确定算子与硬件的关系,并评估算子在不同硬件条件下的极限性能表现;

9、f.选择搜索到的最优算子进行代码生成,生成目标硬件平台的可执行代码,将优化后的算子调度策略转化为目标硬件平台的机器码。

10、在本专利技术第二方面,一种计算机程序产品,包括计算机程序,所述计算机程序由处理器执行时实现所述的动态算子加速调优方法。

11、本专利技术具有如下有益效果:

12、本专利技术提出了一种创新的结合元学习和强化学习的动态算子加速调优方法,该方法突破了现有技术对动态算子优化的限制,通过构建一个静态算子和动态算子都通用的泛化搜索空间,实现了对算子调度原语的深入优化。本专利技术利用元学习快速提取优化任务中的通用模式,为智能代理提供先验知识和初始化策略,显著提高了搜索效率。同时,通过深度强化学习框架,本专利技术能够适应快速变化的优化任务,实现对算子性能的极限分析和理论性能上限的评估,指导算子的性能优化和芯片规格设计。此外,本专利技术还考虑了现实环境中的硬件限制,如处理器架构、内存带宽和通信瓶颈,通过控制变量法和定量分析法,构建了计算性能模型和访存性能模型,从而在性能、功耗、面积的权衡下,探索达到算子性能的最优解或近似最优解,为深度学习系统的部署与运行提供了强有力的优化支持。

13、本专利技术实施例中的其他有益效果将在下文中进一步述及。

本文档来自技高网...

【技术保护点】

1.一种结合元学习和强化学习的动态算子加速调优方法,其特征在于,包括以下步骤:

2.如权利要求1所述的动态算子加速调优方法,其特征在于,步骤a具体包括:

3.如权利要求1或2所述的动态算子加速调优方法,其特征在于,步骤b中,元学习算法通过少量样本提取不同算子优化任务之间的共享知识和模式,为强化学习智能体提供先验知识和初始化策略;其中,训练得到一组模型的初始参数,使得以初始参数初始化的模型仅通过少量样本上的一次或几次梯度更新就能够最大化新任务的性能。

4.如权利要求1至3任一项所述的动态算子加速调优方法,其特征在于,所述深度强化学习框架的智能代理定义为过程状态转移函数,利用图神经网络GNN保留源文本的语法语义上下文逻辑信息。

5.如权利要求4所述的动态算子加速调优方法,其特征在于,所述深度强化学习框架具体包括:

6.如权利要求5所述的动态算子加速调优方法,其特征在于,使用Graph2vec编码对源代码的状态进行向量化表示;所述智能代理的动作包括算子底层实现的选择,所述选择影响代码优化的方向和效果;所述奖励函数基于新模型与旧模型的运行时间差来评估优化效果;利用GRPC过程调用交互方法,在服务端和客户端之间传递数据,实现优化任务的远程执行和状态同步;在服务端进行搜索和调优,利用收集的性能数据来更新智能代理的策略;在客户端部署阶段,获取所选优化操作的反馈,并将其用于进一步指导搜索过程。

7.如权利要求5或6所述的动态算子加速调优方法,其特征在于,进一步包括基于性能反馈的搜索策略评估和优化步骤,其中,使用值函数评估智能代理的搜索策略,以确定策略的有效性;采用策略方法选择最优动作,以最大化长期回报;结合值函数和策略方法,通过迭代训练不断优化搜索策略;利用执行设备上的代码性能反馈来调整和改进搜索策略,以提升智能代理的决策性能。

8.如权利要求1至7任一项所述的动态算子加速调优方法,其特征在于,步骤e中,通过所述控制变量法与所述定量分析法分析影响算子执行效率的主要因素,并构建多元函数模型来评估算子性能。

9.如权利要求1至8任一项所述的动态算子加速调优方法,其特征在于,步骤e中,所述计算性能模型表示为单个元素的平均计算时间与运算核心需计算的元素数量的乘积,所述访存性能模型基于访存性能测试和分析构建。

10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序由处理器执行时实现如权利要求1至9任一项所述的动态算子加速调优方法。

...

【技术特征摘要】

1.一种结合元学习和强化学习的动态算子加速调优方法,其特征在于,包括以下步骤:

2.如权利要求1所述的动态算子加速调优方法,其特征在于,步骤a具体包括:

3.如权利要求1或2所述的动态算子加速调优方法,其特征在于,步骤b中,元学习算法通过少量样本提取不同算子优化任务之间的共享知识和模式,为强化学习智能体提供先验知识和初始化策略;其中,训练得到一组模型的初始参数,使得以初始参数初始化的模型仅通过少量样本上的一次或几次梯度更新就能够最大化新任务的性能。

4.如权利要求1至3任一项所述的动态算子加速调优方法,其特征在于,所述深度强化学习框架的智能代理定义为过程状态转移函数,利用图神经网络gnn保留源文本的语法语义上下文逻辑信息。

5.如权利要求4所述的动态算子加速调优方法,其特征在于,所述深度强化学习框架具体包括:

6.如权利要求5所述的动态算子加速调优方法,其特征在于,使用graph2vec编码对源代码的状态进行向量化表示;所述智能代理的动作包括算子底层实现的选择,所述选择影响代码优化的方向和效果;所述奖励函数基于新模型与旧模型的运行时间差来评估优化效果;利用grpc过程调用交互方法,在服务端和客户端之间传递数...

【专利技术属性】
技术研发人员:杨占魁蒋俊安汤辉玥
申请(专利权)人:国家超级计算深圳中心深圳云计算中心
类型:发明
国别省市:

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

1