Bu belgede, bir feed'i uygulama ve incelemeyle ilgili yardımcı olur. Kasıtlı olarak birkaç yardımcı işlem ekledik. ilerleme kaydetme fikriyle, doğrulayıcı ve tür çıkarımıyla ilgili öğeler bu alanlarda çeviri hizmeti alabilirsiniz.
İşlemi uygularken
- Açıkça yazılı bir test stratejisi sağlayın (PR açıklaması bölümünde) şunlara benzer: kullanmak için bu doğrulama ve tür çıkarımını incelerken referans olarak ve ilgili testleri içerir. İncelemeci, kapsamlı olduğundan emin olun.
- Danışma hlo_evaluator kullanarak yanıltıcı uygulama ayrıntılarını ve olası işlev boşluklarını belirleyebilirsiniz.
- Herhangi bir hata bulursanız ilgili yazılım bileşenleri için destek kaydı oluşturun yardımcı olabilir.
İşlemi uyguladıktan sonra
StablehloOps.td içinde:
- Firmanın arabuluculuğundaki
summary
değerinin standart biçime uyduğundan emin olun. (ilgili bilet) Cn
In
işlemi tanımlamak içinxyz_cn
veyaxyz_in
, opXyzOp
arasındaki bağlantıdan emin olun. İlgili içeriği oluşturmak için kullanılan Aşağıdaki örnekte, kısıtlama etiketlerinin yorum olarak nasıl ekleneceği gösterilmektedir mlirTraits
veTypeConstraints
ile birlikte.xyz_c4
değerinin atıfta bulunduğu notStableHLO_FooOp
sınıfında tanımlanan kısıtlamalar (ör.StableHLO_ShapedInterfaceOp
,StableHLO_UnaryElementwiseOp
,StableHLO_Op
vb.).def StableHLO_XyzOp: StableHLO_FooOp<"xyz", [Trait1, Trait2 /*xyz_c1, xyz_c2*/, InferTensorType /*xyz_c3*/]> { /*xyz_c4*/ ... let summary = "Xyz operation"; let arguments = (ins 1DTensorOf<[HLO_Float]>:$a, /*xyz_c5, xyz_i1*/ HLO_Tensor:$b, /*xyz_i2*/ .... ); );
- Firmanın arabuluculuğundaki
TypeInference.cpp içinde ve StablehloOps.cpp ekleyin:
- "Aşağıdaki özellikleri doğrulayın: "...") seçeneğini tıklayın.
Cn
In
spesifikasyonunu belirtmek için,XyzOp
işlemi içinxyz_cn
veyaxyz_in
biçiminde doğrulayıcıların ve şekil işlevlerinin hangi parçalarının hangi bölüme karşılık kısıtlamalara sahip olması gerekir.- Birden çok kısıtlama etiketi içeren bir yorumunuz olabilir veya
aynı kısıtlama etiketine sahip birden fazla yorum. Bu tümüyle
ve kısıtlamaların
nasıl uygulandığına bakılır. Birbirini izleyen kısıtlamalar varsa
bunları
xyz_cn...xyz_cm, xyz_in...xyz_jn
olarak daraltın. - Kısıtlamalar arasında uyuşmazlık olması durumunda ve spesifikasyondakilerle karşılaştırıldığında, bu tutarsızlığı yansıtan açık bir mesele.
- Birden çok kısıtlama etiketi içeren bir yorumunuz olabilir veya
aynı kısıtlama etiketine sahip birden fazla yorum. Bu tümüyle
ve kısıtlamaların
nasıl uygulandığına bakılır. Birbirini izleyen kısıtlamalar varsa
bunları
-
<op_mnemonic>.mlir
adlı bir dosya ekleyin.- Test yönergelerini uygulayarak testleri yazın.
-
- Yeni eklenen işlemin kapsadığı devre dışı bırakılmış testleri çalıştırın.
- Test geçilirse
RUN-DISABLED
değeriniRUN
biçimine dönüştürerek testlerin başarılı olmasını sağlayın. - Bir test, kesinlik uyuşmazlıkları dışında bir nedenden dolayı başarısız olursa test edilmesine yardımcı olur.
- Hassasiyet uyuşmazlıkları için testi
RUN-DISABLED(#1278)
ile etiketleyin (eğer (bitti değil).
ops_stablehlo.mlir dosyasında:
- Her biri için en az bir test (pozitif veya negatif) olduğundan emin olun doğrulayıcıdaki kısıtlama ve tür çıkarım yöntemleri; kısıtlamalar test edilmeyecektir. Bu testler çoğunlukla negatif olur, kısıtlamaların karşılanmadığını ya da pozitif olmadığını test ederek doğru olduğundan emin olun.
- Test edilen işlemle ilgili tüm testlerin yapıldığından emin olun birlikte.
- Test edilen işlemle ilgili tüm testlerin
başa
CHECK-LABEL
ışıklandırılan bir makro eklenir. - Biçimi kullanarak testlerin işlev adını seçin
Cn
,Im
, işlev testi kısıtlamaları içinxyz_cn_im_...
vb.XyzOp
. işlem için geçerlidir. Önerilen biçimin uyumlu olmadığı durumlarda, mevcut adı değiştirmeyin. - Yukarıdaki adım tamamlandıktan sonra, operasyonla ilgili tüm testleri sıralayın göre alfabetik olarak test ediliyor.
- ccov'a kadar test eklemeye devam edin operasyon için >=% 90'ın üzerinde kapsama sahiptir.
infer_stablehlo.mlir dosyasında:
- Şekil çıkarımı testleriyle ilgili tüm kısıtlamaların mevcut olduğundan emin olun ve yukarıda belirtilen adlandırma yönergelerini izleyebilirsiniz.
- Şekil çıkarım testlerini ops_stablehlo.mlir dosyasından taşıyın dosyasını bu dosyaya ekleyin.
spec.md içinde:
stablehlo/tests/interpret/<op_mnemonic>.mlir
için bir bağlantı ekleyin "Örnekler" bölümüne bölüm (ör. Diğer Örnekler).- Spesifikasyonda yalnızca 1 örnek bulunduğundan emin olun.
- Spesifikasyon örneğin test kurallarına uyduğundan emin olun.
- Spesifikasyon örneği testinin yorumlanabilir olduğundan emin olun.
- Spesifikasyon örneğinin arabuluculuktakiyle aynı olduğundan emin olun.
status.md içinde:
- "Çevirmen"i güncelleme sütununu
yes
öğesine ekleyin.
- "Çevirmen"i güncelleme sütununu