ملخص
MLIR، أو التمثيل الوسيط متعدد المستويات، هو تنسيق تمثيل ومكتبة لأدوات مساعدة للمترجم تقع بين تمثيل النموذج والمترجمين/المنفذين منخفضي المستوى الذين يقومون بإنشاء تعليمات برمجية خاصة بالأجهزة.
تعد MLIR، في جوهرها، بنية تحتية مرنة للمترجمين الأمثل الحديثين. وهذا يعني أنه يتكون من مواصفات للتمثيلات المتوسطة (IR) ومجموعة أدوات التعليمات البرمجية لإجراء التحويلات على هذا التمثيل. (في لغة المترجم، أثناء انتقالك من تمثيلات المستوى الأعلى إلى تمثيلات المستوى الأدنى، يمكن أن تسمى هذه التحويلات "التخفيضات")
يتأثر MLIR بشكل كبير بـ LLVM ويعيد استخدام العديد من الأفكار الرائعة منه بلا خجل. يحتوي على نظام كتابة مرن، ويسمح بتمثيل وتحليل وتحويل الرسوم البيانية التي تجمع بين مستويات متعددة من التجريد في نفس وحدة التجميع. تتضمن هذه التجريدات عمليات TensorFlow، ومناطق حلقة متعددة السطوح المتداخلة، وحتى تعليمات LLVM وعمليات وأنواع الأجهزة الثابتة.
نتوقع أن يكون MLIR موضع اهتمام العديد من المجموعات، بما في ذلك:
- يتطلع الباحثون والمنفذون المترجمون إلى تحسين الأداء واستهلاك الذاكرة لنماذج التعلم الآلي
- يبحث صانعو الأجهزة عن طريقة لربط أجهزتهم بـ TensorFlow، مثل أجهزة TPU والأجهزة العصبية المحمولة في الهواتف وغيرها من أجهزة ASIC المخصصة
- الأشخاص الذين يكتبون روابط اللغة ويريدون الاستفادة من تحسين المترجمين وتسريع الأجهزة.
يحتوي النظام البيئي TensorFlow على عدد من المترجمين والمحسنين الذين يعملون على مستويات متعددة من مجموعة البرامج والأجهزة. نتوقع أن يؤدي الاعتماد التدريجي لـ MLIR إلى تبسيط كل جانب من جوانب هذه المكدس.