MLIR

Ringkasan

MLIR, atau Multi-Level Intermediate Representation, adalah format representasi dan pustaka utilitas kompiler yang berada di antara representasi model dan kompiler/eksekutor tingkat rendah yang menghasilkan kode khusus perangkat keras.

MLIR, pada intinya, adalah infrastruktur fleksibel untuk kompiler pengoptimalan modern. Artinya, ini terdiri dari spesifikasi untuk representasi perantara (IR) dan perangkat kode untuk melakukan transformasi pada representasi tersebut. (Dalam istilah kompiler, saat Anda berpindah dari representasi tingkat tinggi ke representasi tingkat lebih rendah, transformasi ini dapat disebut “penurunan”)

MLIR sangat dipengaruhi oleh LLVM dan tanpa malu-malu menggunakan kembali banyak ide hebat darinya. Ini memiliki sistem tipe yang fleksibel, dan memungkinkan representasi, analisis, dan transformasi grafik yang menggabungkan beberapa tingkat abstraksi dalam unit kompilasi yang sama. Abstraksi ini mencakup operasi TensorFlow, wilayah loop polihedral bersarang, dan bahkan instruksi LLVM serta operasi dan jenis perangkat keras tetap.

Kami berharap MLIR dapat diminati banyak kalangan, antara lain:

  • Peneliti dan pelaksana kompiler yang ingin mengoptimalkan performa dan konsumsi memori model pembelajaran mesin
  • Pembuat perangkat keras mencari cara untuk menghubungkan perangkat keras mereka ke TensorFlow, seperti TPU, perangkat keras neural portabel di ponsel, dan ASIC khusus lainnya
  • Orang yang menulis pengikatan bahasa yang ingin memanfaatkan pengoptimalan kompiler dan akselerasi perangkat keras.

Ekosistem TensorFlow berisi sejumlah compiler dan pengoptimal yang beroperasi di berbagai tingkat tumpukan perangkat lunak dan perangkat keras. Kami berharap penerapan MLIR secara bertahap dapat menyederhanakan setiap aspek dari tumpukan ini.

Diagram ikhtisar MLIR