AIは、コンピューターチップがコードを実行する速度を予測します
- 新しい機械学習ツールは、特定のコンピューターチップが特定のコードを実行するのにかかる時間を予測します。
- Intel独自の予測モデルよりも正確です。
プロセッサが定常状態でアセンブリ命令のブロックを実行するために必要なクロックサイクル数を決定することは、パフォーマンスエンジニアとコンパイラ設計者の両方にとって重要です。
そのための分析モデルの開発は、特にタスクがエラーを起こしやすくなり、プロセッサ世代ごとに最初から実行する必要がある最新のプロセッサアーキテクチャでは、非常に複雑なタスクです。
現在、MITの研究者は、このプロセスを自動化する機械学習ツールを構築しました。これにより、静的な機械語アナライザーやコンパイラバックエンドで現在使用されている最先端の手書きツールよりも高速、簡単、正確になります。
彼らは、この新しい機械学習パイプラインについて3つの会議論文で説明しました。
1. Ithemal:ニューラルネットワークモデルは、ラベル付けされたデータの基本ブロック(計算命令のブロック)でトレーニングされます。次に、特定のマイクロプロセッサが未処理の基本ブロックを実行するのにかかる時間を予測します。
2. BHive:Ithemalを検証するために、研究者は、暗号化、コンパイラ、機械学習、グラフィックスなどのさまざまな分野からの基本ブロックのベンチマークスイートを作成しました。彼らは300,000を超えるブロックを収集し、それらをオープンソースのデータセットであるBHiveに配置しました。
テストの結果、Ithemalは、Intel自体が開発したパフォーマンスモデルよりも、Intelプロセッサがコードを実行する速度をより正確に予測できることがわかりました。
3. Vemal:研究者は、特定のコードをベクトルに変換して並列コンピューティングに訴えることができるVemalという名前のアルゴリズムを自動的に作成する新しいメソッドを構築しました。
Vemalは、LLVMコンパイラを含む産業用コンパイラで使用される手作りのベクトル化アルゴリズムよりも優れたパフォーマンスを発揮します。
チップのドキュメントの代わりにデータを使用する
Intelは、チップのアーキテクチャを説明するための詳細なドキュメントを提供しています。ただし、特定のエキスパート開発者だけが、これらのアーキテクチャでのコード実行をシミュレートするパフォーマンスモデルを作成します。また、これらのチップは独自仕様であるため、Intelはドキュメント内の特定の情報を省略しています。
研究者が行ったのは、ニューラルネットワークを使用して、チップが基本ブロック命令(特定のコマンドの実行、シャットダウン、再起動など)を実行するのにかかる平均サイクル数を記録したことです。
出典:MIT
ニューラルネットワークは、数百万のブロックを自動的にプロファイリングし、さまざまなプロセッサアーキテクチャがコードを実行する方法を徐々に学習します。簡単に言うと、研究者は人工知能モデルを使用して、チップのドキュメントに焦点を当てずにデータを分析しました。
Ithemalは、目に見えない基本ブロックを入力として受け取り、特定のプロセッサがそのコードを実行するのにかかる時間を示唆する単一の数値を生成します。
2番目の論文では、研究者はIthemalが従来の手作りモデルよりも優れたパフォーマンスを発揮することを実証しました。 Intelの予測モデルのエラー率は20%でしたが、Ithemalのエラー率はさまざまなドメインのさまざまな基本ブロックで10%でした。
モデルは、新しいアーキテクチャで簡単にトレーニングできます。そのチップからより多くのデータを収集し、プロファイラーで実行し、その情報を利用してIthemalをトレーニングするだけです。それでおしまい;これで、モデルはパフォーマンスを推定する準備が整いました。 Googleの新しいTensorProcessing Unitを含む、あらゆるプロセッサアーキテクチャのパフォーマンス速度を学習できます。
読む:Facebookは「SapFix」を構築します:コードをデバッグするAIツール
ただし、機械学習の多くはブラックボックスであるため、研究者はこのモデルがどのように予測を行うかをまだ知りません。次の研究では、これらのモデルを解釈できる手法を探求しようとします。
産業技術