VHLO Kontrol Listesi

VHLO hakkında bilgi için vhlo.md sayfasına bakın.

Uyumlu Olmayan Değişiklikler Katkıda Bulunma

Uyumluluk sonuçları olan tüm değişiklikler RFC sürecinden geçmelidir. Özellik ekleme, desteği sonlandırma veya yeniden adlandırma işlemleri de bu kapsamdadır. RFC onaylandıktan sonra aşağıdaki adımlar tamamlanmalıdır:

1. Version.h dosyasında sürüm numarasını artırma ve sürüm günlüğünü güncelleme

VHLO işlemlerini, özelliklerini, türlerini veya dönüşümlerini güncellemeden önce Version.h dosyasında küçük sürüm numarasını artırın ve VhloDialect.td dosyasında sürüm günlüğünü güncelleyin.

Eklenen yeni VHLO özellikleri bu yükseltilmiş sürümü kullanır. Örneğin, 0.10.0 --> 0.11.0 yükseltildikten sonra VhloOps.td'deki yeni bir işlem şunu kullanır:

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

2. Gerekli VHLO Uygulamasını ve Dönüşümleri Ekleyin

Yeni bir özelliği entegre etmek için gereken tam kod değişiklik gösterse de çoğu durumda aşağıdakilerin değiştirilmesi gerekir:

3. Birim Testleri Ekleme/Güncelleme

Uyumlu olmayan bir değişikliğin katkıda bulunanı, özelliğin hem olumlu hem de olumsuz birim testlerinin yanı sıra uyumluluk birim testlerinden sorumludur.

Uyumluluk birim testi, StableHLO'nun VHLO'nun en son sürümüyle gidip gelmesini sağlamak için stablehlo_legalize_to_vhlo.mlir dosyasını güncellemeyi ve gerekli olan ek ileri veya geri uyumluluk testlerini yapmayı içerir. Örneğin, Y = X - 1 ile X sürümünde yeni bir işlem ekleyecekseniz vhlo_to_version_downgrade_invalid.0_Y_0.mlir gibi bir test dosyası ekleyerek işlemin X sürümünden önce desteklenmediğini gösterin. Bir işlemin yeni sürümünü ekleyecekseniz işlemin başarılı bir şekilde sürüm düşürülebileceğini gösteren vhlo_to_version_downgrade.0_Y_0.mlir gibi bir test dosyası ekleyin.

İşleminizde varsayılan özellikler varsa varsayılanların doğru şekilde serileştirildiğini ve seri dışına çıkarıldığını gösteren testler ekleyin.

4. Sürümlü Serileştirme Testi Ekle

stablehlo_legalize_to_vhlo.mlir'e test ekledikten sonra, en büyük sürüme sahip sürümlü test dosyasını yeni sürümde yeni bir dosyaya kopyalayın ve yeni testleri de bu dosyaya ekleyin. Ayrıca stablehlo-translate kullanarak ilişkili bir bytecode dosyası oluşturmanız gerekir:

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