From 11b84f0d5e28e1862ddde59d5dfe928eaeebaea8 Mon Sep 17 00:00:00 2001 From: youxiudeshouyeren <41790911+youxiudeshouyeren@users.noreply.github.com> Date: Thu, 28 Mar 2024 22:09:53 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=B0=83=E4=BC=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 03Compiler/04Backend/06.auto_tuning.md | 198 +++++++++++++++++- .../04Backend/images/auto_tuning_01.jpg | Bin 0 -> 89860 bytes .../04Backend/images/auto_tuning_02.png | Bin 0 -> 74670 bytes .../04Backend/images/auto_tuning_03.png | Bin 0 -> 42034 bytes 4 files changed, 196 insertions(+), 2 deletions(-) create mode 100644 03Compiler/04Backend/images/auto_tuning_01.jpg create mode 100644 03Compiler/04Backend/images/auto_tuning_02.png create mode 100644 03Compiler/04Backend/images/auto_tuning_03.png diff --git a/03Compiler/04Backend/06.auto_tuning.md b/03Compiler/04Backend/06.auto_tuning.md index 2379085e..c0ee291e 100644 --- a/03Compiler/04Backend/06.auto_tuning.md +++ b/03Compiler/04Backend/06.auto_tuning.md @@ -1,9 +1,203 @@ # Auto-Tuning原理 -> 待更新中,卷的不行了卷得不行了!ZOMI 一个人晚上下班后才能更新视频和文章,如果您有兴趣也非常希望您能够参与进来(Github Issues 区留言或者B站私信ZOMI哦),一起写AI系统,一起分享AI系统的知识。 +DNN部署的硬件平台越来越多样化,包括cpu、gpu、fpga和asic,这些硬件平台内部又具有不同的资源。为了在这些平台上部署dnn,需要对dnn中使用的算子使用高性能的张量程序。传统方式为使用算子库,算子库包含了大量的预定义算子(Operators),这些算子是构建和执行深度学习模型的基本单元。例如对于cuda平台,使用cudnn库,预先由工程师编写兼容某种gpu硬件平台的大量算子,在运行时直接调用。然而这种传统方式面临着越来越多的挑战: + ++ 优化手段的多样性:如前面的章节介绍,存在循环优化、存储优化、指令优化等多种优化方式,在编写程序时如何使用和编排这些优化是十分困难的事,不仅与硬件平台相关,也与要执行的程序相关,程序参数例如卷积核大小、特征图大小的变化也会影响优化方式的选择,再加上各种优化还涉及其优化因子如循环分块因子的选择。软硬件的组合使得编写一套高性能的算子库十分的耗费精力。 ++ 优化方式的通用性:程序优化方式的选择受到多种因素影响,很难有一个通用的方式能覆盖所有场景,普遍的方式是为每一种硬件的每一套参数都维护一个算子实现。以卷积算子为例,这是深度学习中最常用的算子之一。在不同的硬件上,卷积算子的实现可能会有很大差异。在CPU上,卷积算子可能会使用高度优化的库,如Intel的MKL或OpenBLAS,这些库针对特定的CPU架构进行了优化,可以利用SIMD指令集等硬件特性来加速计算。在GPU上,卷积算子的实现通常会利用CUDA或OpenCL等并行计算框架。GPU的高并行性使得卷积操作可以通过并行化来大幅加速。此外,不同的GPU架构(如NVIDIA的Volta、Turing等)可能需要不同的优化策略。 ++ 软硬件的快速更迭:随着新的处理器架构和专用AI加速器的不断涌现,硬件平台变得更加多样化。每种硬件都有其独特的特性和优化需求,算子库需要为这些不同的硬件提供定制化的算子实现,这大大增加了开发和维护的工作量。每当NVIDIA发布新的CUDA版本,引入新的GPU指令集时,算子库开发者必须更新GPU算子,以利用这些新特性来提升性能。再比如新的算子不断涌现,现在的卷积已经有几十种卷积,各种激活函数也在不断提出。每提出一个新算子,就需要在目标硬件平台实现一套算子库。 + +为了以一种高效的方式在各种硬件平台上提供这些算子,已经引入了多种编译器技术,用户使用高层级声明性语言以类似于数学表达式的形式定义计算,编译器根据该定义生成优化的张量程序。从高层定义中自动生成高性能张量程序是非常困难的。根据目标平台的架构,编译器需要在一个非常大和复杂的空间中进行搜索,其中包含优化的组合选择(例如,分块、向量化、并行化,不同的组合导致的程序性能差异极大)。寻找高性能的程序需要搜索策略来覆盖一个全面的空间,并有效地探索它。 + +这一过程称为自动调优,指在编译过程中,编译器或相关工具自动调整和优化代码的执行参数,以提高程序在特定硬件上的运行效率。这通常涉及到对算法、内存访问模式、并行度等多个方面的优化。自动调优的目的是减少人工干预,使得程序能够自动适应不同的硬件环境和运行条件。在AI领域,这尤为重要,因为AI模型的计算复杂度通常很高,而且不同的硬件平台(如CPU、GPU、FPGA等)对计算和内存访问的优化需求各不相同。 + +自动调优的过程通常包括以下几个步骤: + +1. **性能分析**:通过分析程序的运行情况,识别性能瓶颈和优化机会。 +2. **参数搜索**:系统地探索不同的编译选项和运行参数,寻找最佳的配置。 +3. **性能评估**:对不同的配置进行测试,评估其对性能的影响。 +4. **反馈学习**:根据性能评估的结果,调整搜索策略,进一步优化参数选择。 + +自动调优可以显著提高AI应用的运行效率,尤其是在深度学习等计算密集型任务中。然而,由于AI应用的多样性和复杂性,自动调优仍然是一个活跃的研究领域,研究人员和工程师们正在不断探索更高效、更智能的调优方法。在自动调优中,TVM是走在前列的AI编译器,其自动调优系统已经历经三代,本章将介绍TVM的这三代自动调优系统。 + +## AutoTVM + +AutoTVM[^1]是TVM的第一代自动调优系统,其是基于模板的。 + +其总体流程如下图: + +![img](images/auto_tuning_01.jpg) + +1.编写模板:AutoTVM是基于模板的tuner,对于每一个需要调优的算子,需要使用TVM的DSL编写调优的knob,例如循环展开的因子、循环重排序的顺序等。例如对于矩阵乘法,可以编写这样的模板: + +```python +@autotvm.template("tutorial/matmul") +def matmul(N, L, M, dtype): + A = te.placeholder((N, L), name="A", dtype=dtype) + B = te.placeholder((L, M), name="B", dtype=dtype) + + k = te.reduce_axis((0, L), name="k") + C = te.compute((N, M), lambda i, j: te.sum(A[i, k] * B[k, j], axis=k), name="C") + s = te.create_schedule(C.op) + + # schedule + y, x = s[C].op.axis + k = s[C].op.reduce_axis[0] + + ##### define space begin ##### + cfg = autotvm.get_config() + cfg.define_split("tile_y", y, num_outputs=2) + cfg.define_split("tile_x", x, num_outputs=2) + ##### define space end ##### + + # schedule according to config + yo, yi = cfg["tile_y"].apply(s, C, y) + xo, xi = cfg["tile_x"].apply(s, C, x) + + s[C].reorder(yo, xo, k, yi, xi) + print('original') + print(tvm.lower(s,[A, B, C],simple_mode=True)) + return s, [A, B, C] +``` + +生成的原始调度如下: + +```python +for (i.outer: int32, 0, 512) { + for (j.outer: int32, 0, 512) { + C[((i.outer*512) + j.outer)] = 0f32 + for (k: int32, 0, 512) { + let cse_var_2: int32 = (i.outer*512) + let cse_var_1: int32 = (cse_var_2 + j.outer) + C[cse_var_1] = (C[cse_var_1] + (A[(cse_var_2 + k)]*B[((k*512) + j.outer)])) + } + } + } +``` + +将i轴和j轴定义为可split的调优轴,设置num_outputs=2表示单个轴会被拆分为两个轴,并且进行了循环重排序,最终循环轴会由之前的i.outer、j.outer、k变为i.outer、j.outer、k、i.inner、j.inner。 + +例如将i从512拆分为8和64,将j从512拆分为128和4,生成的调度如下: + +```python +for (i.outer: int32, 0, 8) { + for (j.outer: int32, 0, 128) { + for (i.inner.init: int32, 0, 64) { + for (j.inner.init: int32, 0, 4) { + C[((((i.outer*32768) + (i.inner.init*512)) + (j.outer*4)) + j.inner.init)] = 0f32 + } + } + for (k: int32, 0, 512) { + for (i.inner: int32, 0, 64) { + for (j.inner: int32, 0, 4) { + let cse_var_3: int32 = (j.outer*4) + let cse_var_2: int32 = ((i.outer*32768) + (i.inner*512)) + let cse_var_1: int32 = ((cse_var_2 + cse_var_3) + j.inner) + C[cse_var_1] = (C[cse_var_1] + (A[(cse_var_2 + k)]*B[(((k*512) + cse_var_3) + j.inner)])) + } + } + } + } + } +``` + +该函数有多种拆分因子的选择方式,例如直接指定candidate,给定一系列拆分方式;给定拆分时的偏好策略,是直接用乘法因子或是只要2的幂次方的乘法因子. + +2.指定任务:指定待调优的算子,如resnet18中所有的conv2d,TVM会根据事先编写的conv2d模板生成调度搜索空间。 + +3.指定调优参数:AutoTVM有多个tuner,根据index的random tuner和grid tuner、基于遗传算法的ga tuner、基于Xgb的XGBTuner。tuner影响的是对调度搜索空间的探索,搜索空间是巨大的难以穷举的,通过tuner来高效搜索相对更优的调度候选项。 + +4.性能评估:对于XGBTuner这个具有cost module的tuner,调度候选项在硬件上测量之前会使用模型预测相对性能,选出相对优的一批再去运行,这样减少真实测量的次数,减少调优时间。 + +以上框架的关键组件有: + +- 代码生成器:不同的调度配置会导致不同的循环结构、内存存取顺序等,生成的代码大不相同,这里使用了TVM的代码生成。 +- 代价模型:调度搜索空间是巨大的,穷举一遍是不可能的。代价模型的作用是不断修正调度配置,选出相对最佳的配置,减少调优时间,或者说在固定的调优时间达到更好的性能。 +- 硬件测量环境:AutoTVM有RPC tracker,可以启动多个硬件平台进行调优。 + +## Ansor + +AutoTVM需要事先编写模板来组成调度的搜索空间,最佳性能的上限取决于模板的设计,这对模板的编写带来了很高的要求。作为第二代调优系统,Ansor[^2](Auto Scheduler)取消了模板机制,优化过程可以自动、无干预的进行:无需手动指定优化方式,编译器自动应用调度原语。 + +Ansor自动生成一个覆盖全面的优化的大搜索空间,并为空间中的每个张量程序提供被选择的机会。首先,它自动构建一个大的搜索空间,以覆盖给定计算定义的尽可能多的张量程序。其次,在大搜索空间中高效搜索,该搜索空间可能比现有模板可以覆盖的范围大几个数量级。最后,在优化具有许多子图的整个 DNN 时,识别对端到端性能至关重要的子图并对其进行优先级排序,因为资源是有限的,应该将调优时间和算力资源分配给对性能有更大影响的子图。 + +![img](images/auto_tuning_02.png) + +Ansor有三个关键设计: + +**1.程序采样器** + +为了在无模板的前提下自动生成搜索空间,递归地应用一组推导规则来扩展搜索空间;为了避免在搜索空间中陷入局部最优,使用随机抽取完整的程序给每个采样点相同概率。将搜索空间定为两级,高层结构称为草图(sketch),低级结构(分块大小、并行等)称为注解(annotation)。 + +递归地应用一组派生规则来生成草图,例如在CPU上使用这样一组规则来进行草图生成: + ++ IsStrictInlinable(S,i):表示S中的节点是否是个简单的逐元素算子如relu,则可以内联 ++ HasDataReuse:表示节点i是否是计算密集型,并且有丰富的算子内部数据重用机会如matmul、conv2d ++ HasFusibleConsumer:表示S中的节点i是否只有一个节点j,节点j可以融合到节点i(如matmul+bias_add,conv2d+relu) ++ HasMoreReducetionParallel:表示节点在空间维几乎没有并行性,但是在reduce维有足够的并行性。(如计算一个矩阵l2范数,matmul 2x512 . 512x2) + +对计算的定义进行静态分析,获得这些条件谓词的值。这个过程是解析计算的数学表达式的读写模式自动完成的。与AutoTVM中手写模板不同,手写模板同时指定了高层规则和低层规则,而草图只有高层结构。 + +草图只有分块结构,没有分块大小和循环标注如并行、展开和向量化,这部分由标注完成。给定一个草图列表,随机在草图上填充分块大小、对循环进行随机标注。 + +**2.性能微调器** + +使用进化搜索和学习成本模型来微调采样程序的性能。 + +- **进化搜索** + 在高质量程序的基础上进行突变。突变类型包括分块大小、并行、计算位置等。 +- **成本模型** + 基于梯度增强决策树作为底层模型 + +**3.任务调度器** + +一个DNN可以被划分为许多独立的子图,对于某些子图,花费时间对他们进行调优并不能显著提升整个DNN的端到端的性能。为了提高调优效率,Ansor动态的将不同的时间资源进行分配。 + +以优化单个DNN的端到端延迟为例,Ansor对具有较高初始延迟的子图进行优先排序,因为乐观猜测可以快速减少其延迟。之后,如果Ansor花费了多次迭代而没有观察到其延迟的减少,那么Ansor就会离开子图。 + +Ansor也存在诸多限制,例如不能对动态形状的图进行优化,也无法使用硬件平台特定指令支持,如Intel VNNI、Nvidia Tensor Core。 + +## Meta Scheduler + +Meta Schedule[^3]是第三代调优系统,在它之前,TVM存在三套生成调度的API: + ++ 手动调度:开发人员利用调度原语手动优化程序,程序性能高度依赖开发者的经验。 ++ AutoTVM:开发者需要为每个算子设计一个调度生成的模板,从而使得调优器可以探索这个生成的调度空间。 ++ Ansor:根据一组预定义的规则,自动生成调度模板作为设计空间。但是扩展Ansor到新的调度原语如张量化、流水线化等绝非易事。 + +上面三个系统都有独立的API,且互不兼容。AutoTVM 要求用户学习一组新的 API,AutoScheduler 引入了另一组基于 C++ 的搜索规则。它增加了用户的心理负担和扩展现有系统的开销。 + +MetaSchedule提供以下特性: + ++ 用于实现手动调优、AutoTVM风格和 AutoScheduler风格的统一 API。 ++ 所有调度原语的可扩展性,包括张量化和循环分块。 在自动调优中使用新的原语几乎不需要额外的努力。 ++ 自动化基础设施在其每个组件上都是可扩展的。每个组件的系统可以在纯 python或C++或两者中轻松自定义。例如,可以开发一个新的在python中的调度空间生成器或者新的ProgramRunner等。 + +Meta Scheduler遵循下图的调优流程: + +![img](images/auto_tuning_03.png) + +**1.设计空间生成** + +底层系统记录了用户使用的所有调度原语,以及在采样指令上做出的随机决策,称为Trace。Trace可能包含零条或多条采样指令,这些指令引入调度中的不确定性,形成了一个可供探索的设计空间,例如哪一组分块大小在特定硬件上效果最佳。 + +**2.探索设计空间** + +Meta Schedule 提供了多种内置的探索策略,可以详尽或高效地进行搜索 ,来实现高效的调度。其搜索策略与之前调优器的搜索策略类似,可以随机搜索,也可以使用成本模型进行指导。 + +**3.数据库** + +所有度量记录都经过序列化并存储在数据库中。数据库记录的内容包括工作负载,序列化的 TensorIR;执行测量的硬件目标;参数类型:输入张量的形状和 dtype;运行时间等。 + +在Meta scheduler中,成本模型、数据库、特征提取器、程序运行器等都是可定制、易于扩展的。 + +## 参考文献 + +[^1]:Chen T, Zheng L, Yan E, et al. Learning to optimize tensor programs[J]. Advances in Neural Information Processing Systems, 2018, 31. +[^2]:Zheng L, Jia C, Sun M, et al. Ansor: Generating {High-Performance} tensor programs for deep learning[C]//14th USENIX symposium on operating systems design and implementation (OSDI 20). 2020: 863-879. +[^3]:https://github.com/apache/tvm-rfcs/blob/main/rfcs/0005-meta-schedule-autotensorir.md ## 本节视频 - + diff --git a/03Compiler/04Backend/images/auto_tuning_01.jpg b/03Compiler/04Backend/images/auto_tuning_01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8f77dba4a05b98f48bed7a5978d84bb68d0b1f23 GIT binary patch literal 89860 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%0ATd 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 literal 0 HcmV?d00001 diff --git a/03Compiler/04Backend/images/auto_tuning_02.png b/03Compiler/04Backend/images/auto_tuning_02.png new file mode 100644 index 0000000000000000000000000000000000000000..9e9e4463aaf60ddd7116ac7f41194aec48044a48 GIT binary patch literal 74670 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 literal 0 HcmV?d00001 From e61d60789526d4693e0f40828bb0c68f83268f26 Mon Sep 17 00:00:00 2001 From: youxiudeshouyeren <41790911+youxiudeshouyeren@users.noreply.github.com> Date: Fri, 29 Mar 2024 14:42:02 +0800 Subject: [PATCH 2/2] update format --- 03Compiler/04Backend/06.auto_tuning.md | 73 +++++++++++++++++++------- 1 file changed, 53 insertions(+), 20 deletions(-) diff --git a/03Compiler/04Backend/06.auto_tuning.md b/03Compiler/04Backend/06.auto_tuning.md index c0ee291e..18ce2f30 100644 --- a/03Compiler/04Backend/06.auto_tuning.md +++ b/03Compiler/04Backend/06.auto_tuning.md @@ -1,10 +1,18 @@ # Auto-Tuning原理 +在硬件平台驱动算子运行需要使用各种优化方式来提高性能,然而传统的手工编写算子库面临各种窘境,衍生出了自动生成高性能算子的的方式,称为自动调优。在本节我们首先分析传统算子库面临的挑战,之后介绍基于TVM的业界领先的三个自动调优系统。 + +## 高性能算子挑战 + DNN部署的硬件平台越来越多样化,包括cpu、gpu、fpga和asic,这些硬件平台内部又具有不同的资源。为了在这些平台上部署dnn,需要对dnn中使用的算子使用高性能的张量程序。传统方式为使用算子库,算子库包含了大量的预定义算子(Operators),这些算子是构建和执行深度学习模型的基本单元。例如对于cuda平台,使用cudnn库,预先由工程师编写兼容某种gpu硬件平台的大量算子,在运行时直接调用。然而这种传统方式面临着越来越多的挑战: -+ 优化手段的多样性:如前面的章节介绍,存在循环优化、存储优化、指令优化等多种优化方式,在编写程序时如何使用和编排这些优化是十分困难的事,不仅与硬件平台相关,也与要执行的程序相关,程序参数例如卷积核大小、特征图大小的变化也会影响优化方式的选择,再加上各种优化还涉及其优化因子如循环分块因子的选择。软硬件的组合使得编写一套高性能的算子库十分的耗费精力。 -+ 优化方式的通用性:程序优化方式的选择受到多种因素影响,很难有一个通用的方式能覆盖所有场景,普遍的方式是为每一种硬件的每一套参数都维护一个算子实现。以卷积算子为例,这是深度学习中最常用的算子之一。在不同的硬件上,卷积算子的实现可能会有很大差异。在CPU上,卷积算子可能会使用高度优化的库,如Intel的MKL或OpenBLAS,这些库针对特定的CPU架构进行了优化,可以利用SIMD指令集等硬件特性来加速计算。在GPU上,卷积算子的实现通常会利用CUDA或OpenCL等并行计算框架。GPU的高并行性使得卷积操作可以通过并行化来大幅加速。此外,不同的GPU架构(如NVIDIA的Volta、Turing等)可能需要不同的优化策略。 -+ 软硬件的快速更迭:随着新的处理器架构和专用AI加速器的不断涌现,硬件平台变得更加多样化。每种硬件都有其独特的特性和优化需求,算子库需要为这些不同的硬件提供定制化的算子实现,这大大增加了开发和维护的工作量。每当NVIDIA发布新的CUDA版本,引入新的GPU指令集时,算子库开发者必须更新GPU算子,以利用这些新特性来提升性能。再比如新的算子不断涌现,现在的卷积已经有几十种卷积,各种激活函数也在不断提出。每提出一个新算子,就需要在目标硬件平台实现一套算子库。 ++ 优化手段的多样性:如前面的章节介绍,存在循环优化、存储优化、指令优化等多种优化方式,在编写程序时如何使用和编排这些优化是十分困难的事,不仅与硬件平台相关,也与要执行的程序相关,程序参数例如卷积核大小、特征图大小的变化也会影响优化方式的选择,再加上各种优化还涉及其优化因子如循环分块因子的选择。软硬件的组合使得编写一套高性能的算子库十分的耗费精力。 + ++ 优化方式的通用性:程序优化方式的选择受到多种因素影响,很难有一个通用的方式能覆盖所有场景,普遍的方式是为每一种硬件的每一套参数都维护一个算子实现。以卷积算子为例,这是深度学习中最常用的算子之一。在不同的硬件上,卷积算子的实现可能会有很大差异。在CPU上,卷积算子可能会使用高度优化的库,如Intel的MKL或OpenBLAS,这些库针对特定的CPU架构进行了优化,可以利用SIMD指令集等硬件特性来加速计算。在GPU上,卷积算子的实现通常会利用CUDA或OpenCL等并行计算框架。GPU的高并行性使得卷积操作可以通过并行化来大幅加速。此外,不同的GPU架构(如NVIDIA的Volta、Turing等)可能需要不同的优化策略。 + ++ 软硬件的快速更迭:随着新的处理器架构和专用AI加速器的不断涌现,硬件平台变得更加多样化。每种硬件都有其独特的特性和优化需求,算子库需要为这些不同的硬件提供定制化的算子实现,这大大增加了开发和维护的工作量。每当NVIDIA发布新的CUDA版本,引入新的GPU指令集时,算子库开发者必须更新GPU算子,以利用这些新特性来提升性能。再比如新的算子不断涌现,现在的卷积已经有几十种卷积,各种激活函数也在不断提出。每提出一个新算子,就需要在目标硬件平台实现一套算子库。 + +## 自动调优原理 为了以一种高效的方式在各种硬件平台上提供这些算子,已经引入了多种编译器技术,用户使用高层级声明性语言以类似于数学表达式的形式定义计算,编译器根据该定义生成优化的张量程序。从高层定义中自动生成高性能张量程序是非常困难的。根据目标平台的架构,编译器需要在一个非常大和复杂的空间中进行搜索,其中包含优化的组合选择(例如,分块、向量化、并行化,不同的组合导致的程序性能差异极大)。寻找高性能的程序需要搜索策略来覆盖一个全面的空间,并有效地探索它。 @@ -13,13 +21,16 @@ DNN部署的硬件平台越来越多样化,包括cpu、gpu、fpga和asic,这 自动调优的过程通常包括以下几个步骤: 1. **性能分析**:通过分析程序的运行情况,识别性能瓶颈和优化机会。 + 2. **参数搜索**:系统地探索不同的编译选项和运行参数,寻找最佳的配置。 + 3. **性能评估**:对不同的配置进行测试,评估其对性能的影响。 + 4. **反馈学习**:根据性能评估的结果,调整搜索策略,进一步优化参数选择。 自动调优可以显著提高AI应用的运行效率,尤其是在深度学习等计算密集型任务中。然而,由于AI应用的多样性和复杂性,自动调优仍然是一个活跃的研究领域,研究人员和工程师们正在不断探索更高效、更智能的调优方法。在自动调优中,TVM是走在前列的AI编译器,其自动调优系统已经历经三代,本章将介绍TVM的这三代自动调优系统。 -## AutoTVM +## AutoTVM介绍 AutoTVM[^1]是TVM的第一代自动调优系统,其是基于模板的。 @@ -27,7 +38,9 @@ AutoTVM[^1]是TVM的第一代自动调优系统,其是基于模板的。 ![img](images/auto_tuning_01.jpg) -1.编写模板:AutoTVM是基于模板的tuner,对于每一个需要调优的算子,需要使用TVM的DSL编写调优的knob,例如循环展开的因子、循环重排序的顺序等。例如对于矩阵乘法,可以编写这样的模板: +### 编写模板 + +AutoTVM是基于模板的tuner,对于每一个需要调优的算子,需要使用TVM的DSL编写调优的knob,例如循环展开的因子、循环重排序的顺序等。例如对于矩阵乘法,可以编写这样的模板: ```python @autotvm.template("tutorial/matmul") @@ -102,11 +115,19 @@ for (i.outer: int32, 0, 8) { 该函数有多种拆分因子的选择方式,例如直接指定candidate,给定一系列拆分方式;给定拆分时的偏好策略,是直接用乘法因子或是只要2的幂次方的乘法因子. -2.指定任务:指定待调优的算子,如resnet18中所有的conv2d,TVM会根据事先编写的conv2d模板生成调度搜索空间。 +### 指定任务 + +指定待调优的算子,如resnet18中所有的conv2d,TVM会根据事先编写的conv2d模板生成调度搜索空间。 + +### 指定调优参数 + +AutoTVM有多个tuner,根据index的random tuner和grid tuner、基于遗传算法的ga tuner、基于Xgb的XGBTuner。tuner影响的是对调度搜索空间的探索,搜索空间是巨大的难以穷举的,通过tuner来高效搜索相对更优的调度候选项。 -3.指定调优参数:AutoTVM有多个tuner,根据index的random tuner和grid tuner、基于遗传算法的ga tuner、基于Xgb的XGBTuner。tuner影响的是对调度搜索空间的探索,搜索空间是巨大的难以穷举的,通过tuner来高效搜索相对更优的调度候选项。 +### 性能评估 -4.性能评估:对于XGBTuner这个具有cost module的tuner,调度候选项在硬件上测量之前会使用模型预测相对性能,选出相对优的一批再去运行,这样减少真实测量的次数,减少调优时间。 +对于XGBTuner这个具有cost module的tuner,调度候选项在硬件上测量之前会使用模型预测相对性能,选出相对优的一批再去运行,这样减少真实测量的次数,减少调优时间。 + +### 关键组件 以上框架的关键组件有: @@ -114,7 +135,7 @@ for (i.outer: int32, 0, 8) { - 代价模型:调度搜索空间是巨大的,穷举一遍是不可能的。代价模型的作用是不断修正调度配置,选出相对最佳的配置,减少调优时间,或者说在固定的调优时间达到更好的性能。 - 硬件测量环境:AutoTVM有RPC tracker,可以启动多个硬件平台进行调优。 -## Ansor +## Ansor介绍 AutoTVM需要事先编写模板来组成调度的搜索空间,最佳性能的上限取决于模板的设计,这对模板的编写带来了很高的要求。作为第二代调优系统,Ansor[^2](Auto Scheduler)取消了模板机制,优化过程可以自动、无干预的进行:无需手动指定优化方式,编译器自动应用调度原语。 @@ -122,33 +143,37 @@ Ansor自动生成一个覆盖全面的优化的大搜索空间,并为空间中 ![img](images/auto_tuning_02.png) -Ansor有三个关键设计: +Ansor有三个关键设计,分别是程序采样器、性能微调器、任务调度器。 -**1.程序采样器** +### 程序采样器 为了在无模板的前提下自动生成搜索空间,递归地应用一组推导规则来扩展搜索空间;为了避免在搜索空间中陷入局部最优,使用随机抽取完整的程序给每个采样点相同概率。将搜索空间定为两级,高层结构称为草图(sketch),低级结构(分块大小、并行等)称为注解(annotation)。 递归地应用一组派生规则来生成草图,例如在CPU上使用这样一组规则来进行草图生成: + IsStrictInlinable(S,i):表示S中的节点是否是个简单的逐元素算子如relu,则可以内联 + + HasDataReuse:表示节点i是否是计算密集型,并且有丰富的算子内部数据重用机会如matmul、conv2d -+ HasFusibleConsumer:表示S中的节点i是否只有一个节点j,节点j可以融合到节点i(如matmul+bias_add,conv2d+relu) + ++ HasFusibleConsumer:表示S中的节点i是否只有一个节点j,节点j可以融合到节点i(如matmul+bias_add,conv2d+relu + + HasMoreReducetionParallel:表示节点在空间维几乎没有并行性,但是在reduce维有足够的并行性。(如计算一个矩阵l2范数,matmul 2x512 . 512x2) 对计算的定义进行静态分析,获得这些条件谓词的值。这个过程是解析计算的数学表达式的读写模式自动完成的。与AutoTVM中手写模板不同,手写模板同时指定了高层规则和低层规则,而草图只有高层结构。 草图只有分块结构,没有分块大小和循环标注如并行、展开和向量化,这部分由标注完成。给定一个草图列表,随机在草图上填充分块大小、对循环进行随机标注。 -**2.性能微调器** +### 性能微调器 使用进化搜索和学习成本模型来微调采样程序的性能。 -- **进化搜索** +- 进化搜索 在高质量程序的基础上进行突变。突变类型包括分块大小、并行、计算位置等。 -- **成本模型** + +- 成本模型 基于梯度增强决策树作为底层模型 -**3.任务调度器** +### 任务调度器 一个DNN可以被划分为许多独立的子图,对于某些子图,花费时间对他们进行调优并不能显著提升整个DNN的端到端的性能。为了提高调优效率,Ansor动态的将不同的时间资源进行分配。 @@ -156,12 +181,14 @@ Ansor有三个关键设计: Ansor也存在诸多限制,例如不能对动态形状的图进行优化,也无法使用硬件平台特定指令支持,如Intel VNNI、Nvidia Tensor Core。 -## Meta Scheduler +## Meta Scheduler介绍 Meta Schedule[^3]是第三代调优系统,在它之前,TVM存在三套生成调度的API: + 手动调度:开发人员利用调度原语手动优化程序,程序性能高度依赖开发者的经验。 + + AutoTVM:开发者需要为每个算子设计一个调度生成的模板,从而使得调优器可以探索这个生成的调度空间。 + + Ansor:根据一组预定义的规则,自动生成调度模板作为设计空间。但是扩展Ansor到新的调度原语如张量化、流水线化等绝非易事。 上面三个系统都有独立的API,且互不兼容。AutoTVM 要求用户学习一组新的 API,AutoScheduler 引入了另一组基于 C++ 的搜索规则。它增加了用户的心理负担和扩展现有系统的开销。 @@ -169,27 +196,33 @@ Meta Schedule[^3]是第三代调优系统,在它之前,TVM存在三套生成 MetaSchedule提供以下特性: + 用于实现手动调优、AutoTVM风格和 AutoScheduler风格的统一 API。 + + 所有调度原语的可扩展性,包括张量化和循环分块。 在自动调优中使用新的原语几乎不需要额外的努力。 + + 自动化基础设施在其每个组件上都是可扩展的。每个组件的系统可以在纯 python或C++或两者中轻松自定义。例如,可以开发一个新的在python中的调度空间生成器或者新的ProgramRunner等。 Meta Scheduler遵循下图的调优流程: ![img](images/auto_tuning_03.png) -**1.设计空间生成** +### 设计空间生成 底层系统记录了用户使用的所有调度原语,以及在采样指令上做出的随机决策,称为Trace。Trace可能包含零条或多条采样指令,这些指令引入调度中的不确定性,形成了一个可供探索的设计空间,例如哪一组分块大小在特定硬件上效果最佳。 -**2.探索设计空间** +### 探索设计空间 Meta Schedule 提供了多种内置的探索策略,可以详尽或高效地进行搜索 ,来实现高效的调度。其搜索策略与之前调优器的搜索策略类似,可以随机搜索,也可以使用成本模型进行指导。 -**3.数据库** +### 数据库 所有度量记录都经过序列化并存储在数据库中。数据库记录的内容包括工作负载,序列化的 TensorIR;执行测量的硬件目标;参数类型:输入张量的形状和 dtype;运行时间等。 在Meta scheduler中,成本模型、数据库、特征提取器、程序运行器等都是可定制、易于扩展的。 +## 小结 + +本节介绍了TVM中三代自动调优器的发展,从无模板、有模板、API统一,明显的发展趋势是编译器越来越降低自动调优中人工参与的比重,增大这一过程的自动化。自动调优领域仍是个不断发展的领域,新硬件、新指令集、稀疏模型等仍需支持。 + ## 参考文献 [^1]:Chen T, Zheng L, Yan E, et al. Learning to optimize tensor programs[J]. Advances in Neural Information Processing Systems, 2018, 31.