نقشه راه StableHLO

در زمان نگارش، StableHLO آماده است تا MHLO/HLO را به عنوان رابط کامپایلر جایگزین کند. می توان آن را توسط TensorFlow، JAX و PyTorch تولید کرد، می توان آن را توسط XLA و چندین پلاگین 3p PJRT مصرف کرد و دارای تمام ویژگی های عمومی ارائه شده توسط MHLO/HLO و همچنین قابلیت های اضافی است.

این سند گام‌های بعدی پروژه StableHLO را تشریح می‌کند، کار در حال انجام منعکس‌شده در ردیاب موضوع را دسته‌بندی می‌کند و این کار را به تحویل‌های برنامه‌ریزی‌شده مرتب می‌کند.

نقاط عطف فعلی

نقاط عطف فعلی ما از دو روند اصلی پیروی می کند:

  1. مزایای StableHLO را برای کل جامعه OpenXLA به حداکثر برسانید.
  2. تجربه توسعه دهنده را برای همه اعضای OpenXLA یکپارچه کنید.
  • منسوخ شدن MHLO : در Q4'24 ما شروع به کاوش در حذف داخلی MHLO کرده‌ایم، و پاس‌های مفیدی از جمله قانونی‌سازی و الگوهای پوشه را به StableHLO منتقل می‌کنیم. هنگامی که فرآیند مهاجرت در داخل ثابت شد، ما قصد داریم RFC را با جدول زمانی برای مهاجرت های خارجی به StableHLO به اشتراک بگذاریم. این احتمالاً در Q1'25 اتفاق خواهد افتاد و ما قصد داریم به تیم‌ها زمان و حمایت کافی بدهیم تا در H1'25 به StableHLO مهاجرت کنند.
  • بهینه‌سازی‌های مستقل از سخت‌افزار را به StableHLO منتقل کنید : با پیروی از روند بالا، ما می‌خواهیم StableHLO بهترین مکان برای ادغام ساده‌سازی‌های نمودار مستقل از سخت‌افزار باشد، به طوری که همه پلاگین‌های PJRT از جمله آنهایی که از StableHLO به یک IR کامپایلر غیر XLA تبدیل می‌شوند، بتوانند حداکثر مزایا را ببینند. بخشی از این هدف شامل ادغام الگوهای مورد استفاده در Google AI Edge ، پروژه JAX-Enzyme و سایر پروژه‌ها در مخزن StableHLO است. برخی از این ادغام قبلاً آغاز شده است، اما جریان کار تا حد زیادی در Q1'25 تکمیل و تکمیل خواهد شد.
  • کامپوننت‌سازی OpenXLA : ما شروع به ایجاد اجزای اختصاصی در openxla/xla برای HLO کرده‌ایم که شبیه به راه‌اندازی مخزن StableHLO ( مراجعه ) است، و همچنین شروع به جابجایی همه پشتیبان‌های OpenXLA در پشت پلاگین‌های PJRT کرده‌ایم. ما علاوه بر این در حال سرمایه‌گذاری در رفع مشکلات UX برجسته‌ای که در این افزونه‌های PJRT کشف می‌کنیم، از جمله مواردی مانند داشتن ارتباط دقیق نسخه StableHLO در افزونه‌های StableHLO هستیم، بنابراین ویژگی‌های جدید می‌توانند بلافاصله توسط افزونه‌های جدید استفاده شوند ( مراجعه کنید ).
  • کارکرد کامپوزیت ها e2e : در Q3'24 ما کامپوزیت ها را به HLO اضافه کردیم و امکان پشتیبانی کامل از پشته کامپایلر را برای انتزاع ها فراهم کردیم. در Q4'24 ما به XLA داخلی در مورد کامپوزیت ها آموزش دادیم و پاس هایی را در HLO/StableHLO اضافه کردیم تا کامپوزیت های ناشناخته را با تجزیه آنها درون خطی کنیم. ما اکنون در حال بررسی اضافه کردن API های اختصاصی JAX برای تولید کامپوزیت ها از چارچوب هستیم (API های PyTorch در حال حاضر وجود دارد)، و همچنین افزودن اسناد Colab در مورد نحوه استفاده صحیح از کامپوزیت ها، که در Q4'24 تکمیل می شود.

نقاط عطف گذشته

در H1 2024، ما StableHLO نسخه 1.0 را منتشر کردیم که بهبودهایی با اولویت بالا، از جمله تکمیل مشخصات opset عمومی، مفسر مرجع، توسعه سازگاری رو به جلو و عقب برای پشتیبانی از استقرار روی دستگاه با آزمایش واحد سازگاری، توسعه پذیری از طریق عملیات ترکیبی، مشخصات، را منتشر کردیم. پشتیبانی ed dynamism، مجموعه کامل داده‌های آزمایشی را با نتایج طلایی ارزیابی شده منتشر کرد و موارد دیگر.