npu_init = npu_ops.initialize_system() npu_shutdown = npu_ops.shutdown_system() config = tf.ConfigProto() ... custom_op.parameter_map["auto_tune_mode"].s = tf.compat.as_bytes("RL,GA") ... with tf.Session(config=config) as sess: sess.run(npu_init) #调用HCCL接口... #执行训练... sess.run(npu_shutdown)
session_config = tf.config(…) custom_op = session_config.graph_options.rewrite_options.custom_optimizers.add() … custom_op.parameter_map["auto_tune_mode"].s = tf.compat.as_bytes("RL,GA")
session_config=tf.ConfigProto() config = NPURunConfig(auto_tune_mode="RL,GA", session_config=session_config)
说明:请根据网络中的算子类型,选择合适的调优模式。当前版本RL调优模式耗时较长,通常一个算子调优大约需要5分钟,会根据网络中算子个数进行时间的累加。
训练脚本的其他详细配置请参见《TensorFlow网络模型迁移和训练指南》。
context.set_context(auto_tune_mode="RL,GA")
详细的context配置参数说明可参见:MindSpore API。
其他说明:
Auto Tune记录的为INFO级别的日志,若想在Host侧日志文件中记录Auto Tune的日志信息,请将Host侧日志级别设置为INFO,然后重新执行训练脚本,日志级别设置方法请参见《日志参考》。
训练进程数 * TE_PARALLEL_COMPILER * 2 < Host侧CPU核数,其中TE_PARALLEL_COMPILER为算子并行编译进程数。
TBE算子并行编译场景下(即TE_PARALLEL_COMPILER>1),一个调优进程需要对应一个Device,即在进行调优时,不可以进行需要使用Device资源的其他操作,否则会调优异常。
详细操作如下所示:
DUMP数据主要包含算子的输出描述文件以及算子的二进制文件等,生成DUMP数据的前提为:
Auto Tune工具离线调优入口脚本为CANN软件安装后文件存储路径的:python/site-packages/schedule_search/msoptune.py,用户可直接调用此python文件实现离线调优,调用命令如下:
python3.7 {msoptune.py文件所在路径} --start {DUMP数据所在目录}
示例:
python3.7 ${INSTALL_DIR}/python/site-packages/schedule_search/msoptune.py --start /home/username/DumpData
当前版本同一个Host上只允许开启一个进程进行离线调优,不允许多进程并发调优。