ในเอกสารนี้ เราสรุปหลักเกณฑ์ในการปรับใช้และการตรวจสอบสำหรับล่าม เราได้ตั้งใจรวมรายการการทำงานเสริมบางรายการที่เกี่ยวข้องกับผู้ตรวจสอบและการอนุมานประเภท โดยมีแนวคิดในการสร้างความคืบหน้าในขอบเขตเหล่านั้นควบคู่ไปกับการใช้อินเตอร์พรีเตอร์
ขณะติดตั้งใช้งานการทดสอบ
- ระบุกลยุทธ์การทดสอบที่เขียนไว้อย่างชัดแจ้ง (ในคำอธิบาย PR) ที่คล้ายกับข้อมูลนี้เพื่อใช้เป็นข้อมูลอ้างอิงขณะตรวจสอบวิธีการอนุมานประเภทการยืนยันและประเภท รวมถึงการทดสอบที่เกี่ยวข้อง ผู้ตรวจสอบจะตรวจสอบอีกครั้งว่า คำอธิบายดังกล่าวครอบคลุมทั้งหมด
- โปรดติดต่อ hlo_evaluator เพื่อระบุรายละเอียดการใช้งานที่ยุ่งยากและช่องโหว่ของฟังก์ชันการทำงานที่อาจเกิดขึ้น
- ส่งคำขอแจ้งปัญหาสำหรับคอมโพเนนต์ของซอฟต์แวร์ที่เกี่ยวข้องหากพบข้อบกพร่องหรือฟังก์ชันการทำงานขาดหายไป
หลังจากติดตั้งใช้งานการทดสอบ
ใน StablehloOps.td:
- ตรวจสอบว่า
summary
ใน ODS ของการดำเนินการเป็นไปตามรูปแบบมาตรฐาน (ตั๋วที่เกี่ยวข้อง) เพิ่มความคิดเห็นที่อ้างอิงถึงป้ายกำกับข้อจำกัด (เช่น
Cn
หรือIn
) จากข้อกำหนดในรูปแบบxyz_cn
หรือxyz_in
สำหรับ opXyzOp
เพื่อระบุความสอดคล้องระหว่างข้อจำกัดใน ODS กับข้อกำหนด ตัวอย่างต่อไปนี้แสดงวิธีเพิ่มป้ายกำกับข้อจํากัดเป็นความคิดเห็นควบคู่ไปกับ mlirTraits
และTypeConstraints
หมายเหตุxyz_c4
หมายถึงข้อจำกัดที่กำหนดไว้ในคลาสStableHLO_FooOp
(เช่นStableHLO_ShapedInterfaceOp
,StableHLO_UnaryElementwiseOp
,StableHLO_Op
เป็นต้น)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*/ .... ); );
- ตรวจสอบว่า
ใน TypeInference.cpp และ StablehloOps.cpp ให้ทำดังนี้
- ลบความคิดเห็นที่กล่าวถึง "ยืนยันพร็อพเพอร์ตี้ต่อไปนี้..."
- เพิ่มความคิดเห็นที่อ้างอิงถึงป้ายกำกับข้อจำกัด (เช่น
Cn
หรือIn
) จากข้อกำหนดในรูปแบบxyz_cn
หรือxyz_in
สำหรับ opXyzOp
เพื่อระบุว่าส่วนใดของเครื่องมือยืนยันและฟังก์ชันรูปร่างสอดคล้องกับข้อจำกัดใดในข้อกำหนด- คุณสามารถมีความคิดเห็นที่มีป้ายกำกับข้อจำกัดหลายรายการหรือมีหลายความคิดเห็นที่มีป้ายกำกับข้อจำกัดเดียวกันก็ได้ ทั้งหมดขึ้นอยู่กับวิธีนำข้อจำกัดเหล่านั้นมาใช้ หากมีข้อจำกัดต่อเนื่อง
ให้จำกัดเป็น
xyz_cn...xyz_cm, xyz_in...xyz_jn
- ในกรณีที่มีความคลาดเคลื่อนระหว่างข้อจำกัดในการใช้งานกับข้อจำกัดในข้อกำหนด ต้องแน่ใจว่ามีปัญหาที่ยังไม่ได้รับการแก้ไขซึ่งแสดงถึงความคลาดเคลื่อนดังกล่าว
- คุณสามารถมีความคิดเห็นที่มีป้ายกำกับข้อจำกัดหลายรายการหรือมีหลายความคิดเห็นที่มีป้ายกำกับข้อจำกัดเดียวกันก็ได้ ทั้งหมดขึ้นอยู่กับวิธีนำข้อจำกัดเหล่านั้นมาใช้ หากมีข้อจำกัดต่อเนื่อง
ให้จำกัดเป็น
-
- เพิ่มไฟล์ชื่อ
interpret_<op_mnemonic>.mlir
- เขียนการทดสอบตามหลักเกณฑ์การทดสอบ
- เพิ่มไฟล์ชื่อ
-
- เรียกใช้การทดสอบที่ปิดใช้ซึ่งอยู่ภายใต้การดำเนินการที่เพิ่มเข้ามาใหม่
- หากการทดสอบผ่าน ให้เปิดใช้โดยการแปลง
RUN-DISABLED
เป็นRUN
- หากการทดสอบไม่สำเร็จด้วยเหตุผลบางประการนอกเหนือจากความแม่นยําที่ไม่ตรงกัน ให้แก้ไขการติดตั้งใช้งาน/การทดสอบ
- สำหรับความแม่นยำที่ไม่ตรงกัน ให้ติดแท็กการทดสอบด้วย
RUN-DISABLED(#1278)
(หากยังไม่ได้ทำ)
-
- ตรวจสอบว่ามีการทดสอบอย่างน้อย 1 รายการ (เชิงบวกหรือเชิงลบ) สำหรับแต่ละข้อจำกัดในเครื่องมือตรวจสอบและวิธีการอนุมานประเภท โดยจะไม่มีการทดสอบข้อจำกัดที่อยู่ใน ODS การทดสอบเหล่านี้จะเป็นค่าลบเป็นส่วนใหญ่ โดยการทดสอบว่าไม่เป็นไปตามข้อจำกัดหรือไม่เป็นไปตามข้อจำกัด การทดสอบว่ารูปร่างที่สรุปนั้นถูกต้อง
- ตรวจสอบว่ามีการรวมการทดสอบทั้งหมดที่เกี่ยวข้องกับตัวเลือก "ปฏิบัติการ" ไว้ด้วยกัน
- ตรวจสอบว่ามีการเพิ่มมาโคร lit แบบ
CHECK-LABEL
ไว้ด้านหน้าการทดสอบทั้งหมดที่เกี่ยวข้องกับตัวเลือก "ทำการทดสอบ" - เลือกชื่อฟังก์ชันของการทดสอบโดยใช้รูปแบบ
xyz_cn_im_...
สำหรับข้อจำกัดการทดสอบฟังก์ชันCn
,Im
ฯลฯ สำหรับ opXyzOp
ในกรณีที่ไม่ได้ใช้รูปแบบที่เสนอ ให้ใช้ชื่อที่มีอยู่ - เมื่อทำตามขั้นตอนข้างต้นเสร็จแล้ว ให้จัดเรียงการทดสอบทั้งหมดที่เกี่ยวข้องกับการทดสอบของการทดสอบตามลำดับตัวอักษรตามชื่อฟังก์ชัน
- เพิ่มการทดสอบไปเรื่อยๆ จนกว่า ccov จะแสดงการครอบคลุม >= 90% ของ op
-
- ตรวจดูว่าข้อจำกัดทั้งหมดที่เกี่ยวข้องกับการทดสอบการอนุมานรูปร่างมีอยู่ในไฟล์นี้ โดยใช้หลักเกณฑ์การตั้งชื่อเดียวกันกับที่ระบุไว้ข้างต้น
- ย้ายการทดสอบการอนุมานรูปร่างจากไฟล์ ops_stablehlo.mlir มาที่ไฟล์นี้
ใน spec.md:
- เพิ่มลิงก์ไปยัง
interpret_<op_mnemonic>.mlir
ไปยังส่วน "ตัวอย่าง" (เช่น ตัวอย่างเพิ่มเติม) - ตรวจสอบว่าข้อมูลจำเพาะมีเพียง 1 ตัวอย่าง
- ตรวจสอบว่าตัวอย่างข้อมูลจำเพาะเป็นไปตามหลักเกณฑ์การทดสอบ
- ตรวจสอบว่าการทดสอบตัวอย่างข้อกำหนดสามารถตีความได้
- โปรดตรวจสอบว่าตัวอย่างข้อมูลจำเพาะเหมือนกับที่อยู่ใน ODS
- เพิ่มลิงก์ไปยัง
ใน status.md:
- อัปเดตคอลัมน์ "ล่าม" เป็น
yes
- อัปเดตคอลัมน์ "ล่าม" เป็น