หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

MLIR

ภาพรวม

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

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

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

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

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

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

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