Go言語が実行時のプロファイラ情報でコンパイルを最適化する「Profile-guided optimization」パブリックプレビュー

今回は「Go言語が実行時のプロファイラ情報でコンパイルを最適化する「Profile-guided optimization」パブリックプレビュー」についてご紹介します。

関連ワード (メモリ、利用、手法等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


Go言語の開発チームは2月1日にリリースしたGo 1.20で、実行時のプロファイラ情報を用いてコンパイルを最適化し、実行速度の改善を図る「Profile-guided optimization」機能のパブリックプレビューを開始しましたことを明らかにしました。

fig

Profile-guided optimizationを用いることで、現時点で2%から4%程度の性能向上が得られ、将来的にはさらに大きな性能向上を実現できるとしています。

Go 1.20 marks the launch of profile-guided optimization into public preview!

PGO is a compiler optimization technique that feeds information gathered at runtime back into the compiler for the next build of the application.

Details ⬇ https://t.co/aBJgDIAbqy

— Go (@golang) February 8, 2023

Profile-guided optimization(PGO)とは

Profile-guided optimizationとは、プログラムの実行時にどの関数が何回コールされたか、プロセッサやメモリをどのように使用しているかなど、プログラムの実行状況をプロファイル情報として取得し、その情報を基にコンパイルを最適化する手法です。Feedback Directed Optimizationなどとも呼ばれます。

具体的には、何度も呼ばれる関数をインライン展開することで関数呼び出しのオーバーヘッドをなくす、変数の使用頻度によってレジスタへの割り当てを変更する、ループを展開する、などの処理がコンパイル時に行われます。

コンパイルの最適化手法としては以前から存在しており、例えばRustにはすでにProfile-guided optimization機能がありますし、GoogleはChromeブラウザをProfile-guided optimizationによって15%程度高速化したことを2016年に明らかにしています。

Goランタイムのプロファイルをコンパイラに渡す

今回プレビューリリースされたGoのProfile-guided optimization機能も、Goランタイムで生成されたプロファイルをGoコンパイラに渡すことで、コンパイル時にプロファイル情報を基にした最適化が行われます。

ドキュメントによると、現時点で2%から4%程度の性能向上が得られ、将来的にはさらに大きな性能向上を実現できるとしていますが、まだプレビューリリースのため本番環境での利用には向かないともしています。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
代替タンパク質開発の豪v2Foodがアジアや欧州進出に向け約58億円調達
フードテック
2021-08-09 15:37
協和発酵バイオ、海外拠点の基幹システムをクラウドERPで刷新
IT関連
2022-04-02 11:44
富士通、川崎重工、SAPジャパン、Skillnoteが製造業のDX支援で協業–基盤サービスの提供計画
IT関連
2022-11-26 02:59
アマゾン、生成AIのAnthropicと戦略的提携–最大5900億円を投資へ
IT関連
2023-09-27 07:53
アップル、最新OS「macOS Sonoma」を発表–ウィジェットのカスタマイズ強化など
IT関連
2023-06-07 19:05
山口FG、住宅ローン審査にAI活用–与信コストの削減や審査時間の短縮など
IT関連
2022-02-12 08:30
NECソリューションイノベータ、RPAとAI-OCR分野の人材育成サービスを提供
IT関連
2021-07-08 23:30
ShopifyでストアによるNFTの直接販売が可能に
ブロックチェーン
2021-07-29 22:56
千葉県の新たな産業構想、市長時代とのTwitterの違い……熊谷知事インタビュー
IT関連
2021-05-11 03:32
「猫の手ならぬ車の手も借りたい」トミカ50台セット登場 “手がある”車がずらり
くらテク
2021-07-28 05:55
[速報]「AWS大阪リージョン」正式オープン。大阪ローカルリージョンを拡張し3つのアベイラビリティゾーンから構成、事前申し込みなど不要に
AWS
2021-03-03 23:54
グーグルとNVIDIA、機械学習のベンチマークテスト「MLPerf」でトップを分け合う
IT関連
2022-07-02 10:35
セレブラスのCEOに聞く、オープンソースでのGPTモデル公開の意義
IT関連
2023-04-06 03:50
IBM、「Watson Health」事業の売却を検討か
IT関連
2021-02-22 21:14