【发布时间】:2012-07-21 15:36:33
【问题描述】:
我正在为 I-32A 架构使用英特尔 C 编译器。 当我使用以下选项编译我的 C 程序时:
icl mytest.c /openmp /QxHost /fp:fast /fast
测试运行需要 3.3 秒。现在我尝试使用PGO,所以我编译了:
icl mytest.c /openmp /QxHost /fp:fast /fast /Qprof-gen
然后我使用示例输入运行可执行文件 2-3 次,然后再次编译:
icl mytest.c /openmp /QxHost /fp:fast /fast /Qprof-use
希望它会考虑收集到的信息。事实上,它告诉我它正在使用 .dyn 文件,但生成的可执行文件比没有使用 Qprof 时要慢(3.85 秒),而且这与执行运行的数据完全相同(对于 PGO 来说应该是完美的)。 我尝试将 openmp 线程设置为一个,认为它可能会与 .dyn 输出混淆,但结果是一样的 - 它比简单编译要慢。
我的问题是:这在理论上是否可行,或者我用编译器选项以某种方式搞乱了 PGO 进程?
【问题讨论】:
-
/Qpprof-use?第二个 p 应该在那里吗? -
只是一个错字;打字比从控制台复制粘贴要快:)
标签: c optimization icc