【发布时间】:2015-07-31 20:24:31
【问题描述】:
没有最佳的 -O 级别。为了找到我的特定代码的最快执行速度,我的方法是使用通常的优化级别(即 -O0、-Ofast、-O1、-O2、-O3、-march=native)编译相同的代码并检查产生哪些标志我是最快的执行(随着时间的推移)。
那么,有一种方法可以检查所有优化级别(前面列出的)运行一个 Makefile 的每个优化(-O 级别)吗?
我认为 Gnu Parallel 可以运行 Makefile 更改 -O 级别,但我不知道如何解决?
提前致谢。
【问题讨论】:
-
为什么又不能设置
CCFLAGS? -
可能是一个选项,但如何递归地编辑 CCFLAGS 以使用唯一的 Makefile 测试所有优化级别? GnuParallel 可能会有所帮助,但我不知道如何有效地完成这项任务。
-
for flag in -O0 -Ofast -O1 -O2 -O3 -march=native; do make CFLAGS+="$flag"; done? -
time命令不是一个很好的程序速度指标。 ncsu.edu/hpc/Documents/sprofile.php -
-Ofast -march=native应该提供最快的程序,即使您无视“严格的标准合规性”,即 -ffast-math。 gcc.gnu.org/onlinedocs/gcc-5.2.0/gcc/…
标签: c optimization makefile gnu-parallel