StableHLO रोडमैप

लेख लिखने के समय, StableHLO, कंपाइलर इंटरफ़ेस के तौर पर MHLO/HLO की जगह ले सकता है. इसे TensorFlow, JAX, और PyTorch से जनरेट किया जा सकता है. साथ ही, XLA और तीसरे पक्ष के कई PJRT प्लग इन इसका इस्तेमाल कर सकते हैं. इसमें MHLO/HLO की सभी सार्वजनिक सुविधाओं के साथ-साथ अन्य सुविधाएं भी मौजूद हैं.

इस दस्तावेज़ में, StableHLO प्रोजेक्ट के लिए अगले चरणों के बारे में बताया गया है. इसमें, समस्या ट्रैकर में दिख रहे मौजूदा काम को अलग-अलग कैटगरी में बांटा गया है और इस काम को, तय किए गए डिलीवर किए जाने वाले आइटम में व्यवस्थित किया गया है.

मौजूदा माइलस्टोन

हमारे मौजूदा माइलस्टोन दो मुख्य रुझानों के हिसाब से हैं:

  1. OpenXLA की पूरी कम्यूनिटी के लिए, StableHLO का ज़्यादा से ज़्यादा फ़ायदा पाएं.
  2. OpenXLA के सभी सदस्यों के लिए, डेवलपर एक्सपीरियंस को एक जैसा बनाएं.
  • MHLO का इस्तेमाल बंद करना: हमने साल 2024 की चौथी तिमाही में, MHLO का इस्तेमाल बंद करने की प्रोसेस शुरू कर दी है. इसके तहत, हम फ़ोल्डर पैटर्न और कैननिकल बनाने की प्रोसेस जैसे काम के पास को StableHLO पर माइग्रेट कर रहे हैं. जब माइग्रेशन की प्रोसेस को इंटरनल तौर पर आसान माना जाएगा, तब हम StableHLO पर बाहरी माइग्रेशन के लिए, टाइमलाइन के साथ आरएफ़सी शेयर करेंगे. ऐसा होने की संभावना, 2025 की पहली तिमाही में है. हम टीमों को 2025 की पहली छमाही में, StableHLO पर माइग्रेट करने के लिए ज़रूरत के मुताबिक समय और सहायता देंगे.
  • हार्डवेयर पर निर्भर न होने वाले ऑप्टिमाइज़ेशन को StableHLO पर माइग्रेट करना: ऊपर बताए गए रुझान के मुताबिक, हम चाहते हैं कि StableHLO, हार्डवेयर पर निर्भर न होने वाले ग्राफ़ को आसान बनाने के लिए सबसे अच्छी जगह हो. इससे, StableHLO से नॉन-XLA कंपाइलर आईआर में बदलने वाले सभी PJRT प्लग इन के साथ-साथ, अन्य सभी प्लग इन को ज़्यादा से ज़्यादा फ़ायदे मिल सकते हैं. इस लक्ष्य के तहत, StableHLO repo में Google AI Edge, JAX-Enzyme प्रोजेक्ट, और अन्य प्रोजेक्ट में इस्तेमाल किए गए पैटर्न को एक साथ इकट्ठा करना शामिल है. इस प्रोसेस का कुछ हिस्सा पहले ही शुरू हो चुका है. हालांकि, ज़्यादातर काम 2025 की पहली तिमाही में पूरा हो जाएगा.
  • OpenXLA को कॉम्पोनेंट में बांटना: हमने HLO के लिए, openxla/xla में खास कॉम्पोनेंट बनाने शुरू कर दिए हैं. ये कॉम्पोनेंट, StableHLO repo सेटअप (ref) से मिलते-जुलते हैं. साथ ही, हमने सभी OpenXLA बैकएंड को PJRT प्लग इन के पीछे ले जाने की प्रोसेस शुरू कर दी है. हम इन PJRT प्लग इन में यूज़र एक्सपीरियंस से जुड़ी उन समस्याओं को ठीक करने पर भी काम कर रहे हैं जो हमें मिल रही हैं. इनमें, StableHLO प्लग इन में StableHLO वर्शन के बारे में सटीक जानकारी देना शामिल है, ताकि नई सुविधाओं का इस्तेमाल नए प्लग इन (ref) में तुरंत किया जा सके.
  • कंपोज़िट को एंड-टू-एंड काम करने लायक बनाना: साल 2024 की तीसरी तिमाही में, हमने एचएलओ में कंपोज़िट जोड़े. इससे एब्स्ट्रैक्शन के लिए, कंपाइलर स्टैक की पूरी सहायता चालू हो गई. साल 2024 की चौथी तिमाही में, हमने XLA के इनलाइनर को कंपोज़िट के बारे में जानकारी दी. साथ ही, HLO/StableHLO में पास जोड़े, ताकि अनजान कंपोज़िट को उनके डिकंपोज़िशन के साथ इनलाइन किया जा सके. फ़िलहाल, हम फ़्रेमवर्क से कॉम्पोज़िट जनरेट करने के लिए, खास JAX एपीआई जोड़ने की जांच कर रहे हैं. PyTorch एपीआई पहले से मौजूद हैं. साथ ही, हम कॉम्पोज़िट का सही तरीके से इस्तेमाल करने के बारे में Colab दस्तावेज़ जोड़ रहे हैं. यह काम 2024 की चौथी तिमाही में पूरा हो जाएगा.

पिछली उपलब्धियां

साल 2024 की पहली छमाही में, हमने StableHLO v1.0 रिलीज़ किया. इसमें कई अहम सुधार किए गए हैं. जैसे, सार्वजनिक ऑपसेट स्पेसिफ़िकेशन को पूरा करना, रेफ़रंस इंटरप्रिटर, फ़ॉरवर्ड और बैकवर्ड कम्पैटिबिलिटी को बढ़ाना, ताकि डिवाइस पर डिप्लॉयमेंट के लिए कम्पैटिबिलिटी यूनिट टेस्टिंग की सुविधा मिल सके, कंपोजिट ऑपरेशन की मदद से एक्सटेंसिबिलिटी, स्पेसिफ़िकेशन के हिसाब से डाइनैमिक सुविधा, और जांचे गए गोल्डन नतीजों के साथ पूरा टेस्टडेटा सुइट रिलीज़ करना वगैरह.