本文正在参与「金石计划 . 瓜分6万现金大奖」
欢迎关注我的大众号 [极智视界],获取我的更多笔记共享
大家好,我是极智视界,本文 再来谈谈昇腾 auto tune。
写这篇首要是为了填这两篇《谈谈昇腾 auto tune》、《再谈昇腾 auto tune》自己留的坑,之前两篇其实首要在说昇腾 auto tune 的一些 由来,以及 auto tune 搜索算法的原理,感兴趣的同学可以去瞧瞧~
这篇首要写昇腾 auto tune 怎么用。
整个昇腾 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 可选环境变量进行一个阐明。
然后再履行 ATC 工具进行模型转换时,经过 --auto_tune_mode="xx"
开关来敞开 auto tune,auto_tune_mode
有三种取值: “RL, GA” 、 “RL” 、 “GA” 。
其中 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。
调优完成后,如果满足自定义知识库生成条件,则会生成自定义知识库,并存储到相应路径下,同样会直接生成调优后的离线模型。下图是调优过程的部分日志:
好了,以上共享了 三谈昇腾 auto tune,期望我的共享能对你的学习有一点协助。
【大众号传送】
《极智AI | 三谈昇腾 auto tune》