MLIR
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
ภาพรวม
MLIR หรือ Multi-Level Intermediate Representation คือรูปแบบการนำเสนอและไลบรารีของยูทิลิตี้คอมไพลเลอร์ที่อยู่ระหว่างการแสดงโมเดลกับคอมไพเลอร์/เอ็กซีคิวเตอร์ระดับต่ำที่สร้างโค้ดเฉพาะฮาร์ดแวร์
หัวใจสำคัญของ MLIR คือโครงสร้างพื้นฐานที่ยืดหยุ่นสำหรับคอมไพเลอร์ที่ได้รับการปรับให้เหมาะสมสมัยใหม่ ซึ่งหมายความว่าประกอบด้วยข้อกำหนดสำหรับการเป็นตัวแทนระดับกลาง (IR) และชุดเครื่องมือโค้ดเพื่อทำการแปลงการเป็นตัวแทนนั้น (ในสำนวนคอมไพเลอร์ เมื่อคุณย้ายจากการเป็นตัวแทนระดับสูงกว่าไปสู่การเป็นตัวแทนระดับล่าง การแปลงเหล่านี้สามารถเรียกว่า "การลดระดับ")
MLIR ได้รับอิทธิพลอย่างมากจาก LLVM และนำแนวคิดดีๆ มากมายกลับมาใช้ใหม่อย่างไม่สะทกสะท้าน มีระบบประเภทที่ยืดหยุ่น และช่วยให้สามารถแสดง วิเคราะห์ และแปลงกราฟที่รวมนามธรรมหลายระดับไว้ในหน่วยการคอมไพล์เดียวกัน นามธรรมเหล่านี้รวมถึงการดำเนินการ TensorFlow, ขอบเขตของลูปโพลีฮีดรัลแบบซ้อน และแม้แต่คำสั่ง LLVM และการดำเนินการและประเภทของฮาร์ดแวร์แบบคงที่
เราคาดหวังว่า MLIR จะเป็นที่สนใจของหลายกลุ่ม รวมถึง:
- นักวิจัยและผู้ดำเนินการคอมไพเลอร์ที่ต้องการเพิ่มประสิทธิภาพและการใช้หน่วยความจำของโมเดลการเรียนรู้ของเครื่อง
- ผู้ผลิตฮาร์ดแวร์กำลังมองหาวิธีเชื่อมต่อฮาร์ดแวร์กับ TensorFlow เช่น TPU, ฮาร์ดแวร์ประสาทแบบพกพาในโทรศัพท์ และ ASIC แบบกำหนดเองอื่นๆ
- ผู้ที่เขียนการเชื่อมโยงภาษาที่ต้องการใช้ประโยชน์จากการปรับแต่งคอมไพเลอร์และการเร่งความเร็วด้วยฮาร์ดแวร์
ระบบนิเวศของ TensorFlow ประกอบด้วยคอมไพเลอร์และเครื่องมือเพิ่มประสิทธิภาพจำนวนหนึ่งที่ทำงานบนสแต็กซอฟต์แวร์และฮาร์ดแวร์หลายระดับ เราคาดหวังว่าการนำ MLIR มาใช้อย่างค่อยเป็นค่อยไปจะทำให้ทุกแง่มุมของสแต็กนี้ง่ายขึ้น
เนื้อหาของหน้าเว็บนี้ได้รับอนุญาตภายใต้ใบอนุญาตที่ต้องระบุที่มาของครีเอทีฟคอมมอนส์ 4.0 และตัวอย่างโค้ดได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 เว้นแต่จะระบุไว้เป็นอย่างอื่น โปรดดูรายละเอียดที่นโยบายเว็บไซต์ Google Developers Java เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2023-12-01 UTC
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"ไม่มีข้อมูลที่ฉันต้องการ"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"ล้าสมัย"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"ปัญหาเกี่ยวกับการแปล"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"อื่นๆ"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"เข้าใจง่าย"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"แก้ปัญหาของฉันได้"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"อื่นๆ"
}]
{"lastModified": "\u0e2d\u0e31\u0e1b\u0e40\u0e14\u0e15\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14 2023-12-01 UTC"}
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2023-12-01 UTC"],[],[]]