問題タブ [pgo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - プロファイルに基づく最適化 (C)
このコンパイラ機能を知っている人はいますか? GCCがそれをサポートしているようです。それはどのように機能しますか?潜在的な利益は何ですか?どの場合がいいですか?内部ループ?
(この質問は特定のものであり、一般的な最適化に関するものではありません、ありがとう)
c++ - エラー LNK1270 で PGO を使用できない
VS8 で Profile Guided Optimization (PGO) を使用しようとしています。問題の DLL を計測した後、アプリケーションがインストールされているマシンにコピーして、トレーニング シナリオを実行します。次に、pgcトレーニング ファイルを開発ボックスにコピーして戻すと、次のエラーが発生します。
1>StdAfx.obj: 致命的なエラー LNK1270: 無効なファイル。タイムスタンプが /LTCG:PGINSTRUMENT にリンクされたファイルと一致しません
このエラーのMSDNエントリには、次のように記載されています。
無効なファイル; タイムスタンプが /LTCG:PGINSTRUMENT でリンクされたファイルと一致しない /LTCG:PGINSTRUMENT を指定するときにリンカーに渡される同じファイルを、/LTCG:PGOPTIMIZE を指定するときにも渡す必要があります。
/LTCG:PGOPTIMIZE では、入力が /LTCG:PGINSTRUMENT フェーズと同一である必要があります。
この警告を解決するには、/LTCG:PGINSTRUMENT を実行し、すべてのテスト実行をやり直して、/LTCG:PGOPTIMIZE を実行するか、/LTCG:PGOPTIMIZE の代わりに /LTCG:PGUPDATE を使用して最適化されたイメージを作成します。
テストを再実行しても問題は解決しません (ただし、stdafx.obj ではなく、他のファイルで表示されることがあります)。
使用/LTCG:PGUPDATE
は機能しますが、エラーの原因や失敗の原因を理解したいと思います( MSDN PGO ページに関連するものは見つかりませんPGUPDATE
) 。PGOPTIMIZE
c++ - GCC Profile Guided Optimization (PGO) はどのような情報を収集し、どの最適化でそれを使用しますか?
有効にしたときに GCC が収集する情報-fprofile-generate
と、収集した情報を実際に使用する最適化 (-fprofile-use
フラグの設定時) はどれですか?
ここで引用が必要です。しばらく検索しましたが、文書化されたものは見つかりませんでした。
リンク時最適化 (LTO) に関する情報はプラスになります! =D
visual-studio-2010 - VS2010 PGOのこれらの「期待に失敗しました」メッセージとは何ですか?また、それらを修正するにはどうすればよいですか?
(を使用して)PGO最適化手順を実行すると、VisualStudio2010LINK.EXE /LTCG:PGU
リンカーは次のように文句を言います。
これらの「期待の失敗」の原因は何ですか?どのように対処すればよいですか?PGOはまだコードを最適化しているようですが、これらのメッセージが存在する場合の最適化の品質/完全性には少し疑いがあります。
optimization - GCC のインストルメント化された実行可能ファイルは、インストルメント化されていない実行可能ファイルよりもどのように高速になりますか?
SPEC ベンチマークで GCC Profile-Guided Optimization のオーバーヘッドをベンチマークしています。いくつかのベンチマークで奇妙な結果が得られました。実際、私のベンチマークのうち 2 つは、インストルメント化するとより高速に実行されます。
通常の実行可能ファイルは次のようにコンパイルされます: -g -O2 -march=native
インストルメント化された実行可能ファイルは、次のようにコンパイルされます: -g -O2 -march=native -fprofile-generate -fno-vpt
GCC 4.7 (正確には Google ブランチ) を使用しています。ベンチマークが実行されているコンピューターには、Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz が搭載されています。
bwaves は Fortran ベンチマークであり、libquantum
結果は次のとおりです。
ma機の問題かと思いベンチマークを数回実行しましたが、その都度確認しました。
一部のプログラムではオーバーヘッドが非常に小さいことは理解できますが、改善の理由はわかりません。
私の質問は次のとおりです。GCC インストルメント化された実行可能ファイルは、最適化された通常の実行可能ファイルよりも高速にするにはどうすればよいですか?
ありがとう
visual-studio - Visual Studio: ある exe から別の dll へのプロファイル ガイド付き最適化の結果を使用しますか?
core.dll
Visual Studio の優れた Profile Guided Optimization を使用して最適化したいdll があります。ほとんどのコードは dll であり、実際には と呼ばれるライブラリにコンパイルされ、core.lib
それが によってラップされcore.dll
ます。
このコードを単体テストするために、.exe というテスター実行可能ファイルもありますtest_core.exe
。この実行可能ファイルは、そこからさまざまな機能にリンクしcore.lib
てアクティブにします。DLLcore.dll
にはエクスポートがほとんどなく、主な機能を開始するのに十分なだけです。これらのエクスポートを使用して完全に単体テストすることはできません。
私が望むのは、 でいくつかのテストをアクティブにして PGO データ収集を行い、test_core.exe
この PGO データを使用して をリンクおよび最適化することcore.dll
です。
Visual Studio フレームワークは、収集する実行可能ファイルと最適化された実行可能ファイルが同じになるように設計されているようです。
1 つのオプションは、関連するテストを内部に追加し、特別なエクスポートを使用してそれらを実行することですが、それは他の状況では使用されないテスト コードでcore.dll
肥大化します。core.dll
linux - gcc の pgo からの最適化レポート
gcc の PGO (プロファイルに基づく最適化) が私のアプリケーションでうまく動作することがわかります (実行速度が最大 15% 向上)。「-fprofile-generate」を使用してから「-fprofile-use」を使用しています。しかし、何がどのように最適化されたかを説明するレポートを生成する方法はありますか? Intel コンパイラ (icc) がそれを実行できることは知っていますが、gcc はどうですか?