इसका सरल उत्तर यह है कि एक GPU सबसे अच्छा काम करता है, जब आपको बहुत बड़ी संख्या में प्रत्येक आइटम पर एक काफी छोटा, काफी सरल गणना करने की आवश्यकता होती है। इस तरह से पूरा करने के लिए, प्रत्येक आइटम के लिए गणना अन्य वस्तुओं के लिए गणना से स्वतंत्र होना चाहिए। यदि एक आइटम और दूसरे के बीच कुछ निर्भरता (सामान्य रूप से) है, तो आपको आमतौर पर GPU पर उस कोड को निष्पादित करने से बहुत कुछ बाहर निकलने से पहले इसे तोड़ने के लिए किसी तरह का पता लगाने की आवश्यकता है। यदि निर्भरता को बिल्कुल भी नहीं तोड़ा जा सकता है, या तोड़ने के लिए बहुत अधिक काम की आवश्यकता होती है, तो कोड सीपीयू पर तेजी से निष्पादित हो सकता है।
अधिकांश वर्तमान सीपीयू भी कुछ प्रकार के ऑपरेशनों का समर्थन करते हैं जो एक वर्तमान जीपीयू केवल समर्थन करने का प्रयास नहीं करते हैं (जैसे, मल्टीटास्किंग के लिए मेमोरी सुरक्षा)।
थोड़ा अलग दिशा से इसे देखते हुए, CPUs (बड़े पैमाने पर) प्रोग्रामर के लिए यथोचित रूप से सुविधाजनक बनाने के लिए डिज़ाइन किए गए हैं, और हार्डवेयर लोगों ने हार्डवेयर बनाने के लिए अपना सर्वश्रेष्ठ प्रदर्शन किया है! प्रोग्रामर, लेकिन फिर भी जितनी जल्दी हो सके निष्पादित करता है।
जीपीयू विपरीत दिशा से चीजों पर आते हैं: वे हार्डवेयर डिजाइनर के लिए काफी हद तक सुविधाजनक हैं, और ओपनसीएल जैसी चीजों ने हार्डवेयर की बाधाओं को देखते हुए एक प्रोग्रामिंग मॉडल के उचित प्रदान करने का प्रयास किया है।
GPU पर चलाने के लिए कोड लिखना आमतौर पर सीपीयू पर समान करने की तुलना में अधिक समय और प्रयास (इसलिए इसे अधिक खर्च होगा) ले जाएगा। इस प्रकार, ऐसा करने से मुख्य रूप से यह समझ में आता है कि कब / क्या है:
- समस्या इतनी समानांतर है कि आप न्यूनतम प्रयास से बड़े लाभ की उम्मीद कर सकते हैं, या
- गति लाभ इतना महत्वपूर्ण है कि यह बहुत सारे अतिरिक्त काम को सही ठहराता है।
प्रत्येक के लिए कुछ स्पष्ट संभावनाएं हैं - लेकिन बड़ी संख्या में एप्लिकेशन स्पष्ट रूप से एक के भी करीब नहीं हैं। मुझे देखने के लिए काफी आश्चर्य होगा (उदाहरण के लिए) एक सीआरयूडी एप्लिकेशन जल्द ही किसी भी समय जीपीयू पर चल रहा है (और यदि ऐसा होता है, तो यह संभवत: इसलिए होगा क्योंकि कोई व्यक्ति उस सटीक लक्ष्य को ध्यान में रखते हुए निर्धारित करेगा, जरूरी नहीं कि एक इष्टतम दृष्टिकोण के लिए कुछ भी हो। लागत / लाभ अनुपात)।
वास्तविकता यह है कि बहुत सारे (मैं "सबसे" कहने के लिए लुभाता हूं) अनुप्रयोगों, एक ठेठ सीपीयू तेजी से काफी अधिक है, और प्रोग्रामिंग सुविधा (नई सुविधाओं के आसान विकास जैसी चीजों के लिए अग्रणी) की तुलना में बहुत अधिक महत्वपूर्ण है निष्पादन की गति।