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

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

Qualcomm Adreno काउंटर

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

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

ARM Mali काउंटर (WIP)

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

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

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

काउंटर ऐनलिसिस

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

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

हमारा सुझाव है कि वर्टेक्स मेमोरी को पढ़ने का पीक बैंडविड्थ 1.5 GBps से ज़्यादा न हो. साथ ही, औसत बैंडविड्थ 500 MBps से ज़्यादा न हो. ज़्यादा वैल्यू से, कुछ सामान्य समस्याओं के बारे में पता चलता है:

  • वर्टेक्स का साइज़ बहुत बड़ा है: वर्टेक्स में वर्टेक्स एट्रिब्यूट या वर्टेक्स एट्रिब्यूट की संख्या ज़्यादा हो सकती है. इससे वर्टेक्स शेडिंग में ज़्यादा समय लगता है.
  • वर्टेक्स एट्रिब्यूट स्ट्रीम को अलग-अलग नहीं किया जाता: वर्टेक्स एट्रिब्यूट को एक ही बफ़र में इंटरलीव किया जाता है. इससे कैश मेमोरी की परफ़ॉर्मेंस कम हो जाती है.
  • हर फ़्रेम के लिए बहुत ज़्यादा वर्टेक्स सबमिट किए गए हैं: जटिल मॉडल और/या बड़ी संख्या में मॉडल, ज़्यादा बैंडविड्थ का इस्तेमाल कर सकते हैं. साथ ही, इन्हें शेड करने में ज़्यादा समय लग सकता है.

औसत बाइट / वर्टेक्स ट्रैक की मदद से, वर्टेक्स के साइज़ से जुड़ी समस्याओं का पता लगाया जा सकता है. हमारा सुझाव है कि यह 32 बाइट या वर्टेक्स से ज़्यादा न हो.

एक फ़्रेम के लिए वर्टेक्स का औसत साइज़, जिसकी औसत वैल्यू 31.3 बाइट है
दूसरी इमेज: एक फ़्रेम के लिए वर्टेक्स का औसत साइज़, जिसकी औसत वैल्यू 31.3 बाइट है

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