VHLO Kontrol Listesi

VHLO hakkında bilgi edinmek için vhlo.md sayfasına göz atın.

Uyumsuz Değişikliklere Katkıda Bulunma

Uyumluluk sonuçları olan tüm değişiklikler RFC sürecinden geçmelidir. Bu, bir özelliği eklemeyi, kullanımdan kaldırmayı veya yeniden adlandırmayı içerir. RFC aşağıdaki adımların tamamlanması gerekir:

1. Version.h'de Sürüm Numarasını Kopyalayın ve Sürüm Günlüğünü Güncelleyin

VHLO işlemlerini, özelliklerini, türlerini veya dönüşümlerini güncellemeden önce, Version.h sürümündeki alt sürüm numarası, ve VhloDialect.td adresindeki sürüm günlüğünü güncelleyin.

Eklenen yeni VHLO özellikleri bu artırılmış sürümü kullanır. Örneğin, VhloOps.td'da yeni bir operasyon olan 0.10.0 --> 0.11.0 ile ilgili sorun yok şunları kullanır:

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

2. Gerekli VHLO uygulamasını ve dönüşümlerini ekleyin

Yeni bir özelliği entegre etmek için gereken tam kod değişiklik gösterir ancak çoğu zaman şu bölümün değiştirilmesi gerekecek:

3. Birim Testleri Ekle / Güncelle

Uyumsuz bir değişime katkıda bulunan, hem olumlu hem de olumsuz özelliğin negatif birim testleri ve uyumluluk birimi testleri.

Uyumluluk birimi testi stablehlo_legalize_to_vhlo.mlir dosyasının güncellenmesini içerir. Böylece StableHLO'nun, VHLO'nun en son sürümüyle StableHLO'daki gidiş dönüşlerinde de test etmesini öneririz. Örneğin, X sürümüne Y = X - 1 ile yeni bir işlem ekleyecekseniz şunun gibi bir test dosyası ekleyin: İşlemin desteklenmediğini gösteren vhlo_to_version_downgrade_invalid.0_Y_0.mlir X sürümünden önce. Bir operasyon'un yeni bir sürümünü ekliyorsanız şunun gibi bir test dosyası ekleyin: Operatörün eski sürüme geçirilebileceğini gösteren vhlo_to_version_downgrade.0_Y_0.mlir bahsettik.

Operatörünüzün varsayılan özellikleri varsa varsayılan değerlerin geçerli olduğunu gösteren testler ekleyin. ve seri durumdan çıkarılır.

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

Testleri stablehlo_legalize_to_vhlo.mlir ürününe ekledikten sonra sürümü olan testi kopyalayın dosyasını, yeni sürümdeki yeni bir dosyaya ekleyin ve yeni testleri de uygular. Ayrıca, birden fazla kullanıcı için bayt kodu dosyası olarak stablehlo-translate kullanan:

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