मेमोरी प्रोफ़ाइल टूल
'मेमोरी प्रोफ़ाइल' का इस्तेमाल करके, समय के साथ अपने ऐक्सेलरेटर के लिए मेमोरी के इस्तेमाल को विज़ुअलाइज़ किया जा सकता है.
इन प्लैटफ़ॉर्म पर काम करता है
TPU: काम करता है
जीपीयू: काम करता है
मेमोरी प्रोफ़ाइल टूल का इस्तेमाल करना
मेमोरी प्रोफ़ाइल में ये कॉम्पोनेंट होते हैं:
- पेज पर सबसे ऊपर मौजूद मेमोरी आईडी सिलेक्टर की मदद से, किसी एक अलग ऐक्सेलरेटर से जुड़ी हाई बैंडविड्थ मेमोरी (एचबीएम) पर फ़ोकस किया जा सकता है. यह ऐक्सेलरेटर, प्रोफ़ाइल किए जा रहे होस्ट से जुड़ा हो सकता है या कुछ मामलों में होस्ट मेमोरी से भी जुड़ा हो सकता है.
- “मेमोरी टाइमलाइन ग्राफ़” और “मेमोरी प्रोफ़ाइल की खास जानकारी” में, प्रोफ़ाइलिंग सेशन के दौरान मेमोरी के ऐलोकेशन, डिऐलोकेशन, और इस्तेमाल के बारे में बेहतर जानकारी मिलती है. इसमें स्टैक और हेप के बीच बंटवारे के साथ-साथ, फ़्रैगमेंटेशन के असर की जानकारी भी शामिल होती है.
- मेमोरी ब्रेकडाउन टेबल में, फ़्रेमवर्क-लेवल के उन ऑपरेशन के बारे में जानकारी मिलती है जो मेमोरी के इस्तेमाल में सबसे ज़्यादा योगदान देते हैं. हर ऑपरेशन के लिए, आकार, डेटा टाइप वगैरह जैसी अतिरिक्त जानकारी भी होती है. हालांकि, यह जानकारी कंपाइलर के ज़रिए XProf के लिए उपलब्ध कराई जाती है. टेबल में, प्रोफ़ाइलिंग विंडो में सबसे ज़्यादा इस्तेमाल के समय यह जानकारी दिखती है. इससे, मेमोरी खत्म होने (ओओएम) की स्थितियों को डीबग करने में मदद मिलती है.
- एलोकेशन और डीलोकेशन को XLA के रनटाइम एलोकेटर मैनेज करता है और प्रोफ़ाइल में जोड़ता है. एलोकेटर के पास पूरे HBM मेमोरी स्पेस का मालिकाना हक होता है.
- ध्यान दें कि आम तौर पर, मेमोरी प्रोफ़ाइल, TPU वर्कलोड के मुकाबले GPU प्रोफ़ाइलिंग के लिए ज़्यादा दिलचस्प और अहम होती है. आम तौर पर, TPU पर मॉडल चलाने के मॉडल में, मॉडल को ट्रेनिंग देने या अनुमान लगाने के दौरान, XLA कंपाइलर के बजाय, पहले से ज़्यादा मेमोरी का ऐलोकेशन होता है. इसलिए, आपको अक्सर यह दिखेगा कि ऐलोकेशन चार्ट, सपाट हॉरिज़ॉन्टल लाइन की तरह दिखता है. ऐसा इसलिए होता है, क्योंकि सभी ऐलोकेशन, प्रोफ़ाइल की शुरुआत में ही हो जाते हैं. हालांकि, ऐसा तब होता है, जब प्रोफ़ाइलर उस समय तक चालू हो. इस वजह से, उन्हें देखना मुश्किल हो जाता है.
- मेमोरी प्रोफ़ाइल की खास जानकारी और मेमोरी के टाइमलाइन ग्राफ़ में मौजूद फ़्रैगमेंटेशन मेट्रिक (प्रतिशत के तौर पर), मेमोरी के फ़्रैगमेंटेशन से जुड़ी समस्याओं की पहचान करने में मदद करती है. फ़्रैगमेंटेशन की ज़्यादा वैल्यू से पता चलता है कि हो सकता है कि कुल फ़्री मेमोरी काफ़ी हो, लेकिन वह एक साथ न हो. इसलिए, हो सकता है कि ज़्यादा मेमोरी के लिए किया गया अनुरोध पूरा न हो पाए.
इस टूल और मेमोरी व्यूअर टूल के बीच कुछ मुख्य अंतर:
- मेमोरी व्यूअर पूरी तरह से स्टैटिक होता है और प्रोग्राम के क्रम पर फ़ोकस करता है. वहीं, मेमोरी प्रोफ़ाइल, प्रोफ़ाइलिंग के दौरान समय के साथ डाइनैमिक व्यू उपलब्ध कराती है.
- मेमोरी व्यूअर, हर XLA मॉड्यूल के हिसाब से मेमोरी के ऐलोकेशन को विज़ुअलाइज़ करता है. कई XLA मॉड्यूल वाले वर्कलोड के लिए, मेमोरी प्रोफ़ाइल, मेमोरी का ग्लोबल व्यू दिखाती है.