ขอขอบคุณที่เข้าร่วม Google I/O ดูเซสชั่นทั้งหมดตามความต้องการ ดูตามความต้องการ

MLIR

ภาพรวม

MLIR หรือ Multi-Level Intermediate Representation เป็นรูปแบบการแสดงและไลบรารีของยูทิลิตี้คอมไพเลอร์ที่อยู่ระหว่างการแสดงโมเดลและคอมไพเลอร์/โปรแกรมดำเนินการระดับต่ำที่สร้างโค้ดเฉพาะฮาร์ดแวร์

MLIR เป็นหัวใจสำคัญของโครงสร้างพื้นฐานที่ยืดหยุ่นสำหรับคอมไพเลอร์ที่เพิ่มประสิทธิภาพที่ทันสมัย ซึ่งหมายความว่าประกอบด้วยข้อกำหนดสำหรับการแสดงระดับกลาง (IR) และชุดเครื่องมือรหัสเพื่อทำการแปลงบนการแสดงนั้น (ในภาษาของคอมไพเลอร์ เมื่อคุณเปลี่ยนจากการแสดงระดับที่สูงขึ้นไปเป็นการแสดงระดับล่าง การแปลงเหล่านี้สามารถเรียกว่า “การลดลง”)

MLIR ได้รับอิทธิพลอย่างมากจาก LLVM และนำแนวคิดดีๆ มากมายกลับมาใช้ใหม่อย่างไม่สะทกสะท้าน มีระบบประเภทที่ยืดหยุ่น และอนุญาตให้แสดง วิเคราะห์ และแปลงกราฟที่รวมเอานามธรรมหลายระดับในหน่วยการรวบรวมเดียวกัน นามธรรมเหล่านี้รวมถึงการดำเนินการ TensorFlow ขอบเขตลูปหลายหน้าซ้อนกัน และแม้แต่คำสั่ง LLVM และการดำเนินการและประเภทฮาร์ดแวร์คงที่

เราคาดว่า MLIR จะเป็นที่สนใจของหลายกลุ่ม รวมถึง:

  • นักวิจัยคอมไพเลอร์และผู้ดำเนินการที่ต้องการเพิ่มประสิทธิภาพและการใช้หน่วยความจำของโมเดลการเรียนรู้ของเครื่อง
  • ผู้ผลิตฮาร์ดแวร์กำลังมองหาวิธีเชื่อมต่อฮาร์ดแวร์ของตนกับ TensorFlow เช่น TPU ฮาร์ดแวร์ประสาทแบบพกพาในโทรศัพท์ และ ASIC ที่กำหนดเองอื่นๆ
  • ผู้ที่เขียนการเชื่อมโยงภาษาที่ต้องการใช้ประโยชน์จากการเพิ่มประสิทธิภาพคอมไพเลอร์และการเร่งฮาร์ดแวร์

ระบบนิเวศของ TensorFlow ประกอบด้วยคอมไพเลอร์และตัวเพิ่มประสิทธิภาพจำนวนหนึ่งที่ทำงานในสแต็คซอฟต์แวร์และฮาร์ดแวร์หลายระดับ เราคาดว่าการนำ MLIR มาใช้อย่างค่อยเป็นค่อยไปจะทำให้ทุกแง่มุมของสแต็กนี้ง่ายขึ้น

แผนภาพภาพรวม MLIR