作者:拉姆小鱼
转载链接:1.5版本新特性--亲和算法库MindSpore Boost体验_MindSpore_昇腾论坛_华为云论坛
本次体验新增特性:
安装版本:
按照介绍中的配置方法跑了一下ssd300,代码地址:
https://gitee.com/mindspore/models/tree/master/official/cv/ssd
发现配置后训练性能并无明显变化:
boost_level="O0" 2~4 epoch性能:
boost_level="O1" 2~4 epoch性能:
boost_level="O2" 2~4 epoch性能:
然后在models仓搜索了下,官方的resnet+imagenet配置了boost_level选项,决定再次尝试下:
代码位于:https://gitee.com/mindspore/models/tree/master/official/cv/resnet
多卡会有卡间通信影响,因此采用单卡训练5个epoch单独查看算子性能
训练指令:
python ../train.py --data_path=ImageNet_Original/train --config_path=../config/resnet50_imagenet2012_config.yaml --output_path './output' --epoch_size 5
boost_level="O0" 2~4 epoch性能:
boost_level="O2" 2~4 epoch性能:
性能确实有14.9%的收益!!然后添加profling通过mindinsight看了下算子的耗时:
boost_level="O0"
boost_level="O2”
从图上看部分算子,比如FusionOp_Conv2D_BNTrainingReduce等算子虽然耗时有增加,但是有些算子,比如MaxPoolGradWithArgmax在图上看不到了,猜测是融合策略把算子聚合了。
ssd300本身就开了图算加速,所以加上boost_level 作用不太明显。
很强大的功能,不过比对了resnet50_imagenet2012_Boost_config.yaml和resnet50_imagenet2012_config.yaml中的配置,参数配置差异较大,这个参数应该不能跟图算融合一样无差别的应用到网络中,期待更详细的官方配置和应用说明。