GPU

2011-12-30 21 views
15

पर पूर्णांक और बिटवाईर संचालन का प्रदर्शन हालांकि GPU को फ़्लोटिंग पॉइंट डेटा प्रकारों के उपयोग के लिए माना जाता है, लेकिन मुझे दिलचस्पी होगी कि जीपीयू प्रक्रिया को बिटवाई ऑपरेशंस कितनी तेजी से कर सकता है। ये सीपीयू पर सबसे तेज़ संभव हैं, लेकिन क्या GPU बिटवाई ऑपरेशंस का अनुकरण करता है या क्या वे हार्डवेयर पर पूरी तरह से गणना की जाती हैं? मैं उन्हें जीएलएसएल के साथ लिखे गए शेडर कार्यक्रमों के अंदर उपयोग करने की योजना बना रहा हूं। इसके अलावा मुझे लगता है कि अगर बिटवाई ऑपरेशंस में पूर्ण प्रीफॉर्मेंस होता है, तो पूर्णांक डेटा प्रकार भी होना चाहिए, लेकिन मुझे उस पर पुष्टि की आवश्यकता है।GPU

अधिक सटीक होने के लिए, लक्षित संस्करण ओपनजीएल 3.2 और जीएलएसएल 1.5 हैं। हार्डवेयर जो इसे चलाना चाहिए वह कोई राडेन एचडी ग्राफिक्स कार्ड और जीईफ़ोर्स श्रृंखला 8 और नया है .. यदि ओपनजीएल और जीएलएसएल के नए संस्करणों में कुछ बड़े बदलाव हैं, तो बिटवाई ऑपरेशंस/इंटीग्रर्स की प्रोसेसिंग गति से संबंधित, मुझे खुशी होगी कि अगर आप ' उन्हें बाहर इंगित करेंगे।

+0

आपको एक विशेष जीपीयू आर्किटेक्चर, या कम से कम ओपनजीएल संस्करण निर्दिष्ट करने की आवश्यकता है। अभी यह सवाल बेहद अस्पष्ट है। –

+0

@BenVoigt अपडेट किया गया है, क्या यह काफी सटीक है, या आपको आर्किटेक्चर के विशिष्ट कोड नाम की आवश्यकता है (वे उन्हें हर नए कार्ड के लिए बदलते हैं) – Raven

+0

रेवेन: राडेन एचडी 1xxx और एचडी 7xxx के बीच कुछ बड़े बदलाव हैं, लेकिन यह अतिरिक्त जानकारी एक है बड़ा सुधार यह मानते हुए कि आप ओपनजीएल 3.2 समर्थन (या बाद में) का विज्ञापन करने वाले कार्ड देख रहे हैं, जो शायद पर्याप्त स्पष्ट है। –

उत्तर

8

यह सवाल आंशिक रूप से Integer calculations on GPU

उत्तर दिया गया कम आधुनिक GPUs में 32 बिट डेटा के लिए बराबर INT और एफपी प्रदर्शन किया है। तो आपके तार्किक संचालन एक ही गति से चलेंगे।

प्रोग्रामिंग परिप्रेक्ष्य से यदि आप SCALAR पूर्णांक डेटा से निपट रहे हैं तो आप प्रदर्शन खो देंगे। जीपीयू जैसे पैरालेल और पैकेड ऑपरेशंस के साथ काम करना।

for(int i=0; i<LEN_VEC4; i++) 
    VEC4[i] = VEC4[i] * VEC4[i]; // (x,y,z,w) * (x,y,z,w) 

आप की तरह कुछ कर रहे हैं ...

for(int i=0; i<LEN_VEC4; i++) 
    VEC4[i].w = (VEC4[i].x & 0xF0F0F0F0) | (VEC4[i].z^0x0F0F0F0F)^VEC4[i].w; 

... उसी सदिश आप प्रदर्शन समस्याओं में चलेंगे के तत्वों पर कई अलग अलग संचालन कर रही है।

+0

आपके उत्तर के लिए धन्यवाद। लिंक्ड पोस्ट के साथ संयोजन में यह पर्याप्त है, लेकिन मुझे एक और सवाल मिला। जैसा लिखा है, आईएनटी और एफपी प्रदर्शन एक जैसा होना चाहिए। लेकिन एफपी के लिए बिटवाई ऑपरेशंस की तरह कुछ भी नहीं है (या कम से कम यह करना अजीब होगा)। तो वे बराबर होने के लिए क्या कह रहे हैं .. जोड़ना और इसी तरह? और यदि ऐसा है, तो आईएनटी डेटा प्रकारों के लिए गणित सेशन (जोड़ना ..) से तेज़ी से ओप (उदा। स्थानांतरण) हैं, या परफॉर्मेंस भी बराबर है। – Raven

+0

"एक्स बिट एक्स शिफ्ट 1" से अधिक है "एक्स + एक्स" की तुलना में तेज़ आर्किटेक्चर निर्भर है। मुझे उम्मीद है कि आपका शतरंज संकलित होने पर कुछ अनुकूलन तब होगा जब तक कि आप इसे GPU असेंबली में लिखते नहीं हैं)। "एक्स डिवाइड बाय 2" स्रोत की धीमी गति से "एक्स बिट शिफ्ट दाएं 1" की तुलना में धीमा है क्योंकि बिट शिफ्ट की तुलना में विभाजन में अधिक तर्क शामिल है। –

+3

"जीपीयू जैसे पैरालेल और पैकेड ऑपरेशंस के साथ काम करना।" एनवीडिया और एएमडी के सबसे हालिया जीपीयू स्केलर आर्किटेक्चर हैं। तो पूरी तरह से स्केलर संचालन के लिए प्रदर्शन वास्तव में वेक्टर संचालन के मुकाबले ज्यादा है। – datenwolf