MIT の研究者たちは、特定のアプリケーションのコードを実行する際にプロセッサがどのように動作するかを予測するソフトウェア ベースのツールを考案しました。
過去 7 か月間に発表された 3 つの論文では、10 人のコンピュータ サイエンティストが、定常状態でループされたときに命令シーケンスを実行するために必要なプロセッサ クロック サイクル数を予測するツールである Ithemal (Instruction THroughput Estimator using MAChine Learning) について説明し、それをサポートするベンチマークとアルゴリズムも紹介しています。
MIT のコンピューター科学者である Saman Amarasinghe、Eric Atkinson、Ajay Brahmakshatriya、Michael Carbin、Yishen Chen、Charith Mendis、Yewen Pu、Alex Renda、Ondˇrej Sykora、Cambridge Yang によると、コンパイラー設計者やパフォーマンス エンジニアにとってスループット統計は重要ですが、オンデマンドでそのような測定を行うことは現実的ではありません。
そのため、ほとんどのシステムは予測のために分析モデルに依存しています。LLVMは、スループット推定のためのモデルを提示できるllvm-mcaというコマンドラインツールを提供しており、Intelは、自社のプロセッサに関する社内知識を活用するIACA(Intel Architecture Code Analyzer)というクローズドソースのマシンコードアナライザーを提供しています。
この研究の共著者であり、MITの助教授兼AI研究者でもあるマイケル・カービン氏は、パフォーマンスモデルの設計は一種の黒魔術のようなもので、インテルがプロセッサのドキュメントから特定の独自の詳細を省略しているためにさらに困難になっていると、月曜日にMITニュースサービスに語った。
6月に国際機械学習会議で発表されたIthemalの論文[PDF]では、これらの手作業で作成されたモデルは、基本ブロック(分岐やジャンプのない命令列)のスループットを測定するよりも桁違いに高速になる傾向があると説明されています。しかし、これらのモデルの構築は面倒な手作業であり、特にプロセッサの詳細が完全に公開されていない場合は、エラーが発生しやすくなります。
Ithemalはニューラルネットワークを用いて、ラベル付けされたデータセットを用いて予測を学習します。予測モデルの作成には、研究者らが「階層型マルチスケール再帰型ニューラルネットワーク」と呼ぶ手法が用いられています。
「Ithemalの学習モデルは分析モデルよりも大幅に精度が高く、すべてのベンチマークで平均絶対パーセント誤差を50パーセント以上削減しながらも、推定速度は速いことを示している」と論文は説明している。
AWS CodeGuru の探索: 新しい自動コードレビューにはスマートな機能が搭載されているが、Java のみ
続きを読む
11月に開催されたIEEE国際ワークロード特性評価シンポジウムで発表された2つ目の論文「BHive:x86-64基本ブロック性能モデルの検証のためのベンチマークスイートおよび測定フレームワーク」では、Ithemalと競合モデルであるIACAm llvm-mca、OSACA(オープンソースアーキテクチャコードアナライザ)を評価するためのBHiveベンチマークについて解説されています。この論文では、ベクトル化された基本ブロックを除き、Ithemalが他のモデルよりも優れた性能を発揮することが示されました。
そして 12 月の NeurIPS カンファレンスでは、研究者らは「模倣学習によるコンパイラの自動ベクトル化」と題した 3 番目の論文を発表しました。この論文では、LLVM の SLP ベクトル化器よりも優れた方法でコンパイラの最適化を自動的に生成する方法が説明されています。
学者たちは、彼らの研究がパフォーマンス分析の文脈における機械学習の価値を示していると主張している。
「Ithemal は、将来のコンパイルおよびパフォーマンス エンジニアリング ツールをデータ駆動型のアプローチで拡張することで、開発者の労力を最小限に抑えながらパフォーマンスと移植性を向上させることができることを示しています」と論文は結論付けています。®