Google I / O از 18 تا 20 مه بازگشت دارد! فضا را ذخیره کنید و برنامه خود را بسازید اکنون ثبت نام کنید

MLIR

بررسی اجمالی

MLIR یا چند سطح نمایش متوسط ​​، یک قالب نمایش و کتابخانه از ابزارهای کامپایلر است که بین نمایندگی مدل و کامپایلرها / مجریان سطح پایین که کد اختصاصی سخت افزار را تولید می کنند ، قرار دارد.

MLIR ، در قلب خود ، یک زیرساخت انعطاف پذیر برای کامپایلرهای بهینه سازی مدرن است. این به این معنی است که از مشخصات نمایندگی های میانی (IR) و یک مجموعه ابزار کد برای انجام تحولات در آن نمایش تشکیل شده است. (در اصطلاح کامپایلر ، هنگامی که از نمایش های سطح بالاتر به نمایندگی های سطح پایین می روید ، می توان این تغییرات را "کاهش" نامید)

MLIR به شدت تحت تأثیر LLVM قرار گرفته و از بسیاری از ایده های عالی آن استفاده می کند. این سیستم دارای یک سیستم نوع انعطاف پذیر است ، و امکان نمایش ، تجزیه و تحلیل و تبدیل نمودارها را با ترکیبی از چندین سطح انتزاع در همان واحد تلفیقی فراهم می کند. این انتزاعات شامل عملیات TensorFlow ، مناطق حلقه چند وجهی تو در تو ، و حتی دستورالعمل های LLVM و عملیات سخت افزاری ثابت و انواع مختلف آن می باشد.

ما انتظار داریم MLIR مورد توجه بسیاری از گروه ها باشد ، از جمله:

  • محققان و مجریان تدوین کننده به دنبال بهینه سازی عملکرد و مصرف حافظه مدل های یادگیری ماشین هستند
  • سازندگان سخت افزار به دنبال راهی برای اتصال سخت افزار خود به TensorFlow مانند TPU ، سخت افزار عصبی قابل حمل در تلفن ها و سایر ASIC های سفارشی هستند
  • افرادی که پیوندهای زبانی را می نویسند و می خواهند از بهینه سازی کامپایلرها و شتاب سخت افزاری استفاده کنند.

اکوسیستم TensorFlow شامل تعدادی کامپایلر و بهینه ساز است که در چندین سطح از نرم افزار و سخت افزار کار می کنند. ما انتظار داریم که تصویب تدریجی MLIR همه جنبه های این پشته را ساده کند.

نمودار MLIR