MLIR

ملخص

MLIR ، أو التمثيل الوسيط متعدد المستويات ، هو تنسيق تمثيل ومكتبة لأدوات المترجم المساعدة التي تقع بين تمثيل النموذج والمجمعين / المنفذين ذوي المستوى المنخفض الذين ينشئون رمزًا خاصًا بالأجهزة.

تعد MLIR ، في جوهرها ، بنية تحتية مرنة لمجمعات التحسين الحديثة. هذا يعني أنه يتكون من مواصفات للتمثيلات الوسيطة (IR) ومجموعة أدوات التعليمات البرمجية لإجراء تحويلات على هذا التمثيل. (في لغة المترجم ، عندما تنتقل من التمثيلات ذات المستوى الأعلى إلى التمثيلات ذات المستوى الأدنى ، يمكن تسمية هذه التحولات بـ "التخفيضات")

يتأثر MLIR بدرجة كبيرة بـ LLVM ويعيد استخدام العديد من الأفكار الرائعة منه دون خجل. يحتوي على نظام نوع مرن ، ويسمح بتمثيل وتحليل وتحويل الرسوم البيانية التي تجمع بين مستويات متعددة من التجريد في نفس وحدة التجميع. تتضمن هذه التجريدات عمليات TensorFlow ومناطق حلقة متعددة السطوح متداخلة وحتى تعليمات LLVM وعمليات وأنواع الأجهزة الثابتة.

نتوقع أن يكون MLIR محل اهتمام العديد من المجموعات ، بما في ذلك:

  • الباحثون والمنفذون المترجمون الذين يتطلعون إلى تحسين الأداء واستهلاك الذاكرة لنماذج التعلم الآلي
  • يبحث صانعو الأجهزة عن طريقة لتوصيل أجهزتهم بـ TensorFlow ، مثل TPU ، والأجهزة العصبية المحمولة في الهواتف ، وغيرها من أجهزة ASIC المخصصة
  • الأشخاص الذين يكتبون روابط اللغة التي ترغب في الاستفادة من تحسين المجمعين وتسريع الأجهزة.

يحتوي نظام TensorFlow البيئي على عدد من المجمعين والمحسّنين الذين يعملون على مستويات متعددة من مكدس البرامج والأجهزة. نتوقع أن يؤدي الاعتماد التدريجي لـ MLIR إلى تبسيط كل جانب من جوانب هذه المجموعة.

مخطط نظرة عامة على MLIR