StableHLO 規格檢查清單

本文總結了查看規範變更的指南。目前,這些變更通常需要檢查多個來源的多項內容,因此本文件歸納這些項目以簡化審查作業:

  1. 檢查 status.md 的「規格」欄是否顯示「是」。
  2. 檢查區段標題是否與 ODS 中該運算的記憶法相符。
  3. 檢查「語意」部分是否與 XLA 的運算語意相符。
  4. 檢查「輸入」和「輸出」部分是否顯示:
    1. 列出與 ODS 相同的項目。
    2. 列出與 HloInstruction::CreateFromProto 相同的項目。
    3. 下單方式與 ODS 完全相同。
    4. 如果出現不相符的問題,請檢查是否有對應的票券。
  5. 檢查「限制」部分是否設定:
    1. 比對 XLA 的 shape_inference.cc
    2. 與 XLA 的 hlo_verifier.cc 相符。
    3. 比對 ODS。
    4. StablehloOps.cpp 相符。
    5. 如果出現不相符的問題,請檢查是否有對應的票券。請盡可能在規格中連結所有票券,而地點必須盡可能具體。舉例來說,如果票券與尚未實作的限制有關,請直接在該限制中連結支援單。
    6. 如果 ODS 和 StablehloOps.cpp 的對應部分符合規格,請檢查 status.md 中的「Verification」和「Type Inference」欄是否顯示為「yes」。
  6. 查看「示例」部分是否出現:
    1. 只有一個範例。(日後我們會連結至 StableHLO 解譯工具測試套件中的更多範例)。
    2. 在程式碼範例中執行 stablehlo-opt,即可使用有效的 MLIR 語法。
    3. 使用透過執行 stablehlo-opt -mlir-print-op-generic 取得的一般 MLIR 語法 (我們會依循規格中的通用語法,避免變更美化工具變更的規格)。
  7. 檢查運算 ODS 中的 description
    1. 包含規格的第一個句子。
    2. 然後連結至規格的對應章節。
    3. 然後,使用和規格相同的範例,但可透過執行 stablehlo-opt 取得的精美語法。
  8. 確認與實作驗證和類型推論限制相關的檔案,符合下列規範:
    1. 請遵循 StablehloOps.td 的指南 1
    2. 請遵循 TypeInference.cppStablehloOps.cpp 的指南 #2
    3. 請按照 #5ops_stablehlo.mlir 指南操作。
    4. 請按照 #6infer_stablehlo.mlir 操作。