เอกสารนี้จะสรุปหลักเกณฑ์ในการใช้งานและการตรวจสอบตัวเลือกสำหรับล่าม เราได้ตั้งใจรวมรายการการทำงานเสริม 2-3 รายการที่เกี่ยวข้องกับตัวตรวจสอบและการอนุมานประเภท โดยมีแนวคิดที่จะพัฒนาไปพร้อมๆ กับการใช้งานล่าม
ขณะติดตั้งใช้งานการดำเนินการ
- ระบุกลยุทธ์การทดสอบที่เขียนอย่างชัดเจน (ในคำอธิบาย PR) ซึ่งคล้ายกับนี้เพื่อใช้เป็นข้อมูลอ้างอิงขณะตรวจสอบวิธีการยืนยันและการอนุมานประเภท รวมถึงการทดสอบที่เกี่ยวข้อง เจ้าหน้าที่จะตรวจสอบอีกครั้งว่าคำอธิบายครอบคลุม
- โปรดปรึกษา hlo_evaluator เพื่อระบุรายละเอียดการใช้งานที่ยุ่งยากและช่องโหว่ด้านฟังก์ชันการทำงานที่อาจเกิดขึ้น
- โปรดส่งคำขอแจ้งปัญหาสำหรับคอมโพเนนต์ซอฟต์แวร์ที่เกี่ยวข้องหากพบข้อบกพร่องหรือฟังก์ชันการทำงานที่ขาดหายไป
หลังจากใช้การดำเนินการ
ใน StablehloOps.td ให้ทำดังนี้
- ตรวจสอบว่า
summary
ใน ODS ของผู้ให้บริการปฏิบัติตามรูปแบบมาตรฐาน (คำขอแจ้งปัญหาที่เกี่ยวข้อง) เพิ่มความคิดเห็นที่อ้างอิงป้ายกำกับข้อจำกัด (เช่น
Cn
หรือIn
) จากข้อกำหนดในรูปแบบxyz_cn
หรือxyz_in
สำหรับการดำเนินการXyzOp
เพื่อระบุความเชื่อมโยงระหว่างข้อจำกัดใน 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
สำหรับการดำเนินการXyzOp
เพื่อระบุส่วนต่างๆ ของโปรแกรมตรวจสอบและฟังก์ชันรูปร่างที่สอดคล้องกับข้อจำกัดในข้อกำหนด- ความคิดเห็นที่มีป้ายกำกับข้อจำกัดหลายป้ายหรือมีหลายความคิดเห็นที่มีป้ายกำกับข้อจำกัดเดียวกัน ทุกอย่างขึ้นอยู่กับวิธีใช้ข้อจำกัด หากมีข้อจำกัดต่อเนื่องกัน ให้ย่อเป็น
xyz_cn...xyz_cm, xyz_in...xyz_jn
- ในกรณีที่ข้อจำกัดในการใช้งานไม่ตรงกับข้อจำกัดในข้อกำหนด โปรดตรวจสอบว่ามีปัญหาที่รอดำเนินการซึ่งแสดงถึงความคลาดเคลื่อนดังกล่าว
- ความคิดเห็นที่มีป้ายกำกับข้อจำกัดหลายป้ายหรือมีหลายความคิดเห็นที่มีป้ายกำกับข้อจำกัดเดียวกัน ทุกอย่างขึ้นอยู่กับวิธีใช้ข้อจำกัด หากมีข้อจำกัดต่อเนื่องกัน ให้ย่อเป็น
-
- เพิ่มไฟล์ชื่อ
<op_mnemonic>.mlir
- เขียนการทดสอบตามหลักเกณฑ์การทดสอบ
- เพิ่มไฟล์ชื่อ
ในไดเรกทอรี testdata ให้ทำดังนี้
- เรียกใช้การทดสอบที่ปิดใช้ซึ่งอยู่ภายใต้การดำเนินการที่เพิ่มใหม่
- หากการทดสอบผ่าน ให้เปิดใช้โดยแปลง
RUN-DISABLED
เป็นRUN
- หากการทดสอบไม่ผ่านด้วยเหตุผลอื่นนอกเหนือจากความแม่นยำไม่ตรงกัน ให้แก้ไขการติดตั้งใช้งาน/การทดสอบ
- สำหรับการจับคู่ความแม่นยำที่ไม่ตรงกัน ให้ติดแท็กการทดสอบด้วย
RUN-DISABLED(#1278)
(หากยังไม่ได้ดำเนินการ)
-
- ตรวจสอบว่ามีการทดสอบอย่างน้อย 1 รายการ (เชิงบวกหรือเชิงลบ) ต่อข้อจำกัดแต่ละข้อในเครื่องมือยืนยันและวิธีการอนุมานประเภท ทั้งนี้ ระบบจะไม่ทดสอบข้อจำกัดที่ครอบคลุมใน ODS การทดสอบเหล่านี้ส่วนใหญ่จะเป็นเชิงลบ ซึ่งทดสอบว่าข้อจำกัดไม่ตรงตามข้อกำหนด หรือเชิงบวก ซึ่งทดสอบว่ารูปร่างที่อนุมานนั้นถูกต้อง
- ตรวจสอบว่าทดสอบทั้งหมดที่เกี่ยวข้องกับการดำเนินการที่ทดสอบอยู่อยู่ด้วยกัน
- ตรวจสอบว่าการทดสอบทั้งหมดที่เกี่ยวข้องกับการทดสอบภายใต้การทดสอบใส่มาโครที่มีไฟ
CHECK-LABEL
ไว้ด้านหน้า - เลือกชื่อฟังก์ชันของการทดสอบโดยใช้รูปแบบ
xyz_cn_im_...
สําหรับข้อจํากัดการทดสอบฟังก์ชันCn
,Im
และอื่นๆ สําหรับการดําเนินการXyzOp
ในกรณีที่รูปแบบที่เสนอใช้ไม่ได้ ให้ใช้ชื่อเดิม - เมื่อทำตามขั้นตอนข้างต้นเสร็จแล้ว ให้จัดเรียงการทดสอบทั้งหมดที่เกี่ยวข้องกับการทดสอบการดำเนินการตามลําดับตัวอักษรตามชื่อฟังก์ชัน
- เพิ่มการทดสอบต่อไปจนกว่า ccov จะแสดงการครอบคลุมมากกว่าหรือเท่ากับ 90% สำหรับการดำเนินการ
-
- ตรวจสอบว่ามีข้อจำกัดทั้งหมดที่เกี่ยวข้องกับการทดสอบการอนุมานรูปร่างในไฟล์นี้ โดยทำตามหลักเกณฑ์การตั้งชื่อเดียวกันกับที่ระบุไว้ข้างต้น
- ย้ายการทดสอบการอนุมานรูปร่างจากไฟล์ ops_stablehlo.mlir มายังไฟล์นี้
ใน spec.md
- เพิ่มลิงก์ไปยัง
stablehlo/tests/interpret/<op_mnemonic>.mlir
ลงในส่วน "ตัวอย่าง" (เช่น ตัวอย่างเพิ่มเติม) - โปรดตรวจสอบว่าข้อมูลจำเพาะมีตัวอย่างเพียง 1 รายการ
- ตรวจสอบว่าตัวอย่างข้อมูลจำเพาะเป็นไปตามหลักเกณฑ์การทดสอบ
- ตรวจสอบว่าตัวอย่างการทดสอบข้อกําหนดสามารถตีความได้
- ตรวจสอบว่าตัวอย่างข้อมูลจำเพาะตรงกับข้อมูลใน ODS
- เพิ่มลิงก์ไปยัง
ใน status.md ให้ทำดังนี้
- อัปเดตคอลัมน์ "ผู้แปล" เป็น
yes
- อัปเดตคอลัมน์ "ผู้แปล" เป็น