Checklist Spesifikasi StableHLO

Dalam dokumen ini, kami merangkum panduan untuk meninjau perubahan pada spesifikasi. Saat ini, perubahan tersebut biasanya memerlukan pemeriksaan beberapa hal di beberapa sumber, sehingga dokumen ini merangkum semuanya untuk menyederhanakan peninjauan:

  1. Pastikan kolom "Specification" di status.md bertuliskan "yes".
  2. Periksa apakah judul bagian cocok dengan mnemonik operasi di ODS.
  3. Periksa apakah bagian "Semantik" cocok dengan Semantik Operasi XLA.
  4. Periksa apakah bagian "Inputs" dan "Outputs":
    1. Cantumkan item yang sama dengan ODS.
    2. Cantumkan item yang sama seperti HloHintion::CreateFromProto.
    3. Diurutkan persis seperti ODS.
    4. Jika ada ketidakcocokan, periksa apakah ada tiket yang sesuai.
  5. Periksa apakah bagian "Batasan":
    1. Cocok dengan shape_inference.cc XLA.
    2. Cocok dengan hlo_verifier.cc XLA.
    3. Sesuai dengan ODS.
    4. Cocok dengan StablehloOps.cpp.
    5. Jika ada ketidakcocokan, periksa apakah ada tiket yang sesuai. Tautkan semua tiket tersebut dalam spesifikasi, di lokasi yang sespesifik mungkin (misalnya, jika tiket berkaitan dengan batasan yang belum diterapkan, tautkan tiket tepat di batasan tersebut).
    6. Jika bagian ODS dan StablehloOps.cpp yang sesuai cocok dengan spesifikasi, pastikan kolom "Verifikasi" dan "Inferensi Jenis" di status.md menyatakan "yes".
  6. Periksa apakah bagian "Contoh":
    1. Hanya punya satu contoh. (Di masa mendatang, kami akan menautkan ke contoh lainnya dari rangkaian pengujian penafsir StableHLO).
    2. Menggunakan sintaksis MLIR yang valid dengan menjalankan stablehlo-opt pada contoh kode.
    3. Menggunakan sintaksis MLIR generik yang dapat diperoleh dengan menjalankan stablehlo-opt -mlir-print-op-generic (kami tetap menggunakan sintaksis umum dalam spesifikasi agar tidak perlu mengubah spesifikasi pada perubahan cantikprinter).
  7. Pastikan description di ODS pengoperasian:
    1. Mencakup kalimat pertama spesifikasi.
    2. Kemudian, tautkan ke bagian spesifikasi yang sesuai.
    3. Kemudian menggunakan contoh yang sama dengan spesifikasi, tetapi melalui sintaksis cantik yang dapat diperoleh dengan menjalankan stablehlo-opt.
  8. Pastikan file yang terkait dengan penerapan verifikasi dan batasan inferensi jenis mengikuti panduan seperti yang disebutkan di bawah ini:
    1. Ikuti panduan #1 untuk StablehloOps.td.
    2. Ikuti panduan #2 untuk TypeInference.cpp dan StablehloOps.cpp.
    3. Ikuti panduan #5 untuk ops_stablehlo.mlir.
    4. Ikuti panduan #6 untuk infer_stablehlo.mlir.