脚本如何实现迭代调优?

脚本如何实现迭代调优?
(1)配置AutoTuner环境变量:使用环境变量AUTOTUNE_DATADIR指定调优相关的数据的存放位置。
export AUTOTUNE_DATADIR=/tmp/autotuner_data/
(2)初始编译步骤:添加毕昇编译器选项-fautotune-generate,编译生成可调优代码区间。
cd examples/coremark/
clang -Ilinux64 -I. -DFLAGS_STR=\¥¥ -lrt¥\¥ -DITERATIONS=300000 core_list_join.c core_main.c core_matrix.c core_state.c core_util.c linux64/core_portme.c -O2 -g -o coremark -fautotune-generate
(3)初始化调优:运行llvm-autotune命令,初始化调优任务。生成最初的编译配置供下一次编译使用。
llvm-autotune minimize
minimize表示调优目标,旨在最小化指标(例如程序运行时间)。也可使用maximize,旨在最大化指标(例如程序吞吐量)。
(4)调优编译步骤:添加毕昇编译器选项-fautotune,读取当前AUTOTUNE_DATADIR中的配置并编译。
clang -Ilinux64 -I. -DFLAGS_STR=\¥¥ -lrt¥\¥ -DITERATIONS=300000 core_list_join.c core_main.c core_matrix.c core_state.c core_util.c linux64/core_portme.c -O2 -g -o coremark -fautotune
(5)性能反馈:运行程序,并根据自身需求获取性能数字,使用llvm-autotune feedback反馈。例如,如果我们想以coremark运行速度为指标进行调优,可以采用如下方式:
time -p ./coremark 0x0 0x0 0x66 300000 2>&1 1>/dev/null
llvm-autotune feedback 31.09
注意:建议在使用 llvm-autotune feedback 之前, 先验证步骤4编译是否正常,及编译好的程序是否运行正确。若出现编译或者运行异常的情况,请输入相应调优目标的最差值(例如, 调优目标为minimize, 可输入llvm-autotune feedback 9999;maximize 可输入 0 或者 -9999)。若输入的性能反馈不正确,可能会影响最终调优的结果。
(6)调优迭代:根据用户设定的迭代次数,重复步骤4和5进行调优迭代。
(7)结束调优:进行多次迭代后,用户可选择终止调优,并保存最优的配置文件。配置文件会被保存在环境变量AUTOTUNE_DATADIR指定的目录下。
llvm-autotune finalize
(8)最终编译:使用步骤7得到的最优配置文件进行最后编译。在AUTOTUNE_DATADIR环境变量未改变的情况下,可直接使用-fautotune选项:
clang -Ilinux64 -I. -DFLAGS_STR=\¥¥ -lrt¥\¥ -DITERATIONS=300000 core_list_join.c core_main.c core_matrix.c core_state.c core_util.c linux64/core_portme.c -O2 -g -o coremark -fautotune
或者使用-mllvm -auto-tuning-input=直接指向配置文件。
clang -Ilinux64 -I. -DFLAGS_STR=\¥¥ -lrt¥\¥ -DITERATIONS=300000 core_list_join.c core_main.c core_matrix.c core_state.c core_util.c linux64/core_portme.c -O2 -g -o coremark -mllvm -auto-tuning-input=/tmp/autotuner_data/config.yaml

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

irrationality

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值