スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

無意味だとしても私はPGOビルドをする

PGOビルドとは

まあざっというとif文の条件分岐予測とか関数のinline展開を適切にするとか関数の配置を最適化するとかして気持ち実行速度を上げる方法です。で、大雑把な手順は

  1. ふつーにビルド(若干コンパイルオプションをいじる)
  2. 空のプロファイルを作る
  3. テスト実行。あんまりたくさんはやらない
  4. プロファイルを元にリビルド

なかんじ。で、Visual Studioでのやり方を調べたんだけど、MSDNの解説がさっぱりわからない。
ガイド付き最適化のプロファイル | MSDN
https://msdn.microsoft.com/ja-jp/library/e7k32f4k.aspx
チュートリアル : Profile-Guided Optimizations の使用 | MSDN
https://msdn.microsoft.com/ja-jp/library/xct6db7f%28v=vs.90%29.aspx
そこで調べていたら昔わけわかめで投げ出したrigayaさんの解説に行き着いた。

rigayaの日記兼メモ帳 x265 ビルド ~ Visual Studio PGOビルド
http://rigaya34589.blog135.fc2.com/blog-entry-540.html

抜粋しつつMSDNみつつで結論がわかったので実際の手順を書いてみる。

手順 on Visual Studio 2015 RC Community

  1. Visual Studio上でフツーにReleaseビルドする。/GLコマンドオプションが必要だけど、Win32コンソールアプリケーションを選んでプロジェクト作ってればデフォでついてるっぽい。
  2. 「ツール」->「Visual Studio コマンドプロンプト」
  3. cd [.slnファイルがあるフォルダーのフルパス]
    MSBuild /p:Configuration=Release;WholeProgramOptimization=PGInstrument [ソリューション名.sln]
  4. テスト実行する。
  5. MSBuild /p:Configuration=Release;WholeProgramOptimization=PGOptimize [ソリューション名.sln]

以上!簡単でいいね。

効果の程は?

もともとコンパイラーが優秀だからそこまで速くなるわけではない。
std::threadを使いつつ調和数を求める | CodeGarage
http://codegarage.edisonthk.com/_p/snippet/245
で試したら普通のReleaseビルドが76秒に対しPGOビルドは70.964秒。うん微妙。
まあでもほとんど手間がかからず少しでも高速化できるなら文句はないよね。やって損はない。なんてrigayaさんとおなじありきたりな結論が出たところでこの記事を終えようと思います。

スポンサーサイト

コメントの投稿

非公開コメント

検索フォーム
デジタル・コルクマ3
コルクマワールド
東京 での時間:
更新履歴


総記事数:
Calendar 1.1
<
>
- - - - - - -
- - - - 1 23
4 5 6 7 8 910
11 12 13 14 15 1617
18 19 20 21 22 2324
25 26 27 28 29 30 -

全記事

Designed by 石津 花

最新記事
カテゴリ
最新コメント
最新トラックバック
月別アーカイブ
リンク
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
プロフィール

yumetodo

Author:yumetodo
FC2ブログへようこそ!

Powered By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。