แผนกลยุทธ์ StableHLO

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

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

เหตุการณ์สำคัญปัจจุบัน

โดยเหตุการณ์สำคัญในปัจจุบันของเราเป็นไปตาม 2 แนวโน้มหลักต่อไปนี้

  1. เพิ่มประโยชน์ของ StableHLO ให้กับชุมชน OpenXLA ทั้งหมด
  2. รวมประสบการณ์การใช้งานของนักพัฒนาแอปสำหรับสมาชิก OpenXLA ทุกคน
  • การเลิกใช้งาน MHLO: ในไตรมาสที่ 4 ของปี 2024 เราได้เริ่มสำรวจการเลิกใช้งาน MHLO ภายใน โดยย้ายข้อมูลพาสที่มีประโยชน์ รวมถึงการจัดทําให้เป็นรูปแบบมาตรฐานและรูปแบบโฟลเดอร์ ไปยัง StableHLO เมื่อกระบวนการย้ายข้อมูลได้รับการพิสูจน์แล้วว่าไม่ซับซ้อนภายในแล้ว เราวางแผนที่จะแชร์ RFC พร้อมลำดับเวลาสำหรับการย้ายข้อมูลภายนอกไปยัง StableHLO ซึ่งอาจเกิดขึ้นในไตรมาสที่ 1 ปี 2025 และเราวางแผนที่จะให้เวลาและการสนับสนุนแก่ทีมอย่างเพียงพอเพื่อย้ายข้อมูลไปยัง StableHLO ในช่วงครึ่งแรกของปี 2025
  • ย้ายข้อมูลการเพิ่มประสิทธิภาพที่ไม่ขึ้นอยู่กับฮาร์ดแวร์ไปยัง StableHLO: ตามแนวโน้มข้างต้น เราต้องการให้ StableHLO เป็นแพลตฟอร์มที่ดีที่สุดในการรวมการทำให้กราฟง่ายขึ้นที่ไม่ขึ้นอยู่กับฮาร์ดแวร์ เพื่อให้ปลั๊กอิน PJRT ทั้งหมด รวมถึงปลั๊กอินที่แปลงจาก StableHLO เป็น IR คอมไพเลอร์ที่ไม่ใช่ XLA ได้รับประโยชน์สูงสุด เป้าหมายนี้ส่วนหนึ่งเกี่ยวข้องกับการรวมรูปแบบที่ใช้ใน Google AI Edge, โปรเจ็กต์ JAX-Enzyme และโปรเจ็กต์อื่นๆ ทั้งหมดในรีโพสิทอรี่ StableHLO การรวมช่องบางส่วนได้เริ่มขึ้นแล้ว แต่สตรีมงานส่วนใหญ่จะเริ่มต้นและเสร็จสมบูรณ์ในไตรมาสที่ 1 ปี 2025
  • การคอมโพเนนต์ OpenXLA: เราเริ่มสร้างคอมโพเนนต์เฉพาะใน openxla/xla สําหรับ HLO ซึ่งคล้ายกับการตั้งค่ารีโป StableHLO (ref) รวมถึงเริ่มย้ายแบ็กเอนด์ OpenXLA ทั้งหมดไว้หลังปลั๊กอิน PJRT นอกจากนี้ เรายังลงทุนในการแก้ไขปัญหา UX ที่โดดเด่นซึ่งพบในปลั๊กอิน PJRT เหล่านี้ด้วย ซึ่งรวมถึงการแจ้งเวอร์ชัน StableHLO ที่แม่นยำในปลั๊กอิน StableHLO เพื่อให้ปลั๊กอินใหม่ใช้งานได้ทันที (ref)
  • ทําให้คอมโพสิททํางานได้ตั้งแต่ต้นจนจบ: ในไตรมาสที่ 3 ปี 2024 เราได้เพิ่มคอมโพสิทลงใน HLO ซึ่งช่วยให้สแต็กคอมไพเลอร์รองรับการแยกความคิดอย่างเต็มรูปแบบ ในไตรมาสที่ 4 ปี 2024 เราได้สอนโปรแกรมจัดเรียงบรรทัด XLA เกี่ยวกับคอมโพสิทและเพิ่มการผ่านใน HLO/StableHLO สำหรับการฝังคอมโพสิทที่ไม่รู้จักพร้อมกับการแยกย่อย ตอนนี้เรากําลังตรวจสอบการเพิ่ม JAX API โดยเฉพาะสําหรับการสร้างคอมโพสิทจากเฟรมเวิร์ก (มี PyTorch API อยู่แล้ว) รวมถึงเพิ่มเอกสารประกอบของ Colab เกี่ยวกับวิธีใช้คอมโพสิทอย่างถูกต้อง ซึ่งจะเสร็จสมบูรณ์ในไตรมาสที่ 4 ปี 2024

เหตุการณ์สำคัญที่ผ่านมา

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