問題タブ [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.

0 投票する
4 に答える
4846 参照

c++ - プロファイルに基づく最適化 (C)

このコンパイラ機能を知っている人はいますか? GCCがそれをサポートしているようです。それはどのように機能しますか?潜在的な利益は何ですか?どの場合がいいですか?内部ループ?

(この質問は特定のものであり、一般的な最適化に関するものではありません、ありがとう)

0 投票する
0 に答える
354 参照

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

0 投票する
2 に答える
25173 参照

c++ - GCC Profile Guided Optimization (PGO) はどのような情報を収集し、どの最適化でそれを使用しますか?

有効にしたときに GCC が収集する情報-fprofile-generateと、収集した情報を実際に使用する最適化 (-fprofile-useフラグの設定時) はどれですか?

ここで引用が必要です。しばらく検索しましたが、文書化されたものは見つかりませんでした。

リンク時最適化 (LTO) に関する情報はプラスになります! =D

0 投票する
1 に答える
130 参照

visual-studio-2010 - VS2010 PGOのこれらの「期待に失敗しました」メッセージとは何ですか?また、それらを修正するにはどうすればよいですか?

(を使用して)PGO最適化手順を実行すると、VisualStudio2010LINK.EXE /LTCG:PGUリンカーは次のように文句を言います。

これらの「期待の失敗」の原因は何ですか?どのように対処すればよいですか?PGOはまだコードを最適化しているようですが、これらのメッセージが存在する場合の最適化の品質/完全性には少し疑いがあります。

0 投票する
2 に答える
422 参照

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 インストルメント化された実行可能ファイルは、最適化された通常の実行可能ファイルよりも高速にするにはどうすればよいですか?

ありがとう

0 投票する
2 に答える
1042 参照

visual-studio - Visual Studio: ある exe から別の dll へのプロファイル ガイド付き最適化の結果を使用しますか?

core.dllVisual 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

0 投票する
2 に答える
714 参照

linux - gcc の pgo からの最適化レポート

gcc の PGO (プロファイルに基づく最適化) が私のアプリケーションでうまく動作することがわかります (実行速度が最大 15% 向上)。「-fprofile-generate」を使用してから「-fprofile-use」を使用しています。しかし、何がどのように最適化されたかを説明するレポートを生成する方法はありますか? Intel コンパイラ (icc) がそれを実行できることは知っていますが、gcc はどうですか?