แผนกลยุทธ์ของ StableHLO

ในขณะที่เขียน StableHLO พร้อมที่จะแทนที่ MHLO/HLO เป็นอินเทอร์เฟซคอมไพเลอร์ อาจผลิตโดย TensorFlow, JAX และ PyTorch สามารถใช้ XLA และ IREE ได้ และมีฟีเจอร์สาธารณะทั้งหมดที่ให้บริการโดย MHLO/HLO รวมถึงฟังก์ชันการทำงานอื่นๆ ด้วย

เอกสารนี้จะอธิบายขั้นตอนถัดไปของโครงการ StableHLO ซึ่งจัดหมวดหมู่งานที่กำลังดำเนินอยู่ตามที่แสดงในตัวติดตามปัญหา และจัดเตรียมงานดังกล่าวให้เป็นงานที่ต้องส่งมอบตามแผนที่กำหนดไว้

เป้าหมาย

ในปี 2023 เราวางแผนเหตุการณ์สำคัญ 2 อย่าง ได้แก่ 1) StableHLO v0.9 ซึ่งจะ มอบการรับประกันความเข้ากันได้ในเวอร์ชันเริ่มต้นและ 2) StableHLO v1.0 ซึ่งจะใช้การปรับปรุงที่มีลำดับความสำคัญสูงและเริ่มรับประกันความเข้ากันได้อย่างเต็มรูปแบบ

StableHLO v0.9 จะสะท้อนภาพ MHLO/HLO ที่เพิ่มเข้ามาด้วยข้อกำหนดสำหรับ Ops ที่มีรูปแบบคงที่และการรับประกันความเข้ากันได้เบื้องต้น ตาม RFC ความเข้ากันได้ รุ่นนี้จะมอบความเข้ากันได้แบบไปข้างหน้าและย้อนหลังเป็นเวลา 1 เดือน การรับประกันที่กลั่นกรองมาอย่างดีเหล่านี้จะช่วยให้ได้รับประสบการณ์ด้านวิวัฒนาการภาษาถิ่นและจะต้องใช้เวลาสักครู่ในการล้างข้อมูลก่อนที่การรับประกันทั้งหมดจะมีผล เรามีแผนที่จะเปิดตัว StableHLO v0.9 ในไตรมาสที่ 1 ปี 2023

StableHLO v1.0 จะใช้การปรับปรุงที่มีลำดับความสำคัญสูง ซึ่งรวมถึงการจัดระเบียบสัญญาฟรอนท์เอนด์ (โดยมีเป้าหมายที่โปรแกรม StableHLO จะมีเฉพาะการดำเนินการจากภาษา StableHLO แทนที่จะเป็นภาษาถิ่นและแอตทริบิวต์ที่ไม่ได้ลงทะเบียนในปัจจุบัน) และให้การใช้งานข้อมูลอ้างอิง เรามีแผนที่จะเปิดตัว StableHLO v1.0 ในครึ่งหลังของปี 2023

สตรีมงาน

เพื่อเป็นการจัดระเบียบการพัฒนาตามเป้าหมายที่กล่าวข้างต้น เราได้จัดหมวดหมู่ตั๋วในตัวติดตามปัญหาออกเป็นหลายลำดับงาน และเชื่อมโยงสตรีมงานเหล่านี้เข้ากับเป้าหมาย ตั๋วในจำนวนจำกัด (น้อยกว่า 10%) จะไม่ได้รับการกำหนดให้กับสตรีมงานใดโดยเฉพาะและไม่ได้เป็นส่วนหนึ่งของ เหตุการณ์สำคัญใดๆ

(P0) เวิร์กโฟลว์การใช้งานความเข้ากันได้มีจุดประสงค์เพื่อใช้ RFC ความเข้ากันได้ร่วมกับชุดทดสอบความเข้ากันได้โดยเฉพาะ การทำงานส่วนใหญ่นี้คาดว่าจะเสร็จสมบูรณ์ใน StableHLO v0.9 และส่วนที่เหลือจะดำเนินการใน StableHLO v1.0

(P0) สตรีมงานสัญญาฟรอนท์เอนด์ประกอบด้วยการปรับใช้ฟีเจอร์ 100% ที่ใช้โดยฟรอนท์เอนด์ของ StableHLO แต่ยังไม่อยู่ในข้อมูลจำเพาะของ StableHLO เป้าหมายของกระบวนการนี้คือการดูแลให้โปรแกรม StableHLO รวมการดำเนินการจากภาษาถิ่นของ StableHLO เท่านั้น ไม่ใช่การผสมผสานระหว่างภาษาถิ่นและแอตทริบิวต์ที่ไม่ได้ลงทะเบียนในปัจจุบัน เรากำลังวางแผนจะดำเนินการทั้งหมดหรือเกือบทั้งหมดในกระบวนการทำงานนี้ใน StableHLO v1.0

(P0) สตรีมงาน การใช้งานข้อมูลอ้างอิงจะจัดระเบียบงานเกี่ยวกับการใช้ ล่าม สำหรับการดำเนินการของ StableHLO 100% ตามที่กำหนดไว้ในข้อกำหนดของ StableHLO เราวางแผนที่จะทำงานทั้งหมดหรือเกือบทั้งหมดในกระบวนการทำงานนี้ใน StableHLO v1.0

(P0) สตรีมงานเอกสารประกอบมีไว้เพื่อให้ข้อมูลทั้งหมดที่ผู้ผลิตหรือผู้บริโภคของ StableHLO อาจต้องการ ข้อกำหนดจำเพาะของ StableHLO เป็นการส่งมอบหลัก เช่นเดียวกับข้อมูลอ้างอิงสำหรับรูปแบบการทำให้เป็นอนุกรมของ StableHLO API และ StableHLO ส่วนสำคัญของสตรีมงานจะส่งไปใน StableHLO v1.0 โดยจะมีการส่งรายการที่มีความสำคัญต่ำกว่าทยอยตรวจสอบไปเรื่อยๆ

(P1) สตรีมชุดโปรแกรมการปฏิบัติตามข้อกำหนดประกอบด้วยการส่งชุดการทดสอบที่เปรียบเทียบการใช้งานข้อมูลอ้างอิงกับการติดตั้งใช้งานโดยแบ็กเอนด์ของ StableHLO การทดสอบการใช้ข้อมูลอ้างอิงจะมีชุดการตรวจสอบความสอดคล้องที่เรียงกัน ดังนั้นสตรีมนี้จึงไม่มีลำดับความสำคัญ P0 อย่างไรก็ตาม การเพิ่มชุดทดสอบนี้เพิ่มเติมด้วยกรอบการทดสอบที่น่าสนใจอาจมีประโยชน์สำหรับการทำงานในอนาคต

(P1) เวิร์กโฟลว์การปฏิบัติตามข้อกำหนดเฉพาะช่วยให้มั่นใจได้ว่าการดำเนินการของ StableHLO ทั้ง 100% จะดำเนินการในกล่องโต้ตอบของ StableHLO ตามที่ระบุไว้ในข้อมูลจำเพาะของ StableHLO ภาษา StableHLO เป็นไปตามข้อกำหนดที่สมเหตุสมผลอยู่แล้ว ดังนั้นสตรีมงานนี้จึงไม่มีลำดับความสำคัญ P0 แต่ยังมีรายการย่อยจำนวนมากเหลืออยู่ (โดยเฉพาะในกรณีที่จำเป็นของการใช้ตัวตรวจสอบ) และจะได้รับการแก้ไขอย่างต่อเนื่อง

(P1) สตรีมงานฟีเจอร์ใหม่สรุปแผนกลยุทธ์ของ StableHLO และประกอบด้วยคอลเล็กชัน ragtag ของฟังก์ชันใหม่ของ StableHLO (ไม่ใช่ภาษา StableHLO หรือการเชื่อมโยงของ StableHLO ซึ่งหมายถึงสตรีมการทำงานอื่นๆ) ฟีเจอร์ใหม่ๆ เหล่านี้บางส่วนมีการวางแผนให้แสดงใน StableHLO v1.0 แต่ปัจจุบันฟีเจอร์ส่วนใหญ่เป็นรายการที่มีลำดับความสำคัญต่ำกว่า ซึ่งไม่ได้เป็นส่วนหนึ่งของเหตุการณ์สำคัญใดๆ

(P1) สตรีมงาน Public API มีไว้เพื่อส่งการเชื่อมโยง C/C++/Python สำหรับภาษา StableHLO โดยเฉพาะ การเชื่อมโยง C++/Python ที่มีอยู่ค่อนข้างสมเหตุสมผลอยู่แล้ว สตรีมงานนี้จึงไม่มีลำดับความสำคัญ P0 อย่างไรก็ตาม เรายังคงต้องปรับปรุงและต้องทำอีกค่อนข้างเสร็จ โดยเฉพาะในเรื่องการรักษาความเสถียรสำหรับการเชื่อมโยงเหล่านี้ ซึ่งเป็นสิ่งที่ RFC ความเข้ากันได้ยังไม่ครอบคลุมในปัจจุบัน แต่น่าจะเป็นประโยชน์สำหรับการทำงานในอนาคต