Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

dialek MLIR

Gambaran

Untuk memisahkan hardware dan software target yang berbeda, MLIR memiliki “dialek”, termasuk:

  • TensorFlow IR, yang mewakili semua hal mungkin dalam grafik TensorFlow.
  • XLA HLO IR, yang dirancang untuk mengambil keuntungan dari kemampuan kompilasi XLA ini (dengan output untuk, antara lain, TPUs).
  • Dialek affine eksperimental, yang berfokus pada representasi polyhedral dan optimasi.
  • LLVM IR, yang memiliki 1: pemetaan 1 antara itu dan representasi LLVM sendiri, memungkinkan MLIR untuk memancarkan GPU dan kode CPU melalui LLVM.
  • TensorFlow Lite, yang akan menerjemahkan untuk menjalankan kode pada platform mobile.

Setiap dialek terdiri dari satu set operasi yang didefinisikan yang memiliki invariants ditempatkan pada mereka, seperti: “Ini adalah operator biner, dan input dan output memiliki jenis yang sama.”

Menambah MLIR

MLIR telah ada tetap / built-in daftar operasi global dikenal (tidak ada “intrinsik”). Dialek dapat menentukan seluruhnya jenis kustom, yang adalah bagaimana MLIR dapat model hal-hal seperti jenis sistem LLVM IR (yang memiliki agregat kelas), abstraksi domain penting untuk akselerator ML-dioptimalkan seperti jenis terkuantisasi, dan bahkan Swift atau dentang jenis sistem (yang yang dibangun di sekitar Swift / dentang node deklarasi) di masa depan.

Jika Anda ingin menghubungkan compiler tingkat rendah baru, Anda akan menciptakan dialek baru dan lowerings antara dialek TensorFlow Grafik dan dialek Anda. Ini menghaluskan jalan untuk hardware dan compiler pembuat. Anda bahkan dapat menargetkan dialek pada tingkat yang berbeda dalam model yang sama; pengoptimalan-tingkat yang lebih tinggi akan menghormati bagian asing dari IR dan menunggu untuk tingkat yang lebih rendah untuk menanganinya.