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:
- Yeni işlemler için:
- İşlemi VhloOps.td'ye ekleyin.
- StablehloLegalizeToVhlo.cpp konumunda StableHLO → VHLO dönüşümü ekleyin
- VhloLegalizeToStablehlo.cpp konumunda VHLO → StableHLO dönüşümü ekleyin.
- Mevcut işlemlerin yeni sürümleri için:
- İşlemi VhloOps.td'ye ekleyin.
- MapStablehloToVhlo.h'de StableHLO ile VHLO eşlemesini güncelleyin.
- VhloToVersion.cpp dosyasında yeni ve eski işlem sürümleri arasında dönüşüm ekleyin
- Yeni türler veya özellikler için:
- Türü VhloTypes.td'ye ekleyin. veya VhloAttrs.td dosyasındaki özelliğe
- StablehloLegalizeToVhlo.cpp konumunda StableHLO → VHLO dönüşümü ekleyin
- VhloLegalizeToStablehlo.cpp konumunda VHLO → StableHLO dönüşümü ekleyin.
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