خارطة طريق StableHLO

في وقت كتابة هذا التقرير، أصبحت StableHLO جاهزة لتحل محل MHLO/HLO كواجهة لبرنامج التجميع. ويمكن إنتاجه بواسطة TensorFlow وJAX وPyTorch، كما يمكن استخدامه بواسطة XLA وIREE، كما يضم جميع الميزات العامة التي تقدمها MHLO/HLO بالإضافة إلى وظائف إضافية.

يصف هذا المستند الخطوات التالية لمشروع StableHLO، مع تصنيف العمل الجاري المنعكس في أداة تتبع المشكلات وترتيب هذا العمل إلى مُخرَجات نهائية مخططة.

الأحداث المهمة

في عام 2023، نخطط لتنفيذ اثنين من المعالم الرئيسية الكبيرة: 1) الإصدار 0.9 من StableHLO الذي سيوفّر إصدارًا أوليًا من ضمانات التوافق الأولي والopset، 2) إصدار StableHLO v1.0 الذي سيجري تحسينات ذات أولوية عالية ويبدأ في تقديم ضمانات التوافق الكامل.

سيعكس StableHLO v0.9 بروتوكول MHLO/HLO، مع تعزيز مواصفات العمليات ذات الشكل الثابت وضمانات التوافق الأولية. وفقًا لـ RFC RFC، سيوفر هذا الإصدار شهرًا واحدًا من التوافق مع الأمام والخلف. ستمكّن هذه الضمانات المتواضعة من اكتساب خبرة في تطوُّر اللهجات والسماح ببعض الوقت للتنقيح قبل أن تدخل الضمانات الكاملة حيز التنفيذ. ونخطط لطرح الإصدار 0.9 من StableHLO في الربع الأول من عام 2023.

سينفذ الإصدار 1.0 من StableHLO التحسينات ذات الأولوية العالية، بما في ذلك تعديل العقد الأمامي (بهدف أن تتضمن برامج StableHLO فقط عمليات من لهجة StableHLO، بدلاً من مزيج اللهجات الحالية والسمات غير المسجّلة) وتقديم تطبيق مرجعي. نخطط لإطلاق الإصدار 1.0 من StableHLO في النصف الثاني من عام 2023.

مسارات العمل

من أجل تنظيم التطوير نحو تحقيق المعالم الرئيسية المذكورة أعلاه، قمنا بتصنيف التذاكر في أداة تتبع المشكلات إلى مسارات عمل متعددة وربطنا مسارات العمل هذه بالمعالم الرئيسية. لا يتم تعيين عدد محدود من التذاكر (أقل من 10٪) لأي مسار عمل محدد وهي ليست جزءًا من أي معلم رئيسي محدد.

(P0) تم تخصيص مسار العمل تنفيذ التوافق لتنفيذ معيار RFC للتوافق إلى جانب حزمة اختبار التوافق. من المتوقع إنجاز معظم هذه الأعمال باستخدام الإصدار 0.9 من StableHLO، وسيتم تنفيذ باقي الخطوات باستخدام الإصدار 1.0 من StableHLO.

(P0) يتألف مسار العمل عقد الواجهة الأمامية من تنفيذ جميع الميزات التي تستخدمها الواجهات الأمامية StableHLO ولكنها غير متوفرة بعد في مواصفات StableHLO. الهدف من مسار العمل هذا هو ضمان أنّ برامج StableHLO لا تتضمّن سوى العمليات التي تستخدم لهجة StableHLO، بدلاً من مزيج اللهجات والسمات غير المسجّلة اليوم. نخطط لإنجاز جميع الأعمال أو معظمها في مسار العمل هذا بالإصدار 1.0 من StableHLO.

(P0) ينظّم مسار العمل تنفيذ المرجع العمل على تنفيذ مترجم لجميع عمليات StableHLO على النحو المحدد في مواصفات StableHLO. نخطط لإنجاز جميع الأعمال أو معظمها في مسار العمل هذا بالإصدار 1.0 من SttableHLO.

(مستوى الأولوية P0) يتم تخصيص مسار عمل التوثيق لتقديم جميع المعلومات التي قد يحتاجها منتجو StableHLO أو المستهلكون. مواصفات StableHLO هي أحد المُخرَجات النهائية الرئيسية، وكذلك مرجعًا لتنسيق واجهة برمجة تطبيقات StableHLO وتسلسل StableHLO. سيتم تقديم الأجزاء المهمة من سير العمل باستخدام الإصدار 1.0 من StableHLO، مع معالجة العناصر ذات الأولوية المنخفضة بشكل منتظم.

(مستوى الأولوية P1) يتكوّن مسار العمل حول حزمة المطابقة من تقديم حزمة اختبار تقارن بين تنفيذ المرجع وعمليات التنفيذ التي توفرها خلفيات StableHLO. ستوفر اختبارات تنفيذ المرجع مجموعة مطابقة من الأنواع، لذلك ليس لهذا المسار العمل أولوية P0. ومع ذلك، من المرجح أن تكون تعزيز هذه المجموعة بحالات اختبار إضافية مثيرة للاهتمام مجالًا مفيدًا للعمل المستقبلي.

(مستوى الأولوية P1) يضمن مسار العمل الامتثال للمواصفات تنفيذ عمليات StableHLO بالكامل بلغة StableHLO كما هو موضح في مواصفات StableHLO. لغة StableHLO متوافقة بالفعل بشكل معقول، لذلك لا تكون الأولوية P0 لهذا المسار للعمل، ولكن لا تزال هناك الكثير من العناصر الثانوية (خاصة في الحالات الزاوية لتنفيذ أداة التحقق) وستتم معالجتها على أساس منتظم.

(P1) يختتم مسار عمل الميزات الجديدة خارطة طريق StableHLO ويتكون من مجموعة من الوظائف الجديدة لتشغيل StableHLO (وليس لهجة StableHLO أو روابط StableHLO - التي من الممكن أن تكون مسارات عمل أخرى). تم التخطيط لتقديم عدد قليل من هذه الميزات الجديدة في الإصدار 1.0 من StableHLO، لكن معظمها حاليًا عناصر ذات أولوية أقل وليست جزءًا من أي معلم رئيسي محدد.

(P1) يتم تخصيص مسار عمل Public API لتقديم روابط C/C++/Python للهجة StableHLO. تعد ارتباطات C++/Python الحالية معقولة إلى حد ما، لذلك فإن مسار العمل هذا ليس له أولوية P0. ومع ذلك، لا يزال هناك قدر كبير من العمل الذي يجب إنجازه، خاصةً في ما يتعلق بتوفير الاستقرار لهذه الروابط، وهو شيء لا يشمله حاليًا المعيار RFC للتوافق، ولكن من المحتمل أن يكون مجالاً مفيدًا للعمل المستقبلي.