极智AI | 再谈昇腾auto tune

本文涉及的产品
视觉智能开放平台,视频资源包5000点
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,分割抠图1万点
简介: 大家好,我是极智视界,本文 再来谈谈昇腾 auto tune。

大家好,我是极智视界,本文 再来谈谈昇腾 auto tune

写这篇主要是为了填这篇《谈谈昇腾 auto tune》自己留的坑,上篇其实大篇幅在说昇腾 auto tune 的一些 由来,以及与 深度学习编译器 tvm 的一些联系,感兴趣的同学可以去瞧瞧~

这篇主要写昇腾 auto tune 的原理。

上篇说到,auto tune 的作用其实就是充分发挥硬件资源进行算子的自动调优。而具体到昇腾里,把 auto tune 功能集成在 atc模型转换工具 里面,在使用 atc 生成 om 模型的时候,打开 --auto_tune_mode 开关就能够方便的使用 auto tune 功能了,调优的结果会放在自定义路径 / 默认路径的知识库中,然后生成模型的时候就可以享用调优的知识库,生成性能更加好的模型。

昇腾里的 auto tune 包含两种调优模式:RLGA,而搜索算法在 tvm 里会更加丰富一些,包括:RandomGridSearchGAXGBoost。如下:

主要来说说昇腾的两种调优模式:

  • RL Mode:Reinforcement Larning 即强化学习,原理为 将schedule调度过程抽象为基于蒙特卡洛树搜索的决策链 (蒙特卡洛树搜索又称随机抽样或统计试验方法,阿尔法狗在下棋的时候,做决策的不是策略网络和价值网络,而是蒙特卡洛树搜索),然后使用神经网络指导决策,其中的神经网络是基于强化学习训练而成的。昇腾的 RL Mode 主要支持 elewise、broadcast、reduce 类算子;
  • GA Mode:这个思想和 tvm 的一样,主要通过遗传算法 (GA) 进行多轮的参数寻优,从而获得最优的策略。采用多级组合优化生成调优空间,加入人工经验进行剪枝、压缩、重排,以提高搜索效率。昇腾的 GA Mode 主要支持 cube 类算子 (所谓 cube类算子 就是指 矩阵乘之类的算子,因为 cube 就是指昇腾的矩阵运算单元),如 Conv2D、GEMM、MatMul、FullyConnection 等;

介绍到这里其实还是比较笼统,下面再深入来讲解两种模式的原理。

RL Mode 原理

首先来说说 RL Mode,RL Mode 由 RL TuneRL知识库 两部分组成,其中 RL Tune 主要负责算子调优,而 RL知识库 则用来存储调优后的策略

RL Tune 中会使用强化学习训练出一个策略评价模型 Policy Model,训练的原理如下:

RL知识库包括 内置知识库 与 自定义知识库。内置知识库顾名思义就是内置好的了,是预置的针对常见算子不同 shape 的调优后的策略 (知识库),存储路径为 cann_install_path/opp/data/rl/<soc_version>/built-in。而自定义知识库 是用户使用 RL Mode 调优后生成的性能优于内置知识库的调优策略 (所以这里在调优的过程中会去和内置知识库进行一个性能比较),默认存储在 cann_install_path/opp/data/rl/<soc_version>/custom,也可自行指定存储路径。

GA Mode 原理

GA Mode 首先会进行调优空间的分析,然后利用遗传算法进行搜索,评估出最优调优策略后存入知识库中。

GA Mode 中调优空间分析主要是指 tiling组合分析,生成调优空间后 (tiling参数空间),再利用遗传算法进行调优搜索,最后返回最优的 tiling参数。整个过程如下:

同样,GA 知识库包括 内置知识库 与 自定义知识库。内置知识库存储路径为 cann_install_path/opp/data/tiling/<soc_version>/built-in。而自定义知识库默认存储在 cann_install_path/opp/data/tiling/<soc_version>/custom,同样也可自行指定存储路径。

再留个坑吧,具体用法咱们下篇再说。


好了,以上分享了 再谈昇腾 auto tune,希望我的分享能对你的学习有一点帮助。


logo_show.gif

相关文章
|
10天前
|
机器学习/深度学习 数据采集 人工智能
昇腾AI行业案例(七):基于 Conformer 和 Transformer 模型的中文语音识别
欢迎学习《基于 Conformer 和 Transformer 模型的中文语音识别》实验。本案例旨在帮助你深入了解如何运用深度学习模型搭建一个高效精准的语音识别系统,将中文语音信号转换成文字,并利用开源数据集对模型效果加以验证。
32 12
|
13天前
|
存储 机器学习/深度学习 人工智能
昇腾AI行业案例(六):基于 PraNet 的医疗影像分割
欢迎学习《基于 PraNet 的医疗影像分割》实验。在本实验中,你将深入了解如何运用计算机视觉(CV)领域的 AI 模型,搭建一个高效精准的医疗影像分割系统,专注于息肉分割任务,并利用开源数据集对模型效果加以验证。
22 1
|
15天前
|
机器学习/深度学习 人工智能 算法
昇腾AI行业案例(一):基于AI图像处理的疲劳驾驶检测
在本实验中,您将学习如何使用利用CV(Computer Vision)领域的AI模型来构建一个端到端的疲劳驾驶检测系统,并使用开源数据集进行效果验证。为此,我们将使用昇腾的AI硬件以及CANN等软件产品。
52 3
|
13天前
|
存储 人工智能 数据可视化
昇腾AI行业案例(五):基于 DANet 和 Deeplabv3 模型的遥感图像分割
欢迎学习《基于 DANet 和 Deeplabv3 模型的遥感图像分割》实验。在本实验中,你将深入了解如何运用计算机视觉(CV)领域的 AI 模型,搭建一个高效精准的遥感地图区域分割系统,并利用开源数据集和昇腾 AI 芯片对模型效果加以验证。
26 0
昇腾AI行业案例(五):基于 DANet 和 Deeplabv3 模型的遥感图像分割
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
昇腾AI行业案例(四):基于 Bert 模型实现文本分类
欢迎学习《昇腾行业应用案例》的“基于 Bert 模型实现文本分类”实验。在本实验中,您将学习如何使用利用 NLP (natural language processing) 领域的AI模型来构建一个端到端的文本系统,并使用开源数据集进行效果验证。为此,我们将使用昇腾的AI硬件以及CANN等软件产品。
22 0
|
13天前
|
人工智能 算法 计算机视觉
昇腾AI行业案例(三):基于 AI 图像处理的铝板缺陷检测
欢迎学习《基于 AI 图像处理的铝板缺陷检测》实验。在本实验中,你将深入了解如何运用计算机视觉(CV)领域的 AI 模型,搭建一个高效精准的铝板缺陷检测系统,并利用开源数据集和昇腾 AI 芯片对模型效果加以验证。
29 0
|
13天前
|
机器学习/深度学习 人工智能 算法
昇腾AI行业案例(二):基于 AI 图像处理的安全帽检测
欢迎学习《昇腾行业应用案例》的 “基于 AI 图像处理的安全帽检测” 实验。在本实验中,你将深入了解如何运用计算机视觉(CV)领域的 AI 模型,搭建一个高效精准的安全帽检测系统,并利用开源数据集对模型效果加以验证。为此,我们将使用昇腾的AI硬件以及CANN等软件产品。
21 0
|
1月前
|
机器学习/深度学习 人工智能 API
【AI系统】昇腾异构计算架构 CANN
本文介绍了昇腾 AI 异构计算架构 CANN,涵盖硬件层面的达·芬奇架构和软件层面的全栈支持,旨在提供高性能神经网络计算所需的硬件基础和软件环境。通过多层级架构,CANN 实现了高效的 AI 应用开发与性能优化,支持多种主流 AI 框架,并提供丰富的开发工具和接口,助力开发者快速构建和优化神经网络模型。
59 1
|
2月前
|
存储 人工智能 编译器
【AI系统】昇腾数据布局转换
华为昇腾NPU采用独特的NC1HWC0五维数据格式,旨在优化AI处理器的矩阵乘法运算和访存效率。此格式通过将C维度分割为C1份C0,适应达芬奇架构的高效计算需求,支持FP16和INT8数据类型。此外,昇腾还引入了NZ分形格式,进一步提升数据搬运和矩阵计算效率。AI编译器通过智能布局转换,确保在不同硬件上达到最优性能。
68 3
|
2月前
|
存储 机器学习/深度学习 人工智能
【AI系统】昇腾 AI 核心单元
本文深入解析了华为昇腾AI处理器的核心——AI Core及其达芬奇架构。AI Core采用特定域架构(DSA),专为深度学习算法优化,通过矩阵、向量和标量计算单元的高效协作,实现了对深度学习算法的加速。文章详细介绍了AI Core的计算单元、存储系统及控制单元的设计,展示了其如何通过优化数据通路和控制流程,显著提升计算性能。
94 3

热门文章

最新文章