ในเอกสารนี้ เราสรุปหลักเกณฑ์สำหรับการตรวจสอบการเปลี่ยนแปลงข้อกำหนด ปัจจุบันการเปลี่ยนแปลงเหล่านี้มักจะเกี่ยวข้องกับการตรวจสอบสิ่งต่างๆ ในหลายๆ แหล่งข้อมูล เอกสารนี้จึงสรุปการเปลี่ยนแปลงทั้งหมดเพื่อให้การตรวจสอบง่ายขึ้น
- ตรวจสอบว่าคอลัมน์ "ข้อกำหนด" ใน status.md ระบุว่า "ใช่"
- ตรวจสอบว่าชื่อส่วนตรงกับข้อมูลช่วยจำของการดำเนินการใน ODS
- ตรวจสอบว่าส่วน "Semantics" ตรงกับความหมายของการดำเนินการของ XLA หรือไม่
- ตรวจสอบว่าส่วน "อินพุต" และ "เอาต์พุต" มีลักษณะดังต่อไปนี้
- แสดงรายการเดียวกันกับ ODS
- แสดงรายการเดียวกันกับ HloInstruction::CreateFromProto
- มีคำสั่งเหมือนกับ ODS
- หากมีคำขอที่ไม่ตรงกัน ให้ตรวจสอบว่ามีตั๋วที่เกี่ยวข้องหรือไม่
- ตรวจสอบว่าส่วน "ข้อจำกัด" มีคุณสมบัติต่อไปนี้หรือไม่
- ตรงกับ shape_inference.cc ของ XLA
- ตรงกับ hlo_verifier.cc ของ XLA
- ตรงกับ ODS
- ตรงกับ StablehloOps.cpp
- หากมีคำขอที่ไม่ตรงกัน ให้ตรวจสอบว่ามีตั๋วที่เกี่ยวข้องหรือไม่ ลิงก์ตั๋วทั้งหมดดังกล่าวในข้อกำหนดเฉพาะในสถานที่ที่เจาะจงที่สุดเท่าที่จะเป็นไปได้ (เช่น หากตั๋วเกี่ยวข้องกับข้อจำกัดที่ยังไม่มี ให้ลิงก์ตั๋วในข้อจำกัดนั้น)
- หากส่วนที่เกี่ยวข้องของ ODS และ StablehloOps.cpp ตรงกับข้อกำหนด ให้ตรวจสอบว่าคอลัมน์ "กระบวนการยืนยัน" และ "การอนุมานประเภท" ใน status.md ระบุว่า "ใช่"
- ตรวจสอบว่าส่วน "ตัวอย่าง" มีลักษณะดังต่อไปนี้
- มีแค่ตัวอย่างเดียว (ในอนาคต เราจะลิงก์ไปยังตัวอย่างเพิ่มเติมจากชุดทดสอบล่ามของ StableHLO)
- ใช้ไวยากรณ์ MLIR ที่ถูกต้องโดยการเรียกใช้
stablehlo-opt
ในตัวอย่างโค้ด - ใช้ไวยากรณ์ MLIR ทั่วไปซึ่งหาได้ด้วยการเรียกใช้
stablehlo-opt -mlir-print-op-generic
(เราใช้ไวยากรณ์ทั่วไปในข้อกำหนดเพื่อไม่ให้ต้องเปลี่ยนข้อมูลจำเพาะของการเปลี่ยนแปลง Preprinter)
- ตรวจสอบว่า
description
ใน ODS ของการดำเนินการมีลักษณะดังนี้- รวมประโยคแรกของข้อกำหนด
- จากนั้นจึงลิงก์ไปยังส่วนที่เกี่ยวข้องของข้อกำหนด
- จากนั้นใช้ตัวอย่างเดียวกันกับข้อกำหนด แต่ใช้ไวยากรณ์ที่ค่อนข้างดีซึ่งรับได้โดยการเรียกใช้
stablehlo-opt
- ตรวจสอบว่าไฟล์ที่เกี่ยวข้องกับการใช้การยืนยันและข้อจํากัดการอนุมานประเภทเป็นไปตามหลักเกณฑ์ที่ระบุไว้ด้านล่าง
- ปฏิบัติตามหลักเกณฑ์ #1 สำหรับ StablehloOps.td
- ทำตามหลักเกณฑ์ #2 สำหรับ TypeInference.cpp และ StablehloOps.cpp
- ทำตามหลักเกณฑ์ #5 สำหรับ ops_stablehlo.mlir
- ทำตามหลักเกณฑ์ #6 สำหรับ infer_stablehlo.mlir