รายการตรวจสอบ VHLO

โปรดดูข้อมูลเกี่ยวกับ VHLO ใน vhlo.md

การก่อให้เกิดการเปลี่ยนแปลงที่เข้ากันไม่ได้

การเปลี่ยนแปลงทั้งหมดที่ส่งผลต่อความเข้ากันได้ต้องผ่านกระบวนการ RFC ซึ่งรวมถึงการเพิ่ม การเลิกใช้งาน หรือการเปลี่ยนชื่อฟีเจอร์ เมื่อ RFC คือ อนุมัติแล้ว คุณจะต้องทำตามขั้นตอนต่อไปนี้

1. ชนหมายเลขเวอร์ชันใน Version.h และอัปเดตบันทึกเวอร์ชัน

ก่อนที่จะอัปเดตการดำเนินการของ VHLO, แอตทริบิวต์, ประเภท หรือ Conversion ให้เพิ่ม หมายเลขเวอร์ชันย่อยใน Version.h และอัปเดตการบันทึกเวอร์ชันใน VhloDialect.td

ส่วนฟีเจอร์ VHLO ที่เพิ่มเข้ามาใหม่จะใช้เวอร์ชันที่ถูกอัดนี้ ตัวอย่างเช่น หลังจาก ชน 0.10.0 --> 0.11.0 ซึ่งเป็นกระบวนการใหม่ใน VhloOps.td จะใช้:

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

2. เพิ่มการใช้งานและ Conversion VHLO ที่จำเป็น

โค้ดที่ต้องใช้ในการผสานรวมคุณลักษณะใหม่จะแตกต่างกันไป แต่สำหรับคนส่วนใหญ่ คุณจะต้องทำการเปลี่ยนแปลงในส่วนต่อไปนี้

  • สำหรับ Ops ใหม่
    1. เพิ่มการดำเนินการใน VhloOps.td
    2. เพิ่ม StableHLO → การแปลง VHLO ใน StablehloLegalizeToVhlo.cpp
    3. เพิ่ม VHLO → Conversion StableHLO ใน VhloLegalizeToStablehlo.cpp
  • สำหรับเวอร์ชันใหม่ของการดำเนินการที่มีอยู่
    1. เพิ่มการดำเนินการใน VhloOps.td
    2. อัปเดตการจับคู่ StableHLO เป็น VHLO ใน MapStablehloToVhlo.h
    3. เพิ่ม Conversion ระหว่างการดำเนินการเวอร์ชันใหม่กับเวอร์ชันเก่าใน VhloToVersion.cpp
  • สำหรับประเภทหรือแอตทริบิวต์ใหม่ ให้ทำดังนี้
    1. เพิ่มประเภทใน VhloTypes.td หรือแอตทริบิวต์ใน VhloAttrs.td
    2. เพิ่ม StableHLO → การแปลง VHLO ใน StablehloLegalizeToVhlo.cpp
    3. เพิ่ม VHLO → Conversion StableHLO ใน VhloLegalizeToStablehlo.cpp

3. เพิ่ม / อัปเดตการทดสอบหน่วย

ผู้ร่วมให้ข้อมูลของการเปลี่ยนแปลงที่ไม่สามารถใช้ร่วมกันได้มีหน้าที่รับผิดชอบต่อทั้งเชิงบวกและ การทดสอบหน่วยเชิงลบของฟีเจอร์ รวมทั้งการทดสอบหน่วยความเข้ากันได้

การทดสอบหน่วยความเข้ากันได้รวมถึงการอัปเดต stablehlo_legalize_to_vhlo.mlir เพื่อให้มั่นใจได้ว่า StableHLO เป็นการเดินทางไป-กลับ ที่มี VHLO เวอร์ชันล่าสุดเช่นกัน ผ่านการทดสอบความเข้ากันได้แบบส่งต่อหรือย้อนหลังเพิ่มเติม ตัวอย่างเช่น หากเพิ่มการดำเนินการใหม่ในเวอร์ชัน X ด้วย Y = X - 1 ให้เพิ่มไฟล์ทดสอบอย่างเช่น ไม่รองรับ vhlo_to_version_downgrade_invalid.0_Y_0.mlir ที่แสดงการดำเนินการ ก่อนเวอร์ชัน X หากเพิ่มการดำเนินการเวอร์ชันใหม่ ให้เพิ่มไฟล์ทดสอบอย่างเช่น vhlo_to_version_downgrade.0_Y_0.mlir ที่แสดงให้เห็นว่าดำเนินการดาวน์เกรดได้ สำเร็จ

หากการดำเนินการของคุณมีแอตทริบิวต์เริ่มต้น ให้ใส่การทดสอบที่แสดงว่าค่าเริ่มต้น ทำให้เป็นอนุกรมและดีซีเรียลไลซ์อย่างถูกต้อง

4. เพิ่มการทดสอบการทำให้เป็นอนุกรมเวอร์ชัน

หลังจากเพิ่มการทดสอบไปยัง stablehlo_legalize_to_vhlo.mlir ให้คัดลอกการทดสอบที่มีเวอร์ชัน ที่มีเวอร์ชันที่ใหญ่ที่สุด ลงในไฟล์ใหม่ในเวอร์ชันใหม่ และเพิ่ม ใหม่ลงในไฟล์นั้นได้ด้วย นอกจากนี้คุณจะต้องสร้างบัญชี ไฟล์ไบต์โค้ดที่ใช้ stablehlo-translate:

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