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
気象庁、線状降水帯予測スーパーコンピューターの構築を完了
IT関連
2023-03-01 05:47
MSが永続ライセンス版次期「Office」発表、本音はクラウド対応Microsoft 365に乗り換えて欲しい
ソフトウェア
2021-02-21 03:53
人の動きや所在を体温で検知するButlrが介護など新市場の開拓を目指す
ハードウェア
2021-07-18 22:57
ヴイエムウェア、CEOにCOOのラグー・ラグラム氏指名–ゲルシンガー氏後任
IT関連
2021-05-13 20:38
ソフトウェア開発の新たな変化–さらに多様なスキルを求められる開発者
IT関連
2022-04-07 16:49
日経平均上昇–米中景気好調と1ドル110円台の円安も追い風
IT関連
2021-04-05 09:06
エイピア、AI搭載の次世代CDP「AIRIS」を発表
IT関連
2022-12-16 05:42
そごう・西武とRidgelinez、バーコードなどに依存しない単品在庫管理のデジタル化へ
IT関連
2023-08-09 01:06
GSユアサ、アタックサーフェス管理でセキュリティリスクを可視化
IT関連
2024-06-19 01:43
GitHub、「OpenAI o1」を「GitHub Copilot」で試用可能に
IT関連
2024-09-21 20:44
富士ソフト、蔦屋書店のシステムをAWS上でリアーキテクト
IT関連
2021-01-15 03:49
スパコン「富岳」で大規模言語モデルの分散並列学習手法を研究開発
IT関連
2023-05-24 14:31
メタのVRプラットフォームHorizon Worlds、2021年12月正式公開から月間ユーザー数が10倍の30万人に
IT関連
2022-02-23 07:31
日本企業も“SASE/ゼロトラスト”という方向に行かざるを得ない–クラウドフレア
IT関連
2021-06-18 02:09