pembelajaran mesin untuk optimasi kode dan kompiler?

8

Saya melihat ke dalam ML untuk menghasilkan kode yang lebih efisien (yaitu mengkompilasi waktu dan menjalankan heuristik waktu). Saya memiliki phd (compiler, hpc), tetapi sangat sedikit pengalaman ML.

Saya akan sangat menghargai referensi untuk pekerjaan yang ada.

Lebih penting lagi, teknik Pembelajaran Mesin mana yang harus saya jelajahi?

  • setiap sampel data adalah kode + uji coba + data kinerja
  • sejumlah besar sampel data, dengan label yang benar
  • sejumlah besar parameter untuk dimodifikasi
  • sampel apa pun dapat dijalankan kembali dengan parameter apa pun (dan dapatkan label yang benar)
  • sejumlah besar CPU untuk menjalankan dan menjalankan sampel kembali

Dan juga beberapa asumsi saya yang sangat mencurigakan ...

  • banyak kode sudah optimal secara lokal (optimisasi kompiler dasar)
  • beberapa parameter adalah "konsep tingkat tinggi" misalnya mengganti array dengan daftar tertaut. (jadi perubahan parameter kecil akan memiliki efek yang bervariasi)
  • peningkatan yang diinginkan dibatasi (peningkatan xK "cukup baik", K dikenal)
  • parameternya jarang yaitu kebanyakan nol (saya menduga sebagian besar kode pada dasarnya baik, dan ada sedikit perubahan yang menguntungkan)

Setiap petunjuk untuk mengatur saya di jalan saya akan dihargai

OA1
sumber
Kedengarannya seperti Anda meminta referensi ke setiap makalah dalam desain kompiler. Ada banyak.
Tsuyoshi Ito
1
Benar-benar tidak! Saya melihat heuristik yang sepenuhnya di luar desain kompiler. Heuristik ini merupakan ruang masalah yang sangat besar, dan tidak dapat dengan mudah dianalisis bahkan dalam runtime, karenanya ML.
OA1
1
Anda mungkin harus pergi ke metaoptimize.com. Pertanyaan ini di luar jangkauan di sini.
Suresh Venkat
6
Saya menyadari bahwa “ML” dalam pertanyaan itu tidak berarti apa yang saya pikir artinya .
Tsuyoshi Ito
@TsuyoshiIto Saya akan mengatakan bahwa teknik ini dapat mendarat ke Mesin Virtual, bukan kompiler itu sendiri
om-nom-nom

Jawaban:

3

Genetic Programming (GP) telah digunakan untuk memodifikasi kode sumber untuk peningkatan kinerja.

misalnya Peningkatan Program Evolusi

(Ini dekat dengan topik PhD saya, akan sangat tertarik untuk mendengar pendekatan Anda)

Brendan Cody-Kenny
sumber