Megascale Stats Tool

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

Megascale Stats टूल में दिखाई गई सभी मेट्रिक, हर टीपीयू के हिसाब से जनरेट की जाती हैं.

इन प्लैटफ़ॉर्म पर काम करती हैं

Megascale Stats टूल सिर्फ़ टीपीयू पर काम करता है.

यह टूल, टीपीयू स्लाइस के बीच कम्यूनिकेशन से जुड़ी मेट्रिक दिखाता है. इसमें ये कार्रवाइयां शामिल हैं:

  • send: यह होस्ट को डायरेक्ट मेमोरी ऐक्सेस (डीएमए) शुरू करने के लिए इंटरप्ट करता है. साथ ही, होस्ट को भरा हुआ बफ़र उपलब्ध कराता है, ताकि वह डेटा ट्रांसफ़र शुरू कर सके.
  • send-done: इससे होस्ट को यह सूचना मिलती है कि डेटा ट्रांसफ़र हो गया है.
  • recv: यह होस्ट के लिए एक खाली बफ़र उपलब्ध कराता है, ताकि वह ट्रांसफ़र किए गए डेटा को भर सके.
  • recv-done: इससे होस्ट को यह सूचना मिलती है कि डेटा मिल गया है.

कलेक्शन को send ऑपरेशन से शुरू किया जाता है और recv-done ऑपरेशन से पूरा किया जाता है. डेटा भेजने की प्रोसेस, send ऑपरेशन पूरा होने के बाद शुरू होती है. send-done की प्रोसेस, डेटा भेजे जाने के बाद होती है. इसी तरह, recv ऑपरेशन पूरा होने के बाद डेटा मिलता है. recv-done की प्रोसेस, डेटा मिलने के बाद होती है.

इंटरफ़ेस कॉम्पोनेंट

यह टूल, नीचे दिए गए कॉलम वाली एक टेबल दिखाता है. इसमें प्रोफ़ाइल किए गए हर सामूहिक ऑपरेशन के लिए एक लाइन होती है:

  • DCN का सामूहिक नाम: इसे XLA असाइन करता है.
  • Recv op name: TPU recv-done ऑपरेशन का नाम. इससे, टीपीयू के एक साथ किए गए ऑपरेशन से जुड़े Trace Viewer को आसानी से खोजा जा सकता है.
  • कार्रवाई का नाम भेजें: यह TPU send कार्रवाई का नाम है.
  • स्लैक टाइम: इसे नेटवर्क से अलग उस समय के तौर पर तय किया जाता है जिसमें ग्रुप को डेटा ट्रांसमिट करना होता है. इससे यह पता चलता है कि डेटा भेजने और पाने के लिए, ग्रुप के पास कितना समय है. इसमें send, send-done, recv या recv-done कार्रवाइयां शामिल नहीं हैं. स्लैक टाइम बढ़ाने से, किसी कलेक्टिव के लिए टीपीयू के रुकने की संभावना कम हो जाती है. उदाहरण के लिए, यहां दी गई टाइमलाइन देखें:

स्लैक टाइम दिखाने वाली टाइमलाइन

Slack time is calculated in this example as:

Slack time = t<sub>1</sub> + t<sub>2</sub> + t<sub>3</sub>
  • देखी गई अवधि: यह हर ग्रुप के लिए देखी गई अवधि होती है. इसकी गिनती, send ऑपरेशन शुरू होने से लेकर उससे जुड़े recv-done ऑपरेशन के खत्म होने तक के समय के तौर पर की जाती है. इसमें डेटा भेजने और पाने में लगने वाला समय भी शामिल होता है. उदाहरण के लिए, इस टाइमलाइन को देखें:

टाइमलाइन में, वीडियो देखने में बिताया गया समय दिखाया गया है

Observed duration is calculated as:

Observed duration = t<sub>send</sub> + t<sub>1</sub> + t<sub>send-done</sub> + t<sub>2</sub> + t<sub>recv</sub> + t<sub>3</sub> + t<sub>recv-done</sub>
  • स्टॉल की अवधि: यह वह समय होता है जब कलेक्टिव, टीपीयू को स्टॉल करता है. यह send, send-done, recv, और recv-done ऑपरेशनों में बिताए गए कुल समय को दिखाता है. इसमें डेटा ट्रांसफ़र करने में लगा समय शामिल नहीं होता. उदाहरण के लिए, इस टाइमलाइन को देखें:

स्टॉल की अवधि दिखाने वाली टाइमलाइन

Stall duration is calculated in this example as:

Stall duration = t<sub>send</sub> + t<sub>send-done</sub> + t<sub>recv</sub> + t<sub>recv-done</sub>
  • बार-बार होने की संख्या: किसी प्रोफ़ाइल की अवधि के दौरान, किसी सामूहिक गतिविधि को शुरू और पूरा किए जाने की कुल संख्या. send ऑपरेशन और इससे मेल खाने वाला recv-done ऑपरेशन, प्रोफ़ाइल की अवधि के दौरान होना चाहिए. ऐसा होने पर ही, इन्हें इस मेट्रिक में शामिल किया जाएगा.
  • एग्रीगेट किया गया कुल स्टॉल: प्रोफ़ाइल बनाने की अवधि के दौरान, किसी टीपीयू को सामूहिक तौर पर स्टॉल करने में लगने वाला कुल समय. एग्रीगेशन के कुल स्टॉल की गिनती इस तरह की जाती है:
    • एग्रीगेट किया गया कुल स्टॉल = स्टॉल की अवधि * स्टॉल की संख्या
  • ट्रांसमिट किए गए डेटा का साइज़: यह नेटवर्क पर ट्रांसमिट किए गए डेटा की वह मात्रा है जिसे XLA ऑपरेशन के आधार पर कैलकुलेट किया जाता है.
  • ज़रूरी बैंडविड्थ: डेटा को दिए गए समय में ट्रांसमिट करने के लिए ज़रूरी बैंडविड्थ. इस मेट्रिक का इस्तेमाल करके, यह देखा जा सकता है कि प्रोफ़ाइल की अवधि के दौरान, नेटवर्क बैंडविड्थ के लिए कितने कलेक्टिव प्रतिस्पर्धा कर रहे हैं. ज़रूरी बैंडविड्थ का हिसाब इस तरह लगाया जाता है:
    • ज़रूरी बैंडविड्थ = ट्रांसमिट किए गए डेटा का साइज़ / स्लैक टाइम

मेगास्केल के आंकड़ों से जुड़े टूल के डेटा का विश्लेषण करना

टूल में मौजूद डेटा का विश्लेषण करने के लिए:

  1. टेबल को Aggregated Total Stall के हिसाब से घटते क्रम में लगाएं.
  2. सबसे ज़्यादा Aggregated Total Stall वाले डीसीएन के ग्रुप का नाम पहचानें. अन्य वैल्यू की तुलना में काफ़ी ज़्यादा वैल्यू, बॉटलनेक की समस्या का संकेत दे सकती है.
  3. डीएनसी कलेक्टिव के Required Bandwidth को कोर की संख्या से गुणा करें. उदाहरण के लिए, हर v4 टीपीयू होस्ट के लिए 8). अगर यह वैल्यू, टीपीयू के ज़्यादा से ज़्यादा नेटवर्क बैंडविड्थ से ज़्यादा है, तो इससे नेटवर्क में रुकावट का पता चल सकता है. ज़रूरी बैंडविथ को कम करने के लिए, शार्डिंग के तरीके में बदलाव करके देखें.
  4. कंपाइलर से जुड़ी समस्याओं की जांच करने के लिए, HLO डंप जनरेट करें. send और recv-done कार्रवाइयों को अलग-अलग करने से, ज़्यादा ओवरलैपिंग एचएलओ कार्रवाइयों को शेड्यूल किया जा सकता है. साथ ही, टीपीयू के रुकने का समय कम किया जा सकता है.
  5. Trace Viewer में, सबसे ज़्यादा एग्रीगेट किए गए स्टॉल वाले ग्रुप के लिए, recv-done कार्रवाइयों की अवधि देखें. डेटा ट्रांसफ़र में ज़्यादा समय लगने का मतलब है कि बैंडविड्थ कम है, क्योंकि recv-done कार्रवाइयां आम तौर पर नेटवर्क पर ब्लॉक होती हैं.
  6. अगर recv-done कार्रवाइयों की अवधि, स्लैक टाइम की तुलना में बहुत ज़्यादा नहीं है, तो हो सकता है कि हार्डवेयर में कोई समस्या हो.