VHLO 檢查清單

如要瞭解 VHLO,請參閱 vhlo.md

提供的變更不相容

所有與相容性相關的變更都必須完成 RFC 程序。 包括新增、淘汰或重新命名地圖項目。RFC 結果見 您必須先完成下列步驟:

1. 在 Version.h 中發出版本號碼,並更新版本記錄

更新 VHLO 運算、屬性、類型或轉換之前, Version.h 中的次要版本號碼, 並更新 VhloDialect.td 中的版本記錄

任何新增的 VHLO 功能都會採用這個全新版本,例如: 互相衝擊 0.10.0 --> 0.11.0VhloOps.td 中的新運算 :

VHLO_Op<"abs_v2", "0.11.0", "current">

2. 新增必要的 VHLO 導入和轉換

整合新功能所需的確切程式碼將有所不同, 以下部分需要變更:

3. 新增 / 更新單元測試

不相容變更的推動者必須同時 功能排除單元測試,以及相容性單元測試。

相容性單元測試包含更新 stablehlo_legalize_to_vhlo.mlir 確保往返 StableHLO 的來回行程是最新版的 VHLO 您必須遵守額外的前瞻相容性測試,例如: 如果使用 Y = X - 1X 版本新增運算,請新增測試檔案,例如 不支援顯示運算的 vhlo_to_version_downgrade_invalid.0_Y_0.mlir 在第 X 版之前。如果新增 op 的新版本,請新增測試檔案,例如 vhlo_to_version_downgrade.0_Y_0.mlir:顯示可以降級運算

如果您的運算有預設屬性,請納入指出預設值的測試 正確的序列化及去序列化程序。

4. 新增版本化序列化測試

stablehlo_legalize_to_vhlo.mlir 中新增測試後,請複製版本測試 然後將新版本的檔案加入新版本的新檔案中 新的測試檔案此外,您還必須建立相關聯的 使用 stablehlo-translate 的位元碼檔案:

export TARGET_VERSION=1.X.0
export TARGET_FILENAME=${TARGET_VERSION//./_}
stablehlo-translate --serialize --target=$TARGET_VERSION --strip-debuginfo stablehlo/tests/vhlo/stablehlo_legalize_to_vhlo.$TARGET_FILENAME.mlir > stablehlo/tests/vhlo/stablehlo_legalize_to_vhlo.$TARGET_FILENAME.mlir.bc