-sdy-aggressive-propagate

ज़्यादा शीयरिंग वाले एल्गोरिदम को चलाता है.

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

विकल्प:

  • -keep-sharding-rules: मौजूदा और बनाए गए ऑपरेटिव शर्डिंग नियमों को बनाए रखना है या नहीं.
  • -module-dump-directory: डीबग करने के लिए, फिर से लिखे गए मॉड्यूल को कहां डंप करना है.
  • -conservative-propagation: प्रॉपेगेशन के दौरान, स्प्लिट ऐक्स और ऐसे ऐक्स के लिए अनुमति नहीं देना जिन्हें स्मॉल डेटा में बांटा नहीं जा सकता.
  • -debug-sharding-origins: MLIR मॉड्यूल पर, sharding के ऑरिजिन के बारे में जानकारी सेव करना है या नहीं. ये फ़ंक्शन के इनपुट, आउटपुट, शर्डिंग की सीमाओं, और प्रॉपेगेशन से पहले मैन्युअल कैलकुलेशन पर शर्डिंग होंगी.
  • -debug-edge-source-sharding: MLIR मॉड्यूल पर, sharding के एज सोर्स के बारे में जानकारी सेव करना है या नहीं. ये ऐसे ऑपरेंड/नतीजे हैं जिनकी वजह से कुछ ऑपरेशन के नतीजे में, sharding की सुविधा शुरू हुई.
  • -propagation-strategy: फ़ैक्टर प्रॉपेगेशन की किस रणनीति का इस्तेमाल करना है.

-sdy-basic-propagate

शर्डिंग प्रॉपेगेशन का बुनियादी एल्गोरिदम चलाता है.

बुनियादी प्रॉपेगेशन एल्गोरिदम, हैरारकी में प्रॉपेगेशन की सबसे कम रणनीति है. यह किसी भी तरह के विरोध को हल नहीं करता. इसके बजाय, यह उन ऐक्सिस को प्रॉपेगेट करता है जो सभी ऑपरेंड और नतीजों के साथ काम करते हैं.

विकल्प:

  • -keep-sharding-rules: मौजूदा और बनाए गए ऑपरेटिव शर्डिंग नियमों को बनाए रखना है या नहीं.
  • -module-dump-directory: डीबग करने के लिए, फिर से लिखे गए मॉड्यूल को कहां डंप करना है.
  • -conservative-propagation: प्रॉपेगेशन के दौरान, स्प्लिट ऐक्स और ऐसे ऐक्स के लिए अनुमति नहीं देना जिन्हें स्मॉल डेटा में बांटा नहीं जा सकता.
  • -debug-sharding-origins: MLIR मॉड्यूल पर, sharding के ऑरिजिन के बारे में जानकारी सेव करना है या नहीं. ये फ़ंक्शन के इनपुट, आउटपुट, शर्डिंग की सीमाओं, और प्रॉपेगेशन से पहले मैन्युअल कैलकुलेशन पर शर्डिंग होंगी.
  • -debug-edge-source-sharding: MLIR मॉड्यूल पर, sharding के एज सोर्स के बारे में जानकारी सेव करना है या नहीं. ये ऐसे ऑपरेंड/नतीजे हैं जिनकी वजह से कुछ ऑपरेशन के नतीजे में, sharding की सुविधा शुरू हुई.

-sdy-op-priority-propagate

ऑप्टिमाइज़ेशन की प्राथमिकता का प्रॉपेगेशन एल्गोरिदम चलाता है.

ऑपरेशन के लिए तय नियमों के सेट के आधार पर, इटरेटेशन में शर्डिंग को प्रॉपगेट करता है. हर हेयुरिस्टिक्स यह तय करता है कि किसी ऑपरेशन के लिए, डेटा को आगे, पीछे या दोनों दिशाओं में भेजना है या नहीं.

यह ऑपरेटर प्राथमिकता 0 से शुरू होता है और तब तक बढ़ता रहता है, जब तक ऑपरेटर के सभी हेयुरिस्टिक्स का इस्तेमाल नहीं हो जाता और प्रोग्राम किसी तय पॉइंट पर नहीं पहुंच जाता.

प्राथमिकता p के लिए, सभी ऑप्टिमाइज़ेशन हेयुरिस्टिक्स को 0 <= i < p के तौर पर माना जाता है. BOTH > BACKWARD == FORWARD > NONE के साथ, हर ऑपरेशन के लिए सबसे बेहतर डायरेक्शन चुना जाता है. अगर इस दौरान, पहले FORWARD/BACKWARD और फिर BACKWARD/FORWARD दिखता है, तो दिशा BOTH होगी.

प्रॉपरगेशन की यह रणनीति, तेज़ी से प्रॉपरगेशन करने की रणनीति को बढ़ाती है. इसका मतलब है कि ऑपरेशन की प्राथमिकता के हर बार दोहराए जाने पर, तेज़ी से प्रॉपरगेशन करने की पूरी रणनीति लागू की जाती है (AggressivePropagationPass देखें).

विकल्प:

  • -keep-sharding-rules: मौजूदा और बनाए गए ऑपरेटिव शर्डिंग नियमों को बनाए रखना है या नहीं.
  • -module-dump-directory: डीबग करने के लिए, फिर से लिखे गए मॉड्यूल को कहां डंप करना है.
  • -conservative-propagation: प्रॉपेगेशन के दौरान, स्प्लिट ऐक्स और ऐसे ऐक्स के लिए अनुमति नहीं देना जिन्हें स्मॉल डेटा में बांटा नहीं जा सकता.
  • -debug-sharding-origins: MLIR मॉड्यूल पर, sharding के ऑरिजिन के बारे में जानकारी सेव करना है या नहीं. ये फ़ंक्शन के इनपुट, आउटपुट, शर्डिंग की सीमाओं, और प्रॉपेगेशन से पहले मैन्युअल कैलकुलेशन पर शर्डिंग होंगी.
  • -debug-edge-source-sharding: MLIR मॉड्यूल पर, sharding के एज सोर्स के बारे में जानकारी सेव करना है या नहीं. ये ऐसे ऑपरेंड/नतीजे हैं जिनकी वजह से कुछ ऑपरेशन के नतीजे में, sharding की सुविधा शुरू हुई.
  • -propagation-strategy: फ़ैक्टर प्रॉपेगेशन की किस रणनीति का इस्तेमाल करना है.
  • -run-op-priority-propagation: ऑपरेशन की प्राथमिकता के हिसाब से प्रॉपेगेशन को चलाना है या नहीं.

-sdy-populate-op-sharding-rules

रजिस्टर किए गए सभी ऑपरेशन को OpShardingRuleAttr से पॉप्युलेट करता है.

रजिस्टर किए गए सभी ऑपरेशन को OpShardingRuleAttr से पॉप्युलेट करता है. इसका इस्तेमाल, रजिस्टर किए गए शर्डिंग नियमों को डीबग करने/जांच करने के लिए किया जाता है. प्रोपेगेशन पहले से ही, ज़रूरत के हिसाब से ऐसा करता है. हालांकि, यह पास एक साथ ऐसा करता है.

विकल्प

-conservative-propagation : whether to disllow rules that can propagate non-divisible sharding axes

-sdy-user-priority-propagate

उपयोगकर्ता की प्राथमिकता के प्रसार का एल्गोरिदम चलाता है.

यह सबसे ज़्यादा प्राथमिकता (कम से कम संख्या, आम तौर पर p0) से लेकर सबसे कम प्राथमिकता (ज़्यादा से ज़्यादा संख्या) तक, शर्डिंग को दोहराता है. दूसरे शब्दों में, i-वें दोहराव में, सिर्फ़ प्राथमिकता <=i वाली डाइमेंशन शर्डिंग का प्रचार किया जाता है.

प्रॉपेगेशन की यह रणनीति, ऑपरेशन की प्राथमिकता के हिसाब से प्रॉपेगेशन की रणनीति को बढ़ाती है. इसका मतलब है कि उपयोगकर्ता की प्राथमिकता के हिसाब से हर बार बदलाव करने पर, ऑपरेशन की प्राथमिकता के हिसाब से पूरा प्रॉपेगेशन लागू होता है (OpPriorityPropagationPass देखें).

विकल्प:

  • -keep-sharding-rules: मौजूदा और बनाए गए ऑपरेटिव शर्डिंग नियमों को बनाए रखना है या नहीं.
  • -module-dump-directory: डीबग करने के लिए, फिर से लिखे गए मॉड्यूल को कहां डंप करना है.
  • -conservative-propagation: प्रॉपेगेशन के दौरान, स्प्लिट ऐक्स और ऐसे ऐक्स के लिए अनुमति नहीं देना जिन्हें स्मॉल डेटा में बांटा नहीं जा सकता.
  • -debug-sharding-origins: MLIR मॉड्यूल पर, sharding के ऑरिजिन के बारे में जानकारी सेव करना है या नहीं. ये फ़ंक्शन के इनपुट, आउटपुट, शर्डिंग की सीमाओं, और प्रॉपेगेशन से पहले मैन्युअल कैलकुलेशन पर शर्डिंग होंगी.
  • -debug-edge-source-sharding: MLIR मॉड्यूल पर, sharding के एज सोर्स के बारे में जानकारी सेव करना है या नहीं. ये ऐसे ऑपरेंड/नतीजे हैं जिनकी वजह से कुछ ऑपरेशन के नतीजे में, sharding की सुविधा शुरू हुई.
  • -propagation-strategy: फ़ैक्टर प्रॉपेगेशन की किस रणनीति का इस्तेमाल करना है.
  • -run-op-priority-propagation: ऑपरेशन की प्राथमिकता के हिसाब से प्रॉपेगेशन को चलाना है या नहीं.