2011-12-07 11 views
7

शेडर कार्यों के मानक पुस्तकालय हैं, जैसे Cg के लिए। लेकिन क्या ऐसे संसाधन हैं जो आपको बताते हैं कि प्रत्येक कितना समय लेता है ... मैं इस बारे में सोच रहा हूं कि आप कैसे देख सकते हैं कि प्रत्येक एएसएम सेशन कितने चक्र लेगा।विभिन्न सीजी/जीएलएसएल/एचएलएसएल कार्यों का प्रदर्शन

+2

यह डिवाइस से डिवाइस – Flexo

+0

में भिन्न होता है, मुझे लगता है, आजकल अधिक महत्वपूर्ण यह है कि आप कितने प्रोसेसर लोड कर सकते हैं। यदि आप निर्भर बनावट के साथ एक भारी शेडर सेट करते हैं, तो आपको स्टालों और प्रतीक्षा और अन्य अप्रिय सामग्री मिल जाएगी। शुद्ध "चक्र गणना" इस मामले में मदद नहीं करेगा। – Lyth

+0

दोनों सत्य - लेकिन कुछ विचार अभी भी शुरुआती बिंदु के रूप में उपयोगी होंगे। उदाहरण के लिए गणितीय/ज्यामितीय कार्य ... विभाजन को कॉस के खिलाफ तुलना करता है, या एओएस के खिलाफ कॉस, या तन के खिलाफ वर्ग ... –

उत्तर

11

कोई विश्वसनीय संसाधन नहीं है जो आपको बताएगा कि विभिन्न मानक शेडर फ़ंक्शन कितने समय तक लेते हैं। हार्डवेयर के एक विशेष टुकड़े के लिए भी नहीं।

इसका कारण निर्देश शेड्यूलिंग और आधुनिक शेडर आर्किटेक्चर के तरीके के साथ करना है। एक साधारण sin फ़ंक्शन लें। आइए मान लें कि हार्डवेयर के पास एक मान के साइन की गणना करने के लिए एक विशेष हार्डवेयर है, इसलिए यह मैन्युअल रूप से टेलर श्रृंखला या कुछ का उपयोग नहीं कर रहा है। हालांकि, आइए यह भी कहें कि वास्तव में इसकी गणना करने के लिए 4 ऑपोड्स का अनुक्रम लेता है। इसलिए, sin "4 चक्र" लेगा।

हालांकि, वे सभी ऑपकोड स्केलर ऑपरेशंस हैं। इसलिए, जब वे चल रहे हैं, तो वास्तव में आप कुछ 3-वेक्टर डॉट-प्रोडक्ट्स, या कुछ हार्डवेयर के मामले में, 4-वेक्टर डॉट-प्रोडक्ट्स पर उसी प्रोसेसर पर पर जा सकते हैं। इसलिए, यदि हार्डवेयर अदिश कार्यों के साथ 4-वेक्टर डॉट उत्पाद हैं, चक्र की संख्या यह निष्पादित करने के लिए एक sin और एक मैट्रिक्स वेक्टर गुणा है 4.

कितना किया sin आपरेशन लेता है ... अभी भी तो लागत? यदि आप मैट्रिक्स गुणा करते हैं, तो कुछ भी तेज़ नहीं होता है। यदि आप sin निकालते हैं, तो कुछ भी तेज़ नहीं होता है। इसकी कीमत कितनी होती है? आप नहीं कह सकते, क्योंकि एक ही ऑपरेशन की लागत अप्रासंगिक है; केवल मापनीय मात्रा शेडर की कीमत है।

आखिरकार, आप अपने शेडर को उचित रूप से बनाने और प्रदर्शन को देखने का प्रयास कर सकते हैं। जब तक आपके पास अंतर्निहित शेडर असेंबली (और नहीं, डीएक्स असेंबली पर्याप्त नहीं है) को कम करने के लिए निम्न-स्तरीय डिबगिंग टूल हैं, तो यह वास्तव में सबसे अच्छा है जो आप कर सकते हैं।