نقشه راه StableHLO

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

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

نقاط عطف

در سال 2023، ما در حال برنامه ریزی دو نقطه عطف بزرگ هستیم: 1) StableHLO v0.9 که نسخه اولیه opset و ضمانت های سازگاری اولیه را ارائه می دهد، 2) StableHLO v1.0 که بهبودهای با اولویت بالا را اجرا می کند و شروع به ارائه تضمین های سازگاری کامل می کند.

StableHLO نسخه 0.9 منعکس کننده MHLO/HLO است که با مشخصاتی برای عملیات استاتیک شکل و ضمانت‌های سازگاری اولیه تقویت شده است. با توجه به RFC سازگاری ، این نسخه 1 ماه سازگاری رو به جلو و عقب را ارائه می دهد. این ضمانت‌های متوسط، کسب تجربه در مورد تکامل گویش را امکان‌پذیر می‌سازد و قبل از اجرایی شدن ضمانت‌های کامل، مدتی برای پاکسازی زمان می‌گذارد. ما در حال برنامه ریزی برای انتشار StableHLO نسخه 0.9 در سه ماهه اول 2023 هستیم.

StableHLO نسخه 1.0 بهبودهای با اولویت بالا را اجرا می کند، از جمله پاکسازی قرارداد frontend (با این هدف که برنامه های StableHLO فقط شامل عملیات هایی از گویش StableHLO به جای ترکیبی از گویش ها و ویژگی های ثبت نشده امروزی باشد) و ارائه یک پیاده سازی مرجع. ما در حال برنامه ریزی برای انتشار StableHLO نسخه 1.0 در H2 2023 هستیم.

جریان های کاری

به منظور سازماندهی توسعه به سمت نقاط عطف فوق الذکر، ما بلیط های موجود در ردیاب صدور را به چندین جریان کاری دسته بندی کرده ایم و این جریان های کاری را به مایل استون ها گره می زنیم. تعداد محدودی بلیط (کمتر از 10٪) به هیچ جریان کاری خاصی اختصاص داده نمی شود و بخشی از نقطه عطف خاصی نیست.

(P0) جریان کاری Compatibility Implementation به پیاده سازی RFC سازگاری همراه با مجموعه تست سازگاری اختصاص دارد. انتظار می‌رود که بیشتر این کار در StableHLO نسخه 0.9 تکمیل شود و بقیه در StableHLO v1.0 انجام شود.

(P0) جریان کاری قرارداد Frontend شامل اجرای 100٪ از ویژگی هایی است که توسط فرانت اندهای StableHLO استفاده می شود اما هنوز در مشخصات StableHLO نیستند. هدف این جریان کاری این است که اطمینان حاصل شود که برنامه های StableHLO فقط شامل عملیات هایی از گویش StableHLO هستند، نه ترکیبی از گویش ها و ویژگی های ثبت نشده امروزی. ما در حال برنامه ریزی برای تکمیل تمام یا تقریباً تمام کارهای این جریان کاری در StableHLO v1.0 هستیم.

(P0) جریان کاری Reference Implementation کار پیاده سازی مفسر را برای 100% عملیات StableHLO همانطور که در مشخصات StableHLO تعریف شده است، سازماندهی می کند. ما در حال برنامه ریزی برای تکمیل تمام یا تقریباً تمام کارهای این جریان کاری در StableHLO v1.0 هستیم.

(P0) جریان کاری Documentation به ارائه تمام اطلاعاتی که ممکن است تولیدکنندگان یا مصرف کنندگان StableHLO به آن نیاز داشته باشند اختصاص داده شده است. مشخصات StableHLO یک قابل تحویل اصلی و همچنین مرجعی برای StableHLO API و فرمت سریال StableHLO است. بخش‌های حیاتی جریان کاری در StableHLO نسخه 1.0 ارائه می‌شوند و موارد با اولویت پایین‌تر به‌صورت متوالی پرداخته می‌شوند.

(P1) جریان کاری Conformance Suite شامل ارائه یک مجموعه آزمایشی است که پیاده سازی مرجع را با پیاده سازی های ارائه شده توسط Backends StableHLO مقایسه می کند. آزمایش‌های پیاده‌سازی مرجع، مجموعه‌ای از انطباق را ارائه می‌دهند، بنابراین این جریان کاری اولویت P0 ندارد. با این حال، تقویت بیشتر این مجموعه با موارد آزمایشی جالب دیگر احتمالاً منطقه مفیدی برای کارهای آینده خواهد بود.

(P1) جریان کاری Specification Compliance تضمین می کند که 100٪ از عملیات StableHLO در گویش StableHLO همانطور که در مشخصات StableHLO تعریف شده است، پیاده سازی می شود. گویش StableHLO در حال حاضر به طور معقولی منطبق است، بنابراین این جریان کاری اولویت P0 ندارد، اما بسیاری از موارد جزئی هنوز باقی مانده اند (به ویژه در موارد گوشه ای از اجرای تأیید کننده) و به صورت متوالی به آنها رسیدگی خواهد شد.

(P1) جریان کاری New Features نقشه راه StableHLO را به پایان می‌رساند و شامل مجموعه‌ای از قابلیت‌های جدید برای Opset StableHLO است (نه گویش StableHLO یا اتصالات StableHLO - که جریان‌های کاری دیگر هستند). تعدادی از این ویژگی‌های جدید برای ارائه در StableHLO نسخه 1.0 برنامه‌ریزی شده‌اند، اما اکثر آنها در حال حاضر موارد با اولویت پایین‌تری هستند که بخشی از هیچ نقطه عطف خاصی نیستند.

(P1) جریان کاری Public API به ارائه پیوندهای C/C++/Python برای گویش StableHLO اختصاص دارد. پیوندهای موجود C++/Python در حال حاضر نسبتاً معقول هستند، بنابراین این جریان کاری اولویت P0 ندارد. با این حال، هنوز کارهای زیادی باید انجام شود، به ویژه در مورد ایجاد ثبات برای این اتصالات - چیزی که در حال حاضر توسط RFC سازگاری پوشش داده نمی شود، اما احتمالاً یک منطقه مفید برای کارهای آینده خواهد بود.