VHLO चेकलिस्ट

वीएचएलओ के बारे में जानकारी के लिए vhlo.md पर जाएं.

असंगत बदलावों का योगदान

साथ काम करने से जुड़ी शर्तों वाले सभी बदलावों को आरएफ़सी प्रोसेस से गुज़रना होगा. इसमें किसी सुविधा को जोड़ना, बंद करना या उसका नाम बदलना शामिल है. एक बार आरएफ़सी के बराबर हो जाने पर स्वीकार किया जाता है, तो नीचे दिए गए चरणों को पूरा करना ज़रूरी है:

1. Version.h में वर्शन नंबर बंप करें और वर्शन लॉग अपडेट करें

VHLO ऑपरेशन, एट्रिब्यूट, टाइप या कन्वर्ज़न को अपडेट करने से पहले, Version.h में माइनर वर्शन नंबर, और वर्शन लॉग इन VhloDialect.td अपडेट करें

VHLO की जोड़ी गई किसी भी नई सुविधा में, बंप किए गए इस वर्शन का इस्तेमाल किया जाएगा. उदाहरण के लिए, इसके बाद बंपिंग 0.10.0 --> 0.11.0, VhloOps.td में एक नया ऑपरेशन इस्तेमाल करेगा:

VHLO_Op<"abs_v2", "0.11.0", "current">

2. ज़रूरी VHLO लागू करने और कन्वर्ज़न जोड़ने की सुविधा

किसी नई सुविधा को इंटिग्रेट करने के लिए अलग-अलग कोड की ज़रूरत होगी. हालांकि, ज़्यादातर मामलों में हिस्सा, नीचे दी गई चीज़ों में बदलाव करेगा:

  • नए ऑपरेशन के लिए:
    1. VhloOps.td में सेशन जोड़ें
    2. StablehloLegalizeToVhlo.cpp में StableHLO → VHLO कन्वर्ज़न जोड़ें
    3. VhloLegalizeToStablehlo.cpp में, VHLO → StableHLO कन्वर्ज़न जोड़ें
  • मौजूदा ऑपरेशन के नए वर्शन के लिए:
    1. VhloOps.td में सेशन जोड़ें
    2. MapStablehloToVhlo.h में StableHLO की मैपिंग को VHLO में अपडेट कर दें
    3. VhloToVersion.cpp में नए और पुराने op वर्शन के बीच कन्वर्ज़न जोड़ें
  • नए टाइप या एट्रिब्यूट के लिए:
    1. VhloTypes.td में टाइप जोड़ें या VhloAttrs.td एट्रिब्यूट
    2. StablehloLegalizeToVhlo.cpp में StableHLO → VHLO कन्वर्ज़न जोड़ें
    3. VhloLegalizeToStablehlo.cpp में, VHLO → StableHLO कन्वर्ज़न जोड़ें

3. यूनिट टेस्ट जोड़ें / अपडेट करें

असंगत बदलाव का योगदान देने वाला सकारात्मक और सुविधा की नेगेटिव यूनिट टेस्ट और कंपैटबिलिटी यूनिट की जांच की सुविधा.

कंपैटिबिलिटी यूनिट की जांच में stablehlo_legalize_to_vhlo.mlir को अपडेट करना शामिल है ताकि StableHLO के नए वर्शन की मदद से दोतरफ़ा यात्रा को भी पक्का किया जा सके साथ ही, यह भी पता करना होगा कि आगे और पीछे, अपने-आप काम करने की सुविधा की ज़रूरत है या नहीं. उदाहरण के लिए, अगर Y = X - 1 के साथ X वर्शन पर एक नया सेशन जोड़ना है, तो इस तरह की कोई टेस्ट फ़ाइल जोड़ें vhlo_to_version_downgrade_invalid.0_Y_0.mlir से पता चलता है कि एपीआई की सुविधा काम नहीं करती वर्शन X से पहले होना चाहिए. अगर किसी सेशन का नया वर्शन जोड़ा जा रहा है, तो vhlo_to_version_downgrade.0_Y_0.mlir से पता चलता है कि ऑपरेटर की सदस्यता को डाउनग्रेड किया जा सकता है का इस्तेमाल किया जा सकता है.

अगर आपके सेशन में डिफ़ॉल्ट एट्रिब्यूट हैं, तो ऐसे टेस्ट शामिल करें जिनसे पता चले कि डिफ़ॉल्ट एट्रिब्यूट क्रम से लगाया गया और सही तरीके से डीसीरियलाइज़ किया गया.

4. वर्शन वाला सीरियलाइज़ेशन टेस्ट जोड़ें

stablehlo_legalize_to_vhlo.mlir में टेस्ट जोड़ने के बाद, वर्शन वाले टेस्ट को कॉपी करें सबसे बड़े वर्शन वाली फ़ाइल को नए वर्शन में नई फ़ाइल में ट्रांसफ़र करें, और नए टेस्ट भी कर सकते हैं. आपको एक असोसिएटेड ऐसेट भी बनानी होगी stablehlo-translate का इस्तेमाल करने वाली बाइटकोड फ़ाइल:

export TARGET_VERSION=1.X.0
export TARGET_FILENAME=${TARGET_VERSION//./_}
stablehlo-translate --serialize --target=$TARGET_VERSION --strip-debuginfo stablehlo/tests/vhlo/stablehlo_legalize_to_vhlo.$TARGET_FILENAME.mlir > stablehlo/tests/vhlo/stablehlo_legalize_to_vhlo.$TARGET_FILENAME.mlir.bc