グーグルは、Androidスマートフォンの動作速度を向上させ、バッテリー寿命を改善するための技術を導入すると発表しました。これは、Android LLVMツールチェーンチームが今週発表したもので、Androidカーネルに「AutoFDO」自動フィードバック指向最適化を導入するということです。
「AutoFDO」は、スマートフォンが「数千の小さな決定」を行う際のCPU使用量を削減することを目指しています。この技術により、コンパイラが「最も一般的な」実行パスに沿って最適化を行うため、負荷が軽減されます。これにより、他のタスクにより多くの処理能力を割り当てることができ、消費電力を抑えることでバッテリー寿命も改善されるとしています。
グーグルによれば、通常のソフトウェアビルドでは、コンパイラが関数をインライン化するかどうかや条件分岐のどちらを選ぶかなど、静的なコードヒントに基づいて多くの決定を行います。しかし、これらのヒューリスティックは、実際の使用状況でのコード実行を正確に予測するわけではないということです。
「AutoFDO」は、実際の使用状況に基づく実行パターンを利用してコンパイラをガイドします。これらのパターンは、実際の使用中にコードが取る最も一般的な命令実行パスを表しており、CPUの分岐履歴を記録することで収集されます。これらのデータは、代表的なワークロードを使用してラボ環境で合成され、トップ100の人気アプリを実行するなどして収集されます。このデータを用いて、コードの「ホット」(頻繁に使用される)部分と「コールド」部分を特定し、これらのプロファイルでカーネルを再構築する際に、コンパイラがより賢明な最適化決定を行えるようになります。
初期のテストでは、ブート時間が2.1%短縮され、アプリの「コールド」起動時間(アプリが完全に閉じられていた場合)が4.3%短縮されるなど、実際の改善が見られたとしています。これらのガイドパターンは、スマートフォンで最も人気のある100のアプリを使用して構築され、実際の使用をシミュレートする努力がなされています。
また、Androidのカーネルにおける「AutoFDO」は、「デフォルトで保守的な」戦略を採用し、特定のプロセスがガイドパターンから外れた場合には従来の方法に頼る方針です。
これらの変更は、最新のAndroidカーネルバージョンであるandroid16-6.12およびandroid15-6.6、さらに次のandroid17-6.18リリースに導入される予定です。最終的には、「よりスムーズなインターフェース、迅速なアプリ切り替え、延長されたバッテリー寿命、全体的により応答性の高いデバイス」が実現されるとしています。
