StableHLO Çevirmen Kontrol Listesi

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

  1. 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.
  2. Danışma hlo_evaluator kullanarak yanıltıcı uygulama ayrıntılarını ve olası işlev boşluklarını belirleyebilirsiniz.
  3. Herhangi bir hata bulursanız ilgili yazılım bileşenleri için destek kaydı oluşturun yardımcı olabilir.

İşlemi uyguladıktan sonra

  1. StablehloOps.td içinde:

    1. Firmanın arabuluculuğundaki summary değerinin standart biçime uyduğundan emin olun. (ilgili bilet)
    2. CnIn işlemi tanımlamak için xyz_cn veya xyz_in, op XyzOp 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 mlir Traits ve TypeConstraints ile birlikte. xyz_c4 değerinin atıfta bulunduğu not StableHLO_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*/
            ....
         );
      );
      
  2. TypeInference.cpp içinde ve StablehloOps.cpp ekleyin:

    1. "Aşağıdaki özellikleri doğrulayın: "...") seçeneğini tıklayın.
    2. CnIn spesifikasyonunu belirtmek için, XyzOp işlemi için xyz_cn veya xyz_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.
      1. 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.
      2. 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.
  3. Yorumcu testlerinde:

    1. <op_mnemonic>.mlir adlı bir dosya ekleyin.
    2. Test yönergelerini uygulayarak testleri yazın.
  4. testdata dizininde:

    1. Yeni eklenen işlemin kapsadığı devre dışı bırakılmış testleri çalıştırın.
    2. Test geçilirse RUN-DISABLED değerini RUN biçimine dönüştürerek testlerin başarılı olmasını sağlayın.
    3. Bir test, kesinlik uyuşmazlıkları dışında bir nedenden dolayı başarısız olursa test edilmesine yardımcı olur.
    4. Hassasiyet uyuşmazlıkları için testi RUN-DISABLED(#1278) ile etiketleyin (eğer (bitti değil).
  5. ops_stablehlo.mlir dosyasında:

    1. 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.
    2. Test edilen işlemle ilgili tüm testlerin yapıldığından emin olun birlikte.
    3. Test edilen işlemle ilgili tüm testlerin başa CHECK-LABEL ışıklandırılan bir makro eklenir.
    4. Biçimi kullanarak testlerin işlev adını seçin Cn, Im, işlev testi kısıtlamaları için xyz_cn_im_... vb. XyzOp. işlem için geçerlidir. Önerilen biçimin uyumlu olmadığı durumlarda, mevcut adı değiştirmeyin.
    5. Yukarıdaki adım tamamlandıktan sonra, operasyonla ilgili tüm testleri sıralayın göre alfabetik olarak test ediliyor.
    6. ccov'a kadar test eklemeye devam edin operasyon için >=% 90'ın üzerinde kapsama sahiptir.
  6. infer_stablehlo.mlir dosyasında:

    1. Ş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.
    2. Şekil çıkarım testlerini ops_stablehlo.mlir dosyasından taşıyın dosyasını bu dosyaya ekleyin.
  7. spec.md içinde:

    1. stablehlo/tests/interpret/<op_mnemonic>.mlir için bir bağlantı ekleyin "Örnekler" bölümüne bölüm (ör. Diğer Örnekler).
    2. Spesifikasyonda yalnızca 1 örnek bulunduğundan emin olun.
    3. Spesifikasyon örneğin test kurallarına uyduğundan emin olun.
    4. Spesifikasyon örneği testinin yorumlanabilir olduğundan emin olun.
    5. Spesifikasyon örneğinin arabuluculuktakiyle aynı olduğundan emin olun.
  8. status.md içinde:

    1. "Çevirmen"i güncelleme sütununu yes öğesine ekleyin.