StableHLO का रोडमैप

लिखते समय, StableHLO, कंपाइलर इंटरफ़ेस के तौर पर MHLO/HLO की जगह तैयार होने के लिए तैयार है. इसे TensorFlow, JAX, और PyTorch के ज़रिए बनाया जा सकता है. इसे XLA और IREE इस्तेमाल कर सकते हैं. इसमें MHLO/HLO की सभी सार्वजनिक सुविधाएँ और अतिरिक्त सुविधाएँ हैं.

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

माइलस्टोन

साल 2023 में, हम दो बड़े माइलस्टोन की योजना बना रहे हैं: 1) StableHLO v0.9 जिसमें ऑप्टसेट का शुरुआती वर्शन और साथ काम करने की शुरुआती गारंटी मिलेगी, 2) StableHLO v1.0, जिसमें हाई-प्राथमिकता सुधार लागू होगा और इसके साथ काम करने की पूरी गारंटी देना शुरू किया जाएगा.

StableHLO v0.9, MHLO/HLO की तरह काम करेगा, जिसमें स्टैटिक आकार के ऑपरेशन और साथ काम करने की शुरुआती गारंटी के साथ बताया गया है. कम्पैटबिलटी आरएफ़सी के मुताबिक, यह रिलीज़ एक महीने तक आगे और पीछे के साथ काम करने की सुविधा देगी. इस तरह की कुछ आधुनिक गारंटी से, बोली के विकास का अनुभव बेहतर होगा. साथ ही, पूरी गारंटी लागू होने से पहले इन्हें हटाने के लिए कुछ समय मिलेगा. हम साल 2023 की पहली तिमाही में StableHLO v0.9 रिलीज़ करने जा रहे हैं.

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

वर्कस्ट्रीम

ऊपर बताई गई उपलब्धियों के हिसाब से डेवलपमेंट को व्यवस्थित करने के लिए, हमने समस्या ट्रैकर में मौजूद टिकटों को एक से ज़्यादा वर्कस्ट्रीम में बांटा है. साथ ही, इन वर्कस्ट्रीम को माइलस्टोन से जोड़ा है. कुछ टिकट (10% से कम) किसी खास वर्कस्ट्रीम के लिए असाइन नहीं किए जाते हैं. साथ ही, उन्हें किसी खास माइलस्टोन का हिस्सा नहीं बनाया जाता है.

(P0) कंपैटिबिलिटी लागू करना वर्कस्ट्रीम का मकसद, कम्पैटबिलटी टेस्ट सुइट के साथ-साथ कम्पैटबिलटी आरएफ़सी को लागू करना है. उम्मीद है कि इस तरह का ज़्यादातर काम StableHLO v0.9 में पूरा हो जाएगा और बाकी को StableHLO v1.0 में पूरा कर दिया जाएगा.

(P0) फ़्रंटएंड कॉन्ट्रैक्ट वर्कस्ट्रीम में वे 100% सुविधाएं लागू की गई हैं जिनका इस्तेमाल StableHLO फ़्रंटएंड में किया जाता है, लेकिन वे अब तक StableHLO स्पेसिफ़िकेशन में शामिल नहीं हैं. इस वर्कस्ट्रीम का मकसद यह पक्का करना है कि StableHLO प्रोग्राम में सिर्फ़ StableHLO भाषा के ऑपरेशन को शामिल किया जाए, न कि आज के समय में बोलियों और रजिस्टर नहीं किए गए एट्रिब्यूट को. हम StableHLO v1.0 में उपलब्ध इस वर्कस्ट्रीम में पूरा या करीब-करीब सारा काम पूरा करने की योजना बना रहे हैं.

(P0) रेफ़रंस को लागू करने के लिए वर्कस्ट्रीम में, StableHLO की निर्देशों के मुताबिक, 100% StableHLO ऑपरेशन के लिए, इंटरप्रेटर लागू करने का काम व्यवस्थित किया जाता है. हम StableHLO v1.0 में इस वर्कस्ट्रीम में पूरा या करीब-करीब सारा काम पूरा करने की योजना बना रहे हैं.

(P0) दस्तावेज़ वर्कस्ट्रीम का मकसद, StableHLO के प्रॉडक्ट बनाने वालों या उपभोक्ताओं को ज़रूरी जानकारी देना है. StableHLO की खास बातें, डिलीवरी के लिए काफ़ी अहम हैं. साथ ही, StableHLO API और StableHLO सीरियलाइज़ेशन फ़ॉर्मैट का रेफ़रंस देना भी शामिल है. वर्कस्ट्रीम के अहम हिस्से StableHLO v1.0 में डिलीवर किए जाएंगे. साथ ही, कम प्राथमिकता वाले आइटम को रोलिंग आधार पर रखा जाएगा.

(P1) कन्फ़ॉर्मैंस सुइट वर्कस्ट्रीम में एक टेस्ट सुइट शामिल होता है. यह सुइट, StableHLO बैकएंड से उपलब्ध कराए गए लागू करने के तरीकों की तुलना करता है. रेफ़रंस लागू करने के टेस्ट से, एक तरह का कन्फ़ॉर्मैंस सुइट मिलेगा. इसलिए, इस वर्कस्ट्रीम में P0 प्राथमिकता नहीं होती. हालांकि, इस सुइट को कुछ और दिलचस्प टेस्ट केस के साथ जोड़ना, आने वाले समय में काम करने के लिए मददगार साबित हो सकता है.

(P1) स्पेसिफ़िकेशन के अनुपालन से जुड़ी वर्कस्ट्रीम यह पक्का करती है कि StableHLO डॉयलेक्ट में 100% कार्रवाईयां लागू की गई हों, जैसा कि StableHLO की खास बातों में बताया गया है. StableHLO भाषा पहले से ही सही तरीके से अनुपालन कर रही है, इसलिए इस वर्कस्ट्रीम में P0 प्राथमिकता नहीं है. लेकिन अभी भी बहुत से छोटे आइटम बचे हुए हैं (खास तौर पर, पुष्टि करने वाले के कोने वाले मामलों में) और उन पर लगातार काम किया जाएगा.

(P1) नई सुविधाएं वर्कस्ट्रीम में StableHLO रोडमैप का तैयार किया जाता है. साथ ही, इसमें StableHLO ऑप्टसेट (StableHLO डायलेक्ट या StableHLO बाइंडिंग नहीं - जो अन्य वर्कस्ट्रीम होंगी) के लिए, नई सुविधाओं का ragtag कलेक्शन शामिल होता है. इनमें से कुछ नई सुविधाओं को StableHLO v1.0 में डिलीवर करने की योजना है. हालांकि, फ़िलहाल इनमें से ज़्यादातर कम प्राथमिकता वाले आइटम हैं, जो किसी खास माइलस्टोन का हिस्सा नहीं हैं.

(P1) पब्लिक एपीआई वर्कस्ट्रीम का काम, StableHLO भाषा के लिए C/C++/Python बाइंडिंग को डिलीवर करने के लिए किया जाता है. मौजूदा C++/Python बाइंडिंग पहले से काफ़ी सही हैं, इसलिए इस वर्कस्ट्रीम में P0 प्राथमिकता नहीं है. हालांकि, इस पर अभी भी बहुत काम होना बाकी है. खास तौर पर, इन बाइंडिंग को स्थिरता देने के लिए काम करना बाकी है - जो फ़िलहाल आरएफ़सी में शामिल नहीं है, लेकिन आने वाले समय में काम करने के लिए उपयोगी हो सकता है.