टेक्स्चर के लिए मेमोरी बैंडविथ के इस्तेमाल का विश्लेषण करना

टेक्सचर डेटा की मेमोरी बैंडविथ, आपके ऐप्लिकेशन के जीपीयू की परफ़ॉर्मेंस के लिए एक संभावित अड़चन हो सकती है. एजीआई सिस्टम प्रोफ़ाइल में कुछ काउंटर मौजूद होते हैं. इनकी मदद से, टेक्सचर मेमोरी बैंडविथ से जुड़ी समस्याओं का पता लगाया जा सकता है.

Qualcomm Adreno के काउंटर

Qualcomm Adreno जीपीयू वाले डिवाइसों पर, कुछ अहम काउंटर शामिल हैं:

काउंटर ब्यौरा
टेक्सचर मेमोरी रीड बैंडविथ (बाइट/सेकंड) बाहरी मेमोरी से पढ़े गए टेक्सचर डेटा की बैंडविथ.
% टेक्सचर L1 मिस टेक्सचर फ़ेच करने पर, L1 कैश मेमोरी मिस होने की दर.
% नॉन-बेस लेवल टेक्सचर मिपमैप वाले टेक्सचर फ़ेच करने का प्रतिशत.
% एनिसोट्रोपिक फ़िल्टरिंग एनिसोट्रोपिक फ़िल्टरिंग वाले टेक्सल का प्रतिशत.

ARM Mali के काउंटर

ARM Mali जीपीयू वाले डिवाइसों पर, कुछ अहम काउंटर शामिल हैं:

काउंटर ब्यौरा
बाहरी मेमोरी से पढ़े गए टेक्सचर के बीट शेडर कोर पर औसत के हिसाब से, टेक्सचर यूनिट से बाहरी मेमोरी से पढ़े गए डेटा के बीट.
L2 कैश मेमोरी से पढ़े गए टेक्सचर के बीट शेडर कोर पर औसत के हिसाब से, टेक्सचर यूनिट से L2 कैश मेमोरी से पढ़े गए डेटा के बीट.
[ज़्यादा जानकारी]

औसत रीड बीट से कुल बैंडविथ का हिसाब लगाने के लिए, काउंटर की वैल्यू को बस की चौड़ाई (आम तौर पर, 16 बाइट) और शेडर कोर की कुल संख्या से गुणा किया जाता है.

काउंटर का विश्लेषण

इन काउंटर के व्यवहार को मेज़र करने के लिए, एक जीपीयू फ़्रेम के दौरान औसत और पीक बैंडविथ को मेज़र करें. इसके बाद, जीपीयू के इस्तेमाल के लगातार ब्लॉक से इसका विश्लेषण करें.

एक फ़्रेम के लिए टेक्सचर मेमोरी को पढ़ने की बैंडविड्थ, जिसकी औसत वैल्यू 565 MBps और पीक वैल्यू 2.30 GBps है
पहली इमेज. एक फ़्रेम के लिए, टेक्सचर मेमोरी रीड बैंडविथ. इसकी औसत वैल्यू 565 एमबीपीएस और पीक वैल्यू 2.30 जीबीपीएस है

हमारा सुझाव है कि टेक्सचर मेमोरी रीड बैंडविथ की औसत वैल्यू 1 जीबीपीएस से ज़्यादा न हो. साथ ही, पीक बैंडविथ 3 जीबीपीएस से ज़्यादा न हो. टेक्सचर L1 कैश मेमोरी मिस होने की दर भी 10% से ज़्यादा नहीं होनी चाहिए. बैंडविथ या L1 कैश मेमोरी की वैल्यू ज़्यादा होने पर, टेक्सचर से जुड़ी गंभीर समस्याएं हो सकती हैं. जैसे:

  • टेक्सचर बहुत बड़े हैं: बड़े टेक्सचर की वजह से, आपके पैकेज का साइज़ बढ़ जाता है. साथ ही, ये ज़्यादा महंगे होते हैं और इनसे कैश मेमोरी की परफ़ॉर्मेंस घट सकती है.
  • टेक्सचर कंप्रेस नहीं किए गए हैं: सभी Android फ़ोन, ETC1 या ASTC जैसे कुछ तरह के टेक्सचर कंप्रेस करने की सुविधा देते हैं. पैकेज का साइज़ और टेक्सचर बैंडविथ कम करने के लिए, टेक्सचर को कंप्रेस किया जाना चाहिए.
  • अन्य: टेक्सचर से जुड़ी अन्य समस्याओं पर भी ध्यान दिया जाना चाहिए. जैसे, पावर-ऑफ़-2 टेक्सचर, मिपमैपिंग, एनिसोट्रोपिक फ़िल्टरिंग वगैरह. इनमें से कुछ समस्याओं को सिस्टम प्रोफ़ाइल में देखा जा सकता है. इनके बारे में यहां बताया गया है. वहीं, अन्य समस्याओं की गहराई से जांच करनी पड़ सकती है.

फ़्री कैमरा वाले तीन डाइमेंशन वाले गेम के लिए, टेक्सचर ऐसेट में मिपमैपिंग का इस्तेमाल किया जाना चाहिए. इससे कैमरे से दूर मौजूद ऑब्जेक्ट के लिए, मेमोरी बैंडविथ कम हो जाएगी. साथ ही, टेक्सचर कैश मेमोरी की परफ़ॉर्मेंस और इमेज की क्वालिटी बेहतर हो जाएगी. Qualcomm Adreno जीपीयू का इस्तेमाल करने वाले डिवाइसों के लिए, % नॉन-बेस लेवल टेक्सचर काउंटर की औसत वैल्यू 10% से कम होने पर, यह मिपमैपिंग के सही तरीके से न होने का संकेत हो सकता है.

एक फ़्रेम के लिए नॉन-बेस लेवल टेक्सचर, जिनकी औसत वैल्यू 9.2% है
दूसरी इमेज. एक फ़्रेम के लिए, नॉन-बेस लेवल टेक्सचर. इसकी औसत वैल्यू 9.2%है

एनिसोट्रोपिक फ़िल्टरिंग का इस्तेमाल भी एक अहम पहलू है. Qualcomm Adreno जीपीयू के लिए, % एनिसोट्रोपिक फ़िल्टरिंग काउंटर से, एनिसोट्रोपिक फ़िल्टरिंग वाले टेक्सल के अनुपात के बारे में पता चलता है. इससे कुछ गेम की विज़ुअल क्वालिटी बेहतर हो सकती है. हालांकि, यह बहुत महंगा भी हो सकता है. इसलिए, इसका इस्तेमाल करने से पहले, जीपीयू की परफ़ॉर्मेंस पर पड़ने वाले असर के बारे में जान लेना चाहिए.

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

टेक्सचर ऐसेट का विश्लेषण करने के लिए, फ़्रेम प्रोफ़ाइल ट्रेस करना, ज़्यादा खास समस्याओं का पता लगाने का सबसे अच्छा तरीका है.