आप एक मिनी बेंचमार्क को एक अनुवांशिक फ़ंक्शन के सभी संस्करणों का परीक्षण कर सकते हैं और उदाहरण के लिए कर्नेल-स्ट्रिंग को बदल सकते हैं (native_
को cos
उदाहरण के लिए)। बेंचमार्क परिणामों के साथ। इसे घटना आधारित प्रोफाइलिंग की आवश्यकता होगी और पोर्टेबिलिटी के लिए उपयुक्त होगा। फिर, प्रत्येक एन पुनरावृत्तियों के लिए, यह पिछली बेंच से कोई त्रुटि होने पर तदनुसार फिर से बेंच और मामूली परिवर्तन हो सकता है।
आप कार्यों की एक श्रृंखला के क्रमिक क्रम के लिए बेंचमार्क भी कर सकते हैं (जैसे कि पहले फ़ंक्शन के लिए देशी का उपयोग करना, दूसरे संस्करण में तीसरे स्थान पर, मूल संस्करण में तीसरे स्थान पर मूल, फिर अन्य 5 संस्करणों पर वैकल्पिक नाटनेस, सभी को बेंचमार्क) फिट करने के लिए पाइपलाइन आर्किटेक्चर पर कोड बेहतर है जहां कार्यों का क्रम महत्वपूर्ण है।
स्रोत
2017-03-12 15:29:20
मूल निवासी हमेशा तेज़ होंगे। वे एचडब्ल्यू निर्देश के लिए 1: 1 मैप करते हैं, आमतौर पर जीपीयू के लिए यह एक कॉस/पाप वर्टेक्स निर्देश है। परिशुद्धता कार्यान्वयन परिभाषित किया गया है। सामान्य sincos, गति की लागत (सिस्टम के आधार पर) – DarkZeros
बस एक मामूली सुधार और मेरे 2 सेंट के लायक पर beter सटीकता होगी: देशी_ * कार्यों को हार्डवेयर निर्देशों के लिए 1: 1 मैप करने की ज़रूरत नहीं है (देखें 250 जी ओपनसीएल 1.2 मानक के)। कार्यान्वयन के आधार पर, वे शायद गैर-मूल संस्करण की तुलना में कम निर्देशों को मानचित्रित करते हैं और इसलिए थोड़ा तेज़ हो जाएंगे। यह इनपुट मानों की सीमा पर भी निर्भर करता है। उदाहरण के लिए Nvidia के पाप, कोस और sincos कार्यान्वयन के कुछ मूल्य के नीचे इनपुट के लिए एक तेज रास्ता है और उस मूल्य के ऊपर इनपुट के लिए एक धीमी पथ है। इसलिए देशी_सिन का उपयोग करते समय आपकी गति लाभ आपके इनपुट मानों पर निर्भर हो सकता है। – chippies
क्या मूल कार्य विशेष पाइपलाइनों (एडर्स/मल्टीप्लायर से कम असंख्य) का उपयोग करते हैं या वे सभी पाइपलाइनों का उपयोग करते हैं लेकिन परिणाम प्राप्त करने के लिए हार्डवेयर लाइब्रेरी शेड्यूलिंग के भीतर? –