ग्राफ़िक्स प्रसंस्करण इकाइयों पर सामान्य प्रयोजन कंप्यूटिंग

ग्राफ़िक्स प्रोसेसिंग युनिट (जीपीजीपीयू, या अधिकांशतः जीपीजीपी) पर सामान्य प्रयोजन कंप्यूटिंग ग्राफिक्स प्रोसेसिंग यूनिट (जीपीयू) का उपयोग करके कंप्यूटेशन का कार्य करना है, जो सामान्यतः सेंट्रल प्रोसेसिंग यूनिट (सीपीयू) द्वारा उपयोग किए जाते हैं। और कंप्यूटर ग्राफिक्स के लिए गणना करता है, कंप्यूटर में कई वीडियो कार्डों का उपयोग करना, या बड़ी संख्या में ग्राफिक्स चिप्स का उपयोग करना, ग्राफिक्स प्रोसेसिंग के पहले से ही पैरलेल स्वरूप को और भी पैरलेलाइज़ करता है।

अनिवार्य रूप से, जीपीजीपीयू ग्राफ़िक्स पाइपलाइन या अधिक जीपीयू और सीपीयू के बीच प्रकार की समानांतर कंप्यूटिंग है जो डेटा का विश्लेषण करती है जैसे कि यह छवि या अन्य ग्राफिक रूप में होता है। जबकि जीपीयू कम आवृत्तियों पर संचालित होते हैं, उनमें सामान्यतः अविष्कार पर मल्टी-कोर प्रोसेसर की संख्या कई गुना होती है। इस प्रकार, जीपीयू पारंपरिक सीपीयू की समानता में प्रति सेकंड कहीं अधिक चित्र और ग्राफिकल डेटा संसाधित कर सकता है। डेटा को ग्राफ़िकल रूप में माइग्रेट करना और फिर उसे स्कैन और विश्लेषण करने के लिए जीपीयू का उपयोग करना बड़ा स्पीडअप बना सकता है। 21वीं सदी की प्रारंभ में जीपीजीपीयू पाइपलाइनों अविष्कार ग्राफ़िक्स प्रसंस्करण (उदाहरण के लिए उत्तम शेडर्स के लिए) के लिए विकसित किया गया था। ये पाइपलाइनें वैज्ञानिक कंप्यूटिंग आवश्यकताओं के लिए उपयुक्त पाई गईं और तब से इन्हें इस दिशा में विकसित किया गया है।

इतिहास
प्राथमिक रूप से, किसी भी अनियमित बूलीय सम्बन्ध, समावेश, गुणा, और अन्य गणितीय सम्बन्धों सहित, कार्यात्मक संपूर्ण समुच्चय के लॉजिक ऑपरेटर से निर्मित किया जा सकता है। 1987 में, कॉनवे का गेम ऑफ लाइफ पहले उदाहरणों में से बन गया जो प्रारंभिक स्ट्रीम प्रोसेसर को ब्लिटर के रूप में उपयोग करके बिट सदिश्स पर लॉजिकल ऑपरेशन की विशेष क्रम को आह्वान करने के लिए हुआ था। ग्राफिक्स प्रोसेसर पर प्रोग्रामेबल शेडर्स और फ्लोटिंग पॉइंट अविष्कार सपोर्ट दोनों के आगमन के साथ, 2001 के बाद जीपीयू पर सामान्य प्रयोजन कंप्यूटिंग अधिक व्यावहारिक और लोकप्रिय हो गई। विशेष रूप से, आव्यूह (गणित)या सदिश (गणित और भौतिकी) से जुड़ी समस्याएं – विशेष रूप से दो-, तीन-, या चार-आयामी सदिश –  को जीपीयू में अनुवाद करना आसान था, जो उन प्रकारों पर मूल गति और समर्थन के साथ कार्य करता है। जीपीजीपीयू के लिए महत्वपूर्ण मील का पत्थर वर्ष 2003 था जब दो अनुसंधान समुच्चयों ने स्वतंत्र रूप से जीपीयू पर सामान्य रैखिक बीजगणित समस्याओं के समाधान के लिए जीपीयू-आधारित दृष्टिकोण की अविष्कार की जो सीपीयू की समानता में तेजी से चलते थे।  जीपीयू को सामान्य प्रयोजन प्रोसेसर के रूप में उपयोग करने के इन प्रारंभिक प्रयासों के लिए ग्राफिक्स प्राइमेटिव के संदर्भ में कम्प्यूटेशनल समस्याओं को सुधारने की आवश्यकता थी, जैसा कि ग्राफिक्स प्रोसेसर, ओपनजीएल और डायरेक्टएक्स के लिए दो प्रमुख एपीआई द्वारा समर्थित है। इस बोझिल अनुवाद को सामान्य प्रयोजन प्रोग्रामिंग लैंग्वेज और एपीआई जैसे लिब श/रैपिडमाइंड, ब्रुकजीपीयू और एक्सेलेरेटर के आगमन से रोका गया था। इसके बाद एनवीडिया का CUDA ने आने वाले प्रोग्रामर्स को उच्च प्रदर्शन गणना संबंधी सामान्य अधिक संपर्कित ग्राफिकल अवधारणाओं को नज़रअंदाज़ करके अन्य सामान्य उच्च प्रदर्शन गणना अवधारणाओं का उपयोग करने की अनुमति दी। नई, हार्डवेयर विक्रेता-स्वतंत्र प्रस्तुतिों में माइक्रोसॉफ्ट के डायरेक्टकंप्यूट अविष्कार और एप्पल/ख्रोनॉस ग्रुप का ओपनसीएल सम्मिलित हैं। सका मतलब है कि आधुनिक जीपीयू पाइपलाइन्स ग्राफिकल रूप में डेटा का पूरा और स्पष्ट रूप से परिवर्तन न करके जीपीयू की गति का लाभ उठा सकते हैं। GPGPU.org के संस्थापक मार्क हैरिस ने जीपीयू शब्द गढ़ा।

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

, ओपनसीएल प्रमुख ओपन सामान्य प्रयोजन जीपीयू कंप्यूटिंग लैंग्वेज है, और क्रोनोस ग्रुप द्वारा परिभाषित खुला मानक है। ओपनसीएल क्रॉस-प्लेटफॉर्म जीपीजीपीयू प्लेटफॉर्म प्रदान करता है जो सीपीयू पर डेटा समानांतर गणना का अतिरिक्त समर्थन करता है। ओपनसीएल इंटेल, एएमडी, एनविडिया अविष्कार और एआरएम प्लेटफार्मों पर सक्रिय रूप से समर्थित है। ख्रोनोस ग्रुप ने अभी तक स्टैंडर्डाइज और एकीकृत किया है और SYCL को भी अमल में लाया है, जो ओपनसीएल के लिए हाईर-लेवल प्रोग्रामिंग मॉडल है जो मूल C++11 पर आधारित एकल-स्रोत डोमेन-निर्दिष्ट एम्बेडेड भाषा है।

प्रमुख स्वामित्व ढांचा एनवीडिया सीयूडीए है। एनवीडिया ने 2006 में CUDA, सॉफ्टवेयर डेवलपमेंट किट (एसडीके) और अप्लिकेशन प्रोग्रामिंग अंतरफलक (एपीआई) लॉन्च किया, जो जीफोर्स 8 श्रृंखला और बाद के जीपीयू पर निष्पादन के लिए एल्गोरिदम को कोड करने के लिए प्रोग्रामिंग लैंग्वेज सी (प्रोग्रामिंग लैंग्वेज ) का उपयोग करने की अनुमति देता है। आरओसीएम (ROCm), 2016 में लॉन्च किया गया, एएमडी का CUDA के प्रतिक्रिया स्वतंत्र स्रोत है। 2022 तक यह CUDA के साथ सुविधाओं के संबंध में सामान्तर है, लेकिन उपभोक्ता समर्थन में अभी भी कमी है। निविडिया के सहयोग से, ओपनीविडिया (OpenVIDIA) का विकास 2003 से 2005 के बीच टोरंटो विश्वविद्यालय में हुआ था। अल्टिमेश हाइब्रिडाइज़र (Altimesh Hybridizer) जो कि अल्टीमेश द्वारा बनाया गया है, कॉमन इंटरमीडिएट भाषा को CUDA बाइनरी में कंपाइल करता है। इसमें जेनेरिक्स और वर्चुअल फंक्शन्स का समर्थन है। डिबगिंग और प्रोफाइलिंग विजुअल स्टूडियो और एनसाइट के साथ एकीकृत है। यह विजुअल स्टूडियो मार्केटप्लेस पर विजुअल स्टूडियो एक्सटेंशन के रूप में उपलब्ध है। माइक्रोसॉफ्ट ने डायरेक्टकंप्यूट जीपीयू कंप्यूटिंग एपीआई प्रस्तुत किया, जिसे डायरेक्टएक्स 11 एपीआई के साथ जारी किया गया था। , जो कि क्वांटअलिया द्वारा बनाया गया है, माइक्रोसॉफ्ट .नेट भाषाओं F# और C# के लिए नेटिव जीपीयू कंप्यूटिंग क्षमता का परिचय करता है अलिया जीपीयू भी जीपीयू पैरलल-फॉर और पैरलल एग्रीगेट के लिए सरलीकृत जीपीयू प्रोग्रामिंग मॉडल प्रदान करता है जिसमें डिलीगेट्स और स्वचालित मेमोरी मैनेजमेंट का उपयोग होता है। एलिया जीपीयू प्रतिनिधियों और स्वचालित मेमोरी प्रबंधन का उपयोग करके जीपीयू समानांतर-के लिए और समानांतर समुच्चय पर आधारित सरलीकृत जीपीयू प्रोग्रामिंग मॉडल भी प्रदान करता है। मैटलैब GPGPU त्वरण का समर्थन करता है जिसके लिए पैरलल कंप्यूटिंग टूलबॉक्स और मैटलैब वितरित कंप्यूटिंग सर्वर का उपयोग किया जाता है, और जैकेट जैसे तृतीय-पक्ष पैकेज भी उपलब्ध हैं। जीपीजीपीयू प्रसंस्करण का उपयोग भौतिकी इंजनों द्वारा न्यूटोनियन भौतिकी का अनुकरण करने के लिए भी किया जाता है, और वाणिज्यिक अमलाएँ हैं ह्वॉक फिजिक्स, फक्स , और फिक्स जो सामान्यतः कंप्यूटर और वीडियो गेम्स के लिए उपयोग किए जाते हैं। C++ एक्सेलेरेटेड मैसिव पैरेललिज्म (C++ AMP) पुस्तकालय है जो C++ कोड के निष्प्रयोजन संवेदनशील हार्डवेयर के उपयोग से C++ कोड का तत्वाधिकारी अभिवृद्धि करता है।

मोबाइल कंप्यूटर
मोबाइल जीपीयू की बढ़ती शक्ति की प्रवृत्ति के कारण, सामान्य प्रयोजन प्रोग्रामिंग प्रमुख मोबाइल ऑपरेटिंग सिस्टम चलाने वाले मोबाइल उपकरणों पर भी उपलब्ध हो गई है। गूगल एंड्राइड (ऑपरेटिंग सिस्टम) 4.2 ने मोबाइल डिवाइस जीपीयू पर रेंडरस्क्रिप्ट कोड चलाने की सुविधा प्रदान की। ऐप्पल ने आईओएस अनुप्रयोगों के लिए मालिकाना धातु (एपीआई) एपीआई प्रस्तुत किया, जो ऐप्पल के जीपीयू कंप्यूट शेडर्स के माध्यम से इच्छानुसार कोड निष्पादित करने में सक्षम है।

हार्डवेयर समर्थन
कंप्यूटर वीडियो कार्ड जैसे कि एनवीडिया, एएमडी जैसे विभिन्न विक्रेताओं द्वारा निर्मित किए जाते हैं। इन विक्रेताओं के कार्ड में डाटा-फॉर्मेट समर्थन को क्रियान्वित करने में अंतर होता है, जैसे कि पूर्णांक और फ्लोटिंग-पॉइंट फॉर्मेट (32-बिट और 64-बिट)। माइक्रोसॉफ्ट ने शेडर मॉडल मानक प्रस्तुत किया है, जो ग्राफिक कार्ड की विभिन्न सुविधाओं को सरल शेडर मॉडल संस्करण संख्या (1.0, 2.0, 3.0 इत्यादि) में रैंक करने में सहायता करता है।

इंटीजर संख्या
प्री-डायरेक्टएक्स 9 वीडियो कार्ड केवल पैलेट (कंप्यूटिंग) या पूर्णांक रंग प्रकार का समर्थन करते थे। विभिन्न स्वरूप उपलब्ध हैं, जो में लाल तत्व, हरा तत्व, और नीला तत्व सम्मिलित होता है। कभी-कभी और एल्फा मूल्य जोड़ा जाता है, जिसका उपयोग पारदर्शिता के लिए किया जाता है। सामान्य स्वरूप हैं:
 * 8 पिक्सेल प्रति बिट - कभी-कभी पैलेट मोड, जहां प्रत्येक मान तालिका में इंडेक्स होता है, जिसमें असली रंग मूल्य को अन्य स्वरूप में निर्दिष्ट किया जाता है। कभी-कभी तीन लाल, तीन हरे, और दो नीले बिट होते हैं।
 * 16 पिक्सेल प्रति बिट - सामान्यतः बिट लाल के लिए पांच, बिट हरे के लिए छह, और बिट नीले के लिए पांच आवंटित होते हैं।
 * 24 पिक्सेल प्रति बिट - लाल, हरा, और नीले के प्रत्येक के लिए आठ बिट होते हैं।
 * 32 बिट प्रति पिक्सेल - लाल, हरा, नीला और अल्फा कंपोजिटिंग में से प्रत्येक के लिए आठ बिट होते हैं।

फ़्लोटिंग-पॉइंट नंबर
प्रारंभिक फिक्स्ड फंक्शन या सीमित प्रोग्रामयोग्यता ग्राफिक्स (अर्थात, डायरेक्टएक्स 8.1-अनुपालक जीपीयू तक और इसमें सम्मिलित ) के लिए यह पर्याप्त था क्योंकि यह डिस्प्ले में उपयोग किया जाने वाला प्रतिनिधित्व भी है। इस प्रतिनिधित्व की कुछ सीमाएँ हैं। पर्याप्त ग्राफ़िक्स प्रसंस्करण शक्ति को देखते हुए ग्राफ़िक्स प्रोग्रामर भी उच्च-गतिशील-रेंज इमेजिंग जैसे प्रभाव प्राप्त करने के लिए फ्लोटिंग पॉइंट डेटा प्रारूप जैसे उत्तम प्रारूपों का उपयोग करना चाहेंगे। कई GP जीपीयू अनुप्रयोगों को फ़्लोटिंग पॉइंट त्रुटिहीन की आवश्यकता होती है, जो डायरेक्टएक्स 9 विनिर्देश के अनुरूप वीडियो कार्ड के साथ आते हैं। डायरेक्टएक्स 9 शेडर मॉडल 2.x ने दो स्पष्ट प्रकारों के समर्थन का सुझाव दिया: पूर्ण और आंशिक त्रुटिहीन। पूर्ण परिशुद्धता समर्थन या तो FP32 या FP24 (फ़्लोटिंग पॉइंट 32- या 24-बिट प्रति घटक) या इससे अधिक हो सकता है, जबकि आंशिक परिशुद्धता FP16 थी। एटी टेक्नोलॉजीज़ की रेडियन R300 श्रृंखला के जीपीयू ने केवल प्रोग्रामेबल फ्रैगमेंट पाइपलाइन में FP24 परिशुद्धता का समर्थन किया (चूँकि FP32 वर्टेक्स प्रोसेसर में समर्थित था) जबकि एनविडिया अविष्कार की जीफोर्स एफ़एक्स श्रृंखला FP16 और FP32 दोनों का समर्थन करती थी; अन्य विक्रेताओं जैसे S3 ग्राफ़िक्स और XGI टेक्नोलॉजी ने FP24 तक के प्रारूपों के मिश्रण का समर्थन किया। नविडिया जीपीयू पर फ्लोटिंग पॉइंट के अधिकांश अमलाएं सामान्यतः IEEE अनुरूप हैं; चूंकि, यह सभी विक्रेताओं पर सच नहीं है। इसके प्राभाव प्रमुख वैज्ञानिक अनुप्रयोगों के लिए महत्वपूर्ण माने जाते हैं। जबकि 64-बिट फ्लोटिंग पॉइंट मान (डबल प्रेसिजन फ्लोट) सीपीयू पर सामान्य रूप से उपलब्ध होते हैं, वे जीपीयू पर सर्वाधिक समर्थित नहीं होते। कुछ जीपीयू विरासत नहीं वाली वस्तुएँ करते हैं, जबकि अन्यों को डबल प्रेसिजन फ्लोटिंग पॉइंट की कमी होती है। जीपीयू पर डबल प्रेसिजन फ्लोटिंग पॉइंट मानों को नकलीकृत करने के लिए प्रयास हुए हैं; चूंकि, इसमें हुई गति का संवाद जीपीयू पर कंप्यूटिंग को प्राथमिकता देने के लाभ को समाप्त कर देता है।

सदिशीकरण
जीपीयू पर अधिकांश ऑपरेशन सदिशीकृत ढंग से काम करते हैं: ऑपरेशन साथ चार मानों पर किया जा सकता है। उदाहरण के लिए, यदि रंग $⟨R1, G1, B1⟩$ को दूसरे रंग $⟨R2, G2, B2⟩$, से मॉड्यूलेट करना है, तो जीपीयू ऑपरेशन में परिणामी रंग $⟨R1*R2, G1*G2, B1*B2⟩$ प्रदर्शित कर सकता है। ग्राफिक्स में यह फंक्शनलिटी उपयोगी होती है क्योंकि लगभग हर बेसिक डेटा प्रकार सदिश होता है (2-, 3-, या 4-आयामी)।[संदर्भ आवश्यक] उदाहरणों में शीर्षबिंदु, रंग, सामान्य सदिश, और टेक्स्चर समन्वयांकन सम्मिलित होते हैं। इसका उपयोग कई अन्य अनुप्रयोगों में भी किया जा सकता है, और इनके उच्च प्रदर्शन के कारण, सदिश निर्देशिका, जिसे एकल निर्देशिका, एकाधिक डेटा (SIMD) के रूप में कहा जाता है, सीपीयू पर लंबे समय से उपलब्ध हैं।

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

कैश
ऐतिहासिक रूप से, सीपीयू ने हार्डवेयर-प्रबंधित सीपीयू कैश का उपयोग किया है, किन्तु पहले के जीपीयू केवल सॉफ्टवेयर-प्रबंधित स्थानीय यादें प्रदान करते थे। चूँकि, जैसे-जैसे सामान्य प्रयोजन के अनुप्रयोगों के लिए जीपीयू का उपयोग बढ़ रहा है, अत्याधुनिक जीपीयू को हार्डवेयर-प्रबंधित बहु-स्तरीय कैश के साथ डिज़ाइन किया जा रहा है, जिसने जीपीयू को मुख्यधारा कंप्यूटिंग की ओर बढ़ने में सहायता की है। उदाहरण के लिए, जीफोर्स 200 श्रृंखला GT200 आर्किटेक्चर जीपीयू में L2 कैश की सुविधा नहीं थी, Fermi (माइक्रोआर्किटेक्चर) जीपीयू में 768 KiB अंतिम-स्तर कैश है, केप्लर (माइक्रोआर्किटेक्चर) जीपीयू में 1.5 MiB अंतिम-स्तर कैश है, मैक्सवेल (माइक्रोआर्किटेक्चर) जीपीयू में 2 MiB अंतिम-स्तर कैश है, और पास्कल (माइक्रोआर्किटेक्चर) जीपीयू में 4 MiB अंतिम-स्तर कैश है।

फ़ाइल पंजीकृत करें
जीपीयू में बहुत बड़े रजिस्टर फ़ाइल होते हैं, जिससे उन्हें संदर्भ-स्विचिंग लेटेंसी को कम करने की अनुमति होती है। रजिस्टर फ़ाइल का आकार भी विभिन्न जीपीयू पीढ़ियों में बढ़ रहा है, जैसे मैक्सवेल (जीएम200), पैस्कल और वोल्टा जीपीयू में कुल रजिस्टर फ़ाइल का आकार 6 MiB, 14 MiB और 20 MiB है। तुलना में, सीपीयू पर रजिस्टर फ़ाइल का आकार छोटा होता है, सामान्यतः किलोबाइटों या सैंकड़ों किलोबाइटों का होता है।

ऊर्जा दक्षता
जीपीयू की उच्च प्रदर्शन का भुगतान उच्च विद्युत खपत की रूप में होता है, जिसकी पूर्ण भार में वास्तव में पीसी सिस्टम के शेष हिस्से के समान शक्ति होती है। पास्कल श्रृंखला जीपीयू (टेस्ला P100) की अधिकतम बिजली खपत 250W निर्दिष्ट की गई थी।

स्ट्रीम प्रोसेसिंग
जीपीयू विशेष रूप से ग्राफिक्स के लिए डिज़ाइन किए गए हैं और इसलिए ऑपरेशन और प्रोग्रामिंग में बहुत प्रतिबंधक होते हैं। इनके डिज़ाइन के कारण, जीपीयू केवल उन समस्याओं के लिए प्रभावी हैं जो स्ट्रीम प्रोसेसिंग का उपयोग करके हल किए जा सकती हैं और हार्डवेयर केवल कुछ विशेष तरीकों में प्रयोग किया जा सकता है। निम्नलिखित चर्चा, जिसमें वर्टेक्स, फ्रेगमेंट्स और टेक्स्चर्स का उल्लेख है, मुख्य रूप से ग्राफिक्स API (ओपेनजीएल या डायरेक्टएक्स) का उपयोग करके सामान्य-उद्देशीय गणना को करने के लिए किया जाने वाले पुराने जीपीयू प्रोग्रामिंग के प्रति है, जहां CUDA (एनविडिया, 2007) और ओपनसीएल (विक्रेता-निर्दिष्ट, 2008) सामान्य-उद्देशीय कंप्यूटिंग API की प्रस्तावना से, नए जीपीयू कोडों में अब गणना को ग्राफिक्स प्राथमिकियों के साथ मानचित्र करना आवश्यक नहीं होता। जीपीयू के स्ट्रीम प्रोसेसिंग की प्रकृति APIs का उपयोग किये जाने पर भी स्थायी रहती है। (उदाहरण के लिए, देखें) जीपीयू केवल स्वतंत्र वर्टेक्स और फ्रेगमेंट्स को प्रोसेस कर सकते हैं, लेकिन उन्हें परालल ढंग से कई तत्वों का प्रोसेस कर सकते हैं। यह खासतौर पर उपयुक्त होता है जब प्रोग्रामर बहुत सारे वर्टेक्स या फ्रेगमेंट्स को ही तरीके से प्रोसेस करना चाहता है। इस मायने में, जीपीयू स्ट्रीम प्रोसेसर्स हैं - प्रोसेसर्स जो बार में स्ट्रीम में बहुत सारे रेकर्ड्स पर कर्नल को चला कर पारलेल में काम कर सकते हैं। स्ट्रीम सामान्य रूप से समुच्चय होती है जिसमें समान गणना की आवश्यकता होती है। स्ट्रीम्स डेटा पैरालेलिज़म प्रदान करते हैं। कर्नेल की गणना करें वे फ़ंक्शंस होते हैं जिन्हें प्रत्येक स्ट्रीम में प्रत्येक तत्व पर क्रियान्वित किया जाता है। जीपीयू में, वर्टेक्स और फ्रेगमेंट्स स्ट्रीम में तत्व होते हैं और वर्टेक्स और फ्रेगमेंट शेडर्स उन पर चलाए जाने वाले कर्नल्स होते हैं। प्रत्येक तत्व के लिए, हम केवल इनपुट से पढ़ सकते हैं, इस पर कार्यवाही कर सकते हैं, और आउटपुट में लिख सकते हैं। एकाधिक इनपुट और एकाधिक आउटपुट रखने की अनुमति है, किन्तु मेमोरी का टुकड़ा कभी भी पढ़ने योग्य और लिखने योग्य नहीं होता है। अंकगणितिक घनत्व को मेमोरी संचयित करने के लिए प्रदर्शित ओपरेशनों की संख्या के रूप में परिभाषित किया जाता है। जीपीयू अनुप्रयोगों के लिए उच्च अंकगणितिक घनत्व महत्वपूर्ण होता है अन्यथा मेमोरी एक्सेस लेटेंसी गणना की गति को सीमित कर देगी। आदर्श जीपीयू अनुप्रयोगों में बड़े डेटा समुच्चय, उच्च पैराललिस्म, और डेटा तत्वों के बीच न्यूनता होती है।

कम्प्यूटेशनल संसाधन
जीपीयू पर विभिन्न प्रकार के गणनात्मक संसाधन होते हैं: वास्तव में, प्रोग्राम फ्रेमबफर के अतिरिक्त आउटपुट के लिए लिखने योग्य टेक्स्चर का प्रयोग कर सकता है। इसे या तो टेक्स्चर में रेंडर करने (RTT), बैकबफर को टेक्स्चर में कॉपी करने और उसे बैकबफर से बाप्रत्येक आने के लिए उपयोग करने (RTBCTT), या नवीनतम स्ट्रीम-आउट के माध्यम से किया जा सकता है।
 * प्रोग्राम करने योग्य प्रोसेसर - वर्टेक्स, प्रिमिटिव, फ्रैगमेंट और मुख्य रूप से कंप्यूट पाइपलाइन, जो प्रोग्रामर को डेटा स्ट्रीम पर कर्नल चलाने की अनुमति देते हैं।
 * रैस्टराइज़र - फ्रैगमेंट्स बनाता है और पर-वर्टेक्स स्थिरांक जैसे टेक्स्चर संयोजनों और रंग को इंटरपोलेट करता है।
 * बनावट इकाई - केवल पढ़ने योग्य मेमोरी इंटरफ़ेस
 * फ़्रेमबफ़र - केवल-लिखने योग्य मेमोरी इंटरफ़ेस

प्रवाह जैसी बनावट
जीपीयू में स्ट्रीम को लेने के लिए सबसे सामान्य रूप 2D ग्रिड होता है क्योंकि यह जीपीयू में निर्मित रेंडरिंग मॉडल के साथ प्राकृतिक रूप से मिलता है। बहुत सी गणनाएं प्राकृतिक रूप से ग्रिड में मानचित्र हो जाती हैं: आव्यूह बीजगणित, छवि प्रसंस्करण, भौतिक आधारित अनुकरण, और इसी तरह की अनुकरण।

चूँकि बनावट का उपयोग मेमोरी के रूप में किया जाता है, टेक्स्चर लुकअप्स फिर मेमोरी रीड के रूप में उपयोग किए जाते हैं। इस कारण से कुछ ऑपरेशन जीपीयू द्वारा स्वतः किए जा सकते हैं।

कर्नल
कंप्यूट कर्नेल को लूप (कंप्यूटिंग) के शरीर के रूप में माना जा सकता है। उदाहरण के लिए, सीपीयू पर ग्रिड पर काम करने वाले प्रोग्रामर के पास ऐसा कोड हो सकता है जो इस प्रकार दिखता है: जीपीयू पर, प्रोग्रामर केवल कर्नल के रूप में लूप के शरीर को और किस डेटा पर लूप चलाने के लिए ज्यामिति प्रसंस्करण को निमंत्रण करके निर्दिष्ट करता है।

प्रवाह नियंत्रण
वर्तमान भाषाओं में प्रवाह नियंत्रण इफ-थेन-एल्स फॉर तथा व्हिले प्रकार के लूप का उपयोग करके फंक्शन की फ्लो नियंत्रण कर सकते हैं। ऐसे फ्लो नियंत्रण संरचनाएं हाल ही में जीपीयू में जोड़ी गई हैं। कंडीशनल राइट्स को योग्य रीति से निर्मित फंक्शन/बिट ऑपरेशन के माध्यम से किया जा सकता है, लेकिन लूपिंग और कंडीशनल ब्रांचिंग का उपयोग नहीं हो सकता था।

हाल के जीपीयू ब्रांचिंग को अनुमति देते हैं, लेकिन सामान्यतः इसमें परफ़ॉर्मेंस दंडनीयता होती है। ब्रांचिंग का उपयोग सामान्य रूप से आंतरिक लूप में बचना चाहिए, चाहे वह सीपीयू या जीपीयू कोड में हो, और यदि हार्डवेयर समर्थन उपलब्ध नहीं है तो स्थिर ब्रांच निर्धारण, पूर्व-गणना, प्रेडिकेशन, लूप विभाजन और जेड-कल के विभिन्न तरीके का उपयोग किया जा सकता है।

मानचित्र
मानचित्र ऑपरेशन सरल रूप से स्ट्रीम में प्रत्येक तत्व पर दिए गए फंक्शन (कर्नल) को क्रियान्वित करता है। साधारण उदाहरण है स्ट्रीम में प्रत्येक मान को स्थिरांक (छवि की चमक बढ़ाना) से गुणा करना है। मानचित्र संचालन को जीपीयू पर सरलता से क्रियान्वित किया जा सकता है। प्रोग्रामर स्क्रीन पर प्रत्येक पिक्सेल के लिए टुकड़ा उत्पन्न करता है और प्रत्येक पर टुकड़ा प्रोग्राम क्रियान्वित करता है। समान आकार की परिणाम स्ट्रीम आउटपुट बफ़र में संग्रहीत होती है।

कम करें
कुछ गणनाएं बड़े स्ट्रीम से छोटे स्ट्रीम की गणना करने की आवश्यकता होती है (संभवतः केवल तत्व की स्ट्रीम)। इसे स्ट्रीम का संक्षेपण कहा जाता है। सामान्य रूप से, संक्षेपण को कई चरणों में पूरा किया जा सकता है। पिछले चरण के परिणाम को वर्तमान चरण के लिए इनपुट के रूप में उपयोग किया जाता है और जिस सीमा के अधीन ऑपरेशन क्रियान्वित किया जाता है, वह सीमा कम होती जाती है जब तक कि अंत में केवल स्ट्रीम तत्व बचता है।

स्ट्रीम फ़िल्टरिंग
स्ट्रीम फ़िल्टरिंग मूल रूप से गैर-समान्य संक्षेपण होता है। फ़िल्टरिंग में स्ट्रीम से कुछ मापदंडों पर आधारित तत्वों को हटाना सम्मिलित होता है।

स्कैन
स्कैन ऑपरेशन, जिसे समानांतर उपसर्ग योग भी कहा जाता है, सदिश (स्ट्रीम) को डेटा तत्वों और (विचित्र) जुड़ावी बाइनरी फ़ंक्शन '+' के साथ और पहचान तत्व 'i' के साथ लेता है। यदि इनपुट [a0, a1, a2, a3, ...] है, तो विशेष स्कैन आउटपुट [i, a0, a0 + a1, a0 + a1 + a2, ...] उत्पन्न करता है, जबकि समावेशी स्कैन आउटपुट [a0, a0 + a1, a0 + a1 + a2, a0 + a1 + a2 + a3, ...] उत्पन्न करता है और अस्तित्व की आवश्यकता नहीं होती है। यदि पहली नजर में यह ऑपरेशन स्रोतिया रूप से विकल्प लगता है, तो कुशल समानांतर स्कैन एल्गोरिदम संभव है और इन्हें ग्राफिक्स प्रोसेसिंग यूनिटों पर क्रियान्वित किया गया है। स्कैन ऑपरेशन में उदाहरण के लिए, क्विकसॉर्ट और स्पार्स आव्यूह -सदिश गुणन का उपयोग होता है।

बिखेरना
स्कैटर ऑपरेशन सबसे प्राकृतिक रूप से वर्टेक्स प्रोसेसर पर परिभाषित होता है। वर्टेक्स प्रोसेसर वर्टेक्स की स्थिति को समायोजित कर सकता है, जिससे प्रोग्रामर को नियंत्रित होता है कि ग्रिड पर डेटा कहाँ जमा की जाती है। अन्य विस्तार भी संभव हैं, जैसे कि वर्टेक्स द्वारा प्रभावित फील्ड कितना बड़ा होता है।

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

समर्पित कंप्यूट कर्नल में, स्कैटर को इंडेक्सड राइट्स द्वारा प्रदर्शित किया जा सकता है।

इकट्ठा करें
इकट्ठा करना (सदिश संबोधन) बिखराव का विपरीत है। स्कैटर मानचित्र के अनुसार तत्वों को पुन: व्यवस्थित करने के बाद, इकट्ठा किए गए मानचित्र स्कैटर के अनुसार तत्वों के क्रम को पुनर्स्थापित कर सकता है। समर्पित कंप्यूट कर्नेल में, अनुक्रमित रीड्स द्वारा इकट्ठा किया जा सकता है। अन्य शेडर्स में, इसे टेक्सचर-लुकअप के साथ प्रदर्शित किया जाता है।

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

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

डेटा संरचनाएं
जीपीयू पर विभिन्न प्रकार की डेटा संरचनाओं का प्रतिनिधित्व किया जा सकता है:


 * सघन सारणी डेटा संरचना
 * विरल आव्यूह (विरल सरणी) –  स्थिर या गतिशील
 * अनुकूली संरचनाएं (संघ प्रकार)

अनुप्रयोग
निम्नलिखित कुछ फील्ड हैं जहां सामान्य प्रयोजन कंप्यूटिंग के लिए जीपीयू का उपयोग किया गया है:


 * स्वचालित समानांतरीकरण
 * कम्प्यूटेशनल भौतिकी और भौतिकी इंजन (सामान्यतः न्यूटोनियन भौतिकी मॉडल पर आधारित)
 * कॉनवे का गेम ऑफ लाइफ, कपड़ा अनुकरण, यूलर समीकरणों के समाधान द्वारा द्रव असंपीड्य प्रवाह (द्रव गतिशीलता) या नेवियर-स्टोक्स समीकरण
 * सांख्यिकीय भौतिकी
 * आइसिंग मॉडल
 * फिल्टर गेज सिद्धांत
 * विभाजन (छवि प्रसंस्करण) – 2डी और 3डी
 * स्तर निर्धारित करने के विधि
 * परिकलित टोमोग्राफी पुनर्निर्माण
 * फास्ट फूरियर ट्रांसफॉर्म
 * जीपीयू सीखना – यंत्र अधिगम और डेटा खनन गणना, उदाहरण के लिए, सॉफ़्टवेयर BIDMach के साथ
 * k-निकटतम निकटतम एल्गोरिथ्म
 * फजी लॉजिक
 * टोन मैपिंग
 * ऑडियो सिग्नल प्रोसेसिंग
 * अंकीय संकेत प्रक्रिया (डीएसपी) के लिए जीपीयू का उपयोग करने के लिए ऑडियो और ध्वनि प्रभाव प्रसंस्करण
 * एनालॉग सिग्नल प्रोसेसिंग
 * भाषण प्रसंस्करण
 * डिजिटल इमेज प्रोसेसिंग
 * वीडियो प्रोसेसिंग
 * हार्डवेयर ने वीडियो डिकोडिंग और पोस्ट-प्रोसेसिंग को त्वरित किया
 * मोशन मुआवज़ा (एमओ कॉम्प)
 * व्युत्क्रम असतत कोसाइन परिवर्तन (iDCT)
 * वेरिएबल-लेंथ डिकोडिंग (वीएलडी), हफ़मैन कोडिंग
 * व्युत्क्रम परिमाणीकरण (आईक्यू, बुद्धिलब्धि के साथ भ्रमित न हों)
 * इन-लूप डीब्लॉकिंग
 * बिटस्ट्रीम प्रोसेसिंग (सीएवीएलसी/सीएबीएसी) इस कार्य के लिए विशेष प्रयोजन हार्डवेयर का उपयोग कर रही है क्योंकि यह क्रमिक कार्य है जो नियमित जीपीजीपीयू गणना के लिए उपयुक्त नहीं है।
 * deinterlacing
 * स्थानिक-अस्थायी डिइंटरलेसिंग
 * शोर में कमी
 * किनारा एनहांसमेंट
 * रंग सुधार
 * हार्डवेयर त्वरित वीडियो एन्कोडिंग और प्री-प्रोसेसिंग
 * वैश्विक चमक – किरण अनुरेखण (ग्राफिक्स), फोटॉन मैपिंग, रेडियोसिटी (कंप्यूटर ग्राफिक्स) अन्य के मध्य, उपसतह प्रकीर्णन
 * ज्यामितीय कंप्यूटिंग – रचनात्मक ठोस ज्यामिति, दूरी फील्ड, टकराव का पता लगाना, पारदर्शिता गणना, छाया निर्माण
 * वैज्ञानिक कंप्यूटिंग
 * मोंटे कार्लो प्रकाश प्रसार का अनुकरण
 * मौसम की भविष्यवाणी
 * जलवायु अनुसंधान
 * जीपीयू पर आणविक मॉडलिंग नाम = हसन खोंडकर एस. 2014 पीपी. 612-17
 * क्वांटम यांत्रिक भौतिकी
 * खगोल भौतिकी

इलेक्ट्रॉनिक डिज़ाइन स्वचालन स्वचालन
 * जैव सूचना विज्ञान
 * कम्प्यूटेशनल वित्त
 * मेडिकल इमेजिंग
 * क्लिनिकल निर्णय समर्थन प्रणाली (सीडीएसएस)
 * कंप्यूटर दृष्टि
 * डिजिटल सिग्नल प्रोसेसिंग / सिग्नल प्रोसेसिंग
 * नियंत्रण इंजीनियरिंग
 * गतिविधि अनुसंधान
 * इसका कार्यान्वयन: संसाधन बाधित परियोजना शेड्यूलिंग समस्या को हल करने वाला जीपीयू टैबू अविष्कार एल्गोरिदम गिटहब पर निःशुल्क उपलब्ध है; नर्स शेड्यूलिंग समस्या को हल करने वाला जीपीयू एल्गोरिदम GitHub पर निःशुल्क उपलब्ध है।
 * न्यूरल नेटवर्क्स
 * डेटाबेस संचालन
 * कम्प्यूटेशनल तरल सक्रिय विशेष रूप फिल्टर बोल्ट्ज़मैन विधियाँ विधियों का उपयोग करते हुए
 * क्रिप्टोग्राफी और क्रिप्ट विश्लेषण
 * प्रदर्शन मॉडलिंग: जीपीयू पर कम्प्यूटेशनल रूप से गहन कार्य<संदर्भ नाम = हसन खोंडकर एस. 2014 पीपी. 612-17 />
 * इनका कार्यान्वयन: एमडी6, उच्च एन्क्रिप्शन मानक (एईएस), डेटा एन्क्रिप्शन मानक (डीईएस), आरएसए (एल्गोरिदम), अण्डाकार वक्र क्रिप्टोग्राफी (ईसीसी)
 * पासवर्ड क्रैक करना
 * क्रिप्टोकोर्रेंसी लेनदेन प्रसंस्करण (खनन) (बिटकॉइन नेटवर्क#खनन)
 * एंटीवायरस सॉफ्टवेयर
 * अतिक्रमण पता चलना
 * समुच्चयी@होम, आइंस्टीन@होम जैसी वितरित कंप्यूटिंग परियोजनाओं के लिए कंप्यूटिंग शक्ति बढ़ाएँ

जैव सूचना विज्ञान
जैव सूचना विज्ञान में जीपीजीपीयू का उपयोग:

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

इस एप्लिकेशन के लिए नवीडिया द्वारा सिफारिश की गई जीपीयू: ‡ Q=क्वाड्रो जीपीयू, T=टेस्ला जीपीयू। विकासक या आईएसवी से प्रमाणिकरण सूचना प्राप्त करने के लिए संपर्क करें।

यह भी देखें

 * तेज़ द्वितीय
 * भौतिकी इंजन
 * उन्नत सिमुलेशन लाइब्रेरी
 * भौतिकी प्रसंस्करण इकाई (पीपीयू)
 * धातु के निकट
 * ऑडियो प्रोसेसिंग यूनिट
 * लारबी (माइक्रोआर्किटेक्चर)
 * एआई त्वरक
 * गहन शिक्षण प्रोसेसर (डीएलपी)
 * जीपीयूलिब