MLIR
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
סקירה כללית
MLIR, או Multi-Level Intermediate Representation, הוא פורמט ייצוג וספרייה של כלי עזר מהדרים שנמצאים בין ייצוג המודל לבין מהדרים/מבצעים ברמה נמוכה שמייצרים קוד ספציפי לחומרה.
MLIR היא, בליבה, תשתית גמישה לאופטימיזציה מודרנית של מהדרים. המשמעות היא שהוא מורכב ממפרט לייצוגי ביניים (IR) ומערכת כלים של קוד לביצוע טרנספורמציות על ייצוג זה. (בעגת המהדר, כשאתה עובר מייצוגים ברמה גבוהה יותר לייצוגים ברמה נמוכה יותר, ניתן לכנות טרנספורמציות אלו "הורדות").
MLIR מושפע מאוד מ- LLVM ומשתמש מחדש ללא בושה ברעיונות נהדרים רבים ממנו. יש לו מערכת סוגים גמישה, ומאפשרת ייצוג, ניתוח והמרת גרפים המשלבים מספר רב של רמות הפשטה באותה יחידת הידור. ההפשטות הללו כוללות פעולות TensorFlow, אזורי לולאה פוליהדרלית מקוננים, ואפילו הוראות LLVM ופעולות וסוגי חומרה קבועים.
אנו מצפים ש-MLIR יעניין קבוצות רבות, כולל:
- חוקרי מהדר ומיישמים המבקשים לייעל את הביצועים וצריכת הזיכרון של מודלים של למידת מכונה
- יצרני חומרה מחפשים דרך לחבר את החומרה שלהם ל-TensorFlow, כגון TPUs, חומרה עצבית ניידת בטלפונים ושאר ASICs מותאמים אישית
- אנשים כותבים כריכות שפה שרוצים לנצל את היתרונות של אופטימיזציה של מהדרים והאצת חומרה.
המערכת האקולוגית של TensorFlow מכילה מספר מהדרים ואופטימיזרים הפועלים במספר רמות של ערימת התוכנה והחומרה. אנו מצפים שהאימוץ ההדרגתי של MLIR יפשט כל היבט של ערימה זו.
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 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": "\u05e2\u05d3\u05db\u05d5\u05df \u05d0\u05d7\u05e8\u05d5\u05df: 2023-12-01 (\u05e9\u05e2\u05d5\u05df 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)."],[],[]]