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 に最適なはずです)。.dyn 出力を混乱させる可能性があると考えて、openmp スレッドを 1 に設定しようとしましたが、結果は同じです。単純なコンパイルよりも遅いです。
私の質問は次のとおりです。それは理論的にも可能ですか、それともコンパイラオプションで PGO プロセスを台無しにしていますか?