मैं एक ओपनसीएल कर्नेल लिख रहा हूं जिसमें लूप में कुछ बाधाएं शामिल हैं। मैंने सीपीयू (8-कोर FX8150) पर कर्नेल का परीक्षण किया है और परिणाम दिखाता है कि इन बाधाओं ने 50 ~ 100 गुना के कारक द्वारा चलने वाली गति को कम किया है (मैंने इसे बहु-थ्रेडिंग + साइक्लिकबैरियर का उपयोग करके जावा पर कर्नेल को फिर से कार्यान्वित करके सत्यापित किया है) । मुझे संदेह है कि बाधा अनिवार्य रूप से सीपीयू को आउट ऑफ़ ऑर्डर निष्पादन का लाभ उठाने से रोकती है, इसलिए यदि मैं GPU पर गति घटाने की समान परिमाण का पालन करता हूं तो मैं थोड़ा चिंतित हूं। मैंने कुछ आधिकारिक दस्तावेजों की जांच की और थोड़ा सा गुगल किया लेकिन इस विषय पर बहुत कम जानकारी उपलब्ध है।क्या आधुनिक जीपीयू (जैसे फर्मि/सदाबहार) आदेश निष्पादन से बाहर है?
5
A
उत्तर
7
वर्तमान राज्य के कला GPUs में से आदेश प्रोसेसर pipelined हैं। GPUs विभिन्न warps (wavefronts) से निर्देशों को interleaving द्वारा पाइपलाइन प्रभावी ढंग से भरें। तुलना में, सीपीयू पाइपलाइन को भरने के लिए आउट ऑफ़ ऑर्डर सट्टा निष्पादन का उपयोग करते हैं। एएलयू और एसएफयू जैसी विभिन्न कार्यात्मक इकाइयां हैं जो पाइपलाइनों को अलग करती हैं। लेकिन ध्यान दें कि निर्देश निर्भरता वार्प को रोकती है। जीपीयू पर संकल्प निर्भरता निर्भरता के बारे में अधिक जानकारी के लिए this NVIDIA patent देखें।
2
NVIDIA के अगली पीढ़ी
CUDA कंप्यूट और ग्राफिक्स आर्किटेक्चर, कोड नाम "फर्मी":
Nvidia GigaThread Engine स्विचिंग (पेज 5 पर)
- 10x तेजी से आवेदन संदर्भ से क्षमता है
- समवर्ती कर्नेल निष्पादन
- ऑर्डर थ्रेड ब्लॉक निष्पादन से बाहर :)
- दोहरी ओवरलैप स्मृति हस्तांतरण इंजन
इसके बारे में जानकारी है। आपको कोड के माध्यम से समय-समय पर एफपीयू गणना अलग-अलग विभाजित करनी चाहिए, इसलिए यह पूर्णांक कैल्क कर सकता है। एक ही समय में तैरते हुए –
@ tuğrulbüyükışık धन्यवाद। क्या आप मुझे एक आधिकारिक दस्तावेज पर इंगित कर सकते हैं जो इसकी पुष्टि करता है (संदर्भ उद्देश्य के लिए)? – aaronqli