דף זה תורגם על ידי Cloud Translation API.
Switch to English

ניבים של MLIR

סקירה כללית

כדי להפריד יעדי חומרה ותוכנה שונים, ל- MLIR יש "ניבים", כולל:

  • TensorFlow IR, המייצג את כל הדברים האפשריים בגרפים של TensorFlow.
  • XLA HLO IR, אשר נועד לנצל את יכולות ההידור של XLA (עם פלט בין השאר ל- TPU).
  • ניב אפיני ניסיוני, המתמקד בייצוגים ורב אופטימיזציות.
  • LLVM IR, אשר מיפוי 1: 1 בינו לבין הייצוג של LLVM עצמו, ומאפשר ל- MLIR לפלוט קוד GPU ומעבד דרך LLVM.
  • TensorFlow Lite, אשר יתורגם להפעלת קוד בפלטפורמות סלולריות.

כל דיאלקט מורכב ממכלול פעולות מוגדרות שעליהן מונחים קבועים, כמו: "זהו אופרטור בינארי, והתשומות והפלטים מאותם הסוגים."

מוסיף ל- MLIR

ל- MLIR אין רשימה קבועה / מובנית של פעולות ידועות בעולם (ללא "מהות"). דיאלקטים יכולים להגדיר סוגים מותאמים אישית לחלוטין, וכך MLIR יכולה לדגם דברים כמו מערכת מסוג LLVM IR (שיש לה אגרגטים מהשורה הראשונה), הפשטות תחום חשובות עבור מאיצים המותאמים ל- ML כמו סוגים כמותיים, ואפילו מערכות מסוג Swift או Clang (אשר בנויים סביב צמתים של הצהרת Swift / Clang) בעתיד.

אם ברצונך לחבר מהדר חדש ברמה נמוכה, תיצור ניב חדש ואת ההנמכות בין הניב הגרף TensorFlow לניב שלך. זה מחליק את הדרך עבור יצרני חומרה ומהדר. אתה יכול אפילו למקד לדיאלקטים ברמות שונות באותו המודל; האופטימיזציה ברמה הגבוהה יותר תכבד את החלקים הלא מוכרים של ה- IR ותמתין לרמה נמוכה יותר שתטפל בה.