中文
注册

Autotuner调优流程

调优流程(如图一所示)由两个阶段组成:初始编译阶段 (initial compilation)和调优阶段 (tuning process)。

图1 Autotuner调优流程

初始编译阶段

初始编译阶段发生在调优开始之前,Autotuner首先会让编译器对目标程序代码做一次编译,在编译的过程中,毕昇编译器会生成一些包含所有可调优结构的YAML文件, 告诉我们在这个目标程序中哪些结构可以用来调优,比如文件(module), 函数(function), 循环(loop)。 例如,循环展开是编译器中最常见的优化方法之一,它通过多次复制循环体代码,达到增大指令调度的空间,减少循环分支指令的开销等优化效果。若以循环展开次数(unroll factor)为对象进行调优,编译器会在YAML文件中生成所有可被循环展开的循环作为可调优结构。

调优阶段

当可调优结构顺利生成之后,调优阶段便会开始:

  1. Autotuner首先读取生成好的可调优结构的YAML 文件,从而产生对应的搜索空间,也就是生成针对每个可调优代码结构的具体的参数和范围;
  2. 调优阶段会根据设定的搜索算法尝试一组参数的值,生成一个YAML格式的编译配置文件(compilation config),从而让编译器编译目标程序代码产生二进制文件;
  3. 最后Autotuner将编译好的文件以用户定义的方式运行并取得性能信息作为反馈;
  4. 经过一定数量的迭代之后,Autotuner将找出最终的最优配置,生成最优编译配置文件,以YAML的形式储存。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词