Roadmap StableHLO

Pada saat penulisan, StableHLO siap menggantikan MHLO/HLO sebagai antarmuka compiler. Aplikasi ini dapat diproduksi oleh TensorFlow, JAX, dan PyTorch, dan dapat digunakan oleh XLA dan IREE, serta memiliki semua fitur publik yang disediakan oleh MHLO/HLO serta fungsi tambahan.

Dokumen ini menjelaskan langkah-langkah selanjutnya untuk project StableHLO, mengkategorikan pekerjaan yang sedang berlangsung yang tercermin dalam issue tracker, dan mengatur pekerjaan ini menjadi hasil yang direncanakan.

Pencapaian

Pada tahun 2023, kami merencanakan dua pencapaian besar: 1) StableHLO v0.9 yang akan memberikan versi awal opset dan jaminan kompatibilitas awal, 2) StableHLO v1.0 yang akan mengimplementasikan peningkatan prioritas tinggi dan mulai menyediakan jaminan kompatibilitas penuh.

StableHLO v0.9 akan mencerminkan MHLO/HLO, yang ditambah dengan spesifikasi untuk operasi berbentuk statis dan jaminan kompatibilitas awal. Sesuai dengan RFC kompatibilitas, rilis ini akan memberikan kompatibilitas maju dan mundur selama 1 bulan. Jaminan sederhana ini akan memungkinkan Anda memperoleh pengalaman terkait evolusi dialek dan memerlukan waktu untuk pembersihan sebelum jaminan penuh diberlakukan. Kami berencana untuk merilis StableHLO v0.9 pada Kuartal 1 tahun 2023.

StableHLO v1.0 akan menerapkan peningkatan prioritas tinggi, termasuk membersihkan kontrak frontend (agar program StableHLO hanya menyertakan operasi dari dialek StableHLO, bukan campuran dialek dan atribut yang tidak terdaftar saat ini) dan menyediakan implementasi referensi. Kami berencana untuk merilis StableHLO v1.0 pada Semester 2 2023.

Alur kerja

Untuk mengatur pengembangan menuju tonggak pencapaian yang disebutkan di atas, kami telah mengategorikan tiket di issue tracker ke dalam beberapa alur kerja dan mengaitkan alur kerja ini ke milestone. Tiket dalam jumlah terbatas (kurang dari 10%) tidak ditetapkan ke alur kerja tertentu dan bukan bagian dari pencapaian tertentu.

(P0) Alur kerja Implementasi Kompatibilitas dikhususkan untuk mengimplementasikan RFC kompatibilitas beserta rangkaian pengujian kompatibilitas. Sebagian besar pekerjaan ini diharapkan selesai dalam StableHLO v0.9, dan sisanya akan dilakukan di StableHLO v1.0.

(P0) Alur kerja Frontend Contract terdiri dari penerapan 100% fitur yang digunakan oleh frontend SableHLO, tetapi belum ada dalam spesifikasi StableHLO. Tujuan dari alur kerja ini adalah untuk memastikan bahwa program StableHLO hanya menyertakan operasi dari dialek StableHLO, bukan campuran dialek dan atribut yang tidak terdaftar saat ini. Kami berencana menyelesaikan semua atau hampir semua tugas dalam workstream ini di StableHLO v1.0.

(P0) Workstream Reference Implementation mengatur pekerjaan untuk menerapkan penerjemah untuk 100% operasi StableHLO seperti yang ditetapkan dalam spesifikasi StableHLO. Kami berencana menyelesaikan semua atau hampir semua tugas dalam alur kerja ini di StableHLO v1.0.

(P0) Alur kerja Dokumentasi didedikasikan untuk menyediakan semua informasi yang mungkin diperlukan oleh produsen atau konsumen StableHLO. Spesifikasi StableHLO adalah hasil utama, serta referensi untuk format serialisasi StableHLO API dan StableHLO. Bagian penting dari alur kerja akan dikirimkan di StableHLO v1.0, dengan item berprioritas lebih rendah yang ditangani secara bertahap.

(P1) Alur kerja Conformance Suite terdiri dari pengiriman rangkaian pengujian yang membandingkan implementasi referensi dengan penerapan yang disediakan oleh backend StableHLO. Pengujian untuk implementasi referensi akan memberikan rangkaian kesesuaian, sehingga alur kerja ini tidak memiliki prioritas P0. Namun, menambahkan lebih lanjut kasus ini dengan kasus pengujian menarik tambahan kemungkinan akan menjadi area yang berguna untuk pekerjaan mendatang.

(P1) Alur kerja Kepatuhan Spesifikasi memastikan bahwa 100% operasi StableHLO diterapkan dalam dialek SableHLO seperti yang ditetapkan dalam spesifikasi StableHLO. Dialek StableHLO sudah cukup patuh, sehingga alur kerja ini tidak memiliki prioritas P0, tetapi banyak item kecil masih ada (terutama dalam kasus sudut penerapan pemverifikasi) dan akan ditangani secara bergulir.

(P1) Alur kerja Fitur Baru mengakhiri roadmap StableHLO dan terdiri dari kumpulan fungsi baru ragtag untuk opset StableHLO (bukan dialek StableHLO atau binding StableHLO - yang akan menjadi alur kerja lainnya). Beberapa fitur baru ini direncanakan untuk dikirim di StableHLO v1.0, tetapi sebagian besar saat ini merupakan item dengan prioritas lebih rendah yang bukan bagian dari milestone tertentu.

(P1) Workstream Public API didedikasikan untuk mengirim binding C/C++/Python untuk dialek StableHLO. Binding C++/Python yang ada sudah cukup wajar, sehingga workstream ini tidak memiliki prioritas P0. Namun, masih ada banyak pekerjaan yang harus dilakukan, terutama untuk meningkatkan stabilitas binding ini - yang saat ini tidak dicakup oleh RFC kompatibilitas, tetapi mungkin akan menjadi area yang berguna untuk pekerjaan di masa mendatang.