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

ดูข้อมูลเกี่ยวกับ VHLO ได้ที่ vhlo.md

การส่งการเปลี่ยนแปลงที่เข้ากันไม่ได้

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

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

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

ฟีเจอร์ VHLO ใหม่ใดๆ ที่เพิ่มเข้ามาจะใช้เวอร์ชันที่อัปเกรดนี้ เช่น หลังจากอัปเกรด 0.10.0 --> 0.11.0 แล้ว การดำเนินการใหม่ใน VhloOps.td จะต้องใช้

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

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

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

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