本文正在参与「金石计划 . 瓜分6万现金大奖」

欢迎关注我的大众号 [极智视界],获取我的更多笔记共享

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

  写这篇首要是为了填这两篇《谈谈昇腾 auto tune》、《再谈昇腾 auto tune》自己留的坑,之前两篇其实首要在说昇腾 auto tune 的一些 由来,以及 auto tune 搜索算法的原理,感兴趣的同学可以去瞧瞧~

  这篇首要写昇腾 auto tune 怎么用。

  整个昇腾 auto tune 模块的运转流程如下:

极智AI | 三谈昇腾 auto tune

  首要步骤如下:

  • (1) 首要最原始的开源结构模型传入GE、FE 进行图预备 (输入shape、dtype校验,算子挑选等) 以及 图优化 (算子交融、常量折叠等);
  • (2) 然后进入调优挑选,首要会判别是否匹配到知识库,若匹配到则判别是否重新调优,若没有匹配到则开端直接调优。不论怎么样,调优后的战略都会和内建战略或已经存在的战略进行功能比对,挑选一个更加好的战略放到新的知识库里面;
  • (3) 使用知识库编译算子;
  • (4) 生成离线模型;

  那么 auto tune 调优怎么样操作呢,我们来看。

########### 环境变量装备 ###########
#### 必选环境变量
# CANN根底环境变量
source .${install_path}/set_env.sh
# python环境
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/python3.7.5/lib
​
#### 可选环境变量
# auto tune可选环境变量
export ASCEND_DEVICE_ID=0
export TE_PARALLEL_COMPILER=2
export TUNE_BANK_PATH=/path/custom_tune_bank
export REPEAT_TUNE=False
export TUNE_OPS_NAME=conv_layers/Pad_0  # 网络中需求调优的节点
export ENABLE_TUNE_BANK=True# 离线调优环境变量
export ENABLE_TUNE_DUMP=True# 离线调优场景可选环境变量
export TUNE_DUMP_PATH=/path/DumpData

  这儿对 auto tune 可选环境变量进行一个阐明。

极智AI | 三谈昇腾 auto tune

  然后再履行 ATC 工具进行模型转换时,经过 --auto_tune_mode="xx" 开关来敞开 auto tune,auto_tune_mode 有三种取值: “RL, GA”“RL”“GA”

极智AI | 三谈昇腾 auto tune

  其中 RL 模式支撑的算子有:Abs、AbsGrad、AcosGrad、Add、AsinGrad、AsinhGrad、AtanGrad、BiasAddGrad、BNTrainingUpdate、Cast、Ceil、ConcatD、Cos、Cosh、Div、DynamicRNN、Elu、EluGrad、Equal、Erf、Erfc、Exp、Expm1、Floor、Gelu、GeluGrad、Inv、InvGrad、L2Loss、L2Normalize、L2NormalizeGrad、Log、LogSoftmaxV2、LogSoftmaxGrad、Log1p、Maximum、Mod、Mul、Neg、OnesLike、Pow、PReluGrad、Reciprocal、ReciprocalGrad、ReduceAllD、ReduceAnyD、ReduceMaxD、ReduceMeanD、ReduceSumD、Relu、ReluGrad、Relu6、Relu6Grad、Rint、Round、Rsqrt、RsqrtGrad、Selu、Sigmoid、SigmoidCrossEntropyWithLogits、SigmoidGrad、Sign、Sinh、SmoothL1Loss、SoftmaxV2、SoftmaxGrad、Softplus、Softsign、SplitD、Sqrt、SqrtGrad、Square、StridedSliceD、Sub、Tanh、TanhGrad、SoftmaxCrossEntropyWithLogits、GNTrainingReduce、GNTrainingUpdate、CosineEmbeddingLoss、INTrainingReduceV2、INTrainingUpdateV2。

  GA 模式支撑的算子有 (首要是 cube 类算子):AvgPool、Conv2D、Conv2DBackpropInput、Conv2DBackpropFilter、Conv2DCompress、Conv2DTranspose、Conv3D、Conv3DBackpropInput、Conv3DBackpropFilter、Deconvolution、GEMM、MatMul、MatMulV2、BatchMatMul、BatchMatMulV2、MatMulV2Compress、FullyConnection、FullyConnectionCompress、Pooling。

  调优完成后,如果满足自定义知识库生成条件,则会生成自定义知识库,并存储到相应路径下,同样会直接生成调优后的离线模型。下图是调优过程的部分日志:

极智AI | 三谈昇腾 auto tune

  好了,以上共享了 三谈昇腾 auto tune,期望我的共享能对你的学习有一点协助。


 【大众号传送】

《极智AI | 三谈昇腾 auto tune》


极智AI | 三谈昇腾 auto tune