コードとコンパイラの最適化のための機械学習?


8

より効率的なコード(つまり、コンパイル時と実行時のヒューリスティック)を生成するためにMLを調査しています。私はphd(コンパイラ、hpc)を持っていますが、MLの経験はほとんどありません。

既存の作品への参照をいただければ幸いです。

さらに重要なのは、どの機械学習技術を探求するべきか?

  • 各データサンプルは、コード+テスト実行+パフォーマンスデータです
  • 正しいラベル付けされた多数のデータサンプル
  • 変更する多数のパラメーター
  • 任意のサンプルを任意のパラメーターで再実行できます(および正しいラベルを取得します)
  • サンプルを実行および再実行するための大量のCPU

そして、私の非常に疑わしい仮定のいくつか...

  • コードの多くはすでにローカルに最適化されています(基本的なコンパイラー最適化)
  • 一部のパラメータは「高レベルの概念」です。たとえば、配列をリンクリストに置き換えます。(したがって、小さなパラメーターの変更はさまざまな効果をもたらします)
  • 望ましい改善には限界がある(xKの改善は「十分に良い」であり、Kはよく知られている)
  • パラメータはまばらで、つまりほとんどゼロです(ほとんどのコードは基本的に良好であり、有益な変更は比較的少ないと思われます)。

私に私の道を設定するための任意のポインタはいただければ幸いです


コンパイラーデザインの論文への参照を求めているようです。沢山あります。
伊藤剛

1
絶対違う!コンパイラーの設計から完全に外れたヒューリスティックを調べています。これらのヒューリスティックは非常に大きな問題空間を構成し、ランタイム、したがってMLでも簡単に分析することはできません。
OA1 2012年

1
おそらくmetaoptimize.comにアクセスする必要があります。この質問はここでは範囲外です。
Suresh Venkat

6
質問の「ML」は、私がそれを意味すると思っていたものを意味するものではないことに気付きました。
伊藤剛

@TsuyoshiItoこれらの技術は、コンパイラ自体ではなく仮想マシンに導入できると思います
om-nom-nom

回答:


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.