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

From Vigyanwiki
No edit summary
No edit summary
 
(12 intermediate revisions by 3 users not shown)
Line 3: Line 3:
[[ ग्राफ़िक्स प्रोसेसिंग युनिट |ग्राफ़िक्स प्रोसेसिंग युनिट]] ('''जीपीजीपीयू''', या अधिकांशतः '''जीपीजीपी''') '''पर सामान्य प्रयोजन कंप्यूटिंग''' ग्राफिक्स प्रोसेसिंग यूनिट (जीपीयू) का उपयोग करके कंप्यूटेशन का कार्य करना है, जो सामान्यतः [[सेंट्रल प्रोसेसिंग यूनिट|सेंट्रल प्रोसेसिंग यूनिट (]]सीपीयू) द्वारा उपयोग किए जाते हैं। और [[ कंप्यूटर चित्रलेख |कंप्यूटर ग्राफिक्स]] के लिए गणना करता है,<ref>{{Cite conference |last1=Fung |first1=James |last2=Tang |first2=Felix |last3=Mann |first3=Steve |date=7–10 October 2002 |title=कंप्यूटर विज़न के लिए कंप्यूटर ग्राफ़िक्स हार्डवेयर का उपयोग करते हुए मध्यस्थ वास्तविकता|url=http://www.eyetap.org/papers/docs/iswc02-fung.pdf |conference=Proceedings of the International Symposium on Wearable Computing 2002 (ISWC2002) |location=Seattle, Washington, USA |pages=83–89 |archive-url=https://web.archive.org/web/20120402173637/http://www.eyetap.org/~fungja/glorbits_final.pdf |archive-date=2 April 2012}}</ref><ref name="Aimone">{{cite journal | url=https://link.springer.com/article/10.1007/s00779-003-0239-6 | doi=10.1007/s00779-003-0239-6 | title=पहनने योग्य कंप्यूटर मध्यस्थता वास्तविकता के लिए जाइरोस्कोपिक ट्रैकिंग द्वारा सहायता प्राप्त एक आई ''टैप'' वीडियो-आधारित फीचर रहित प्रक्षेप्य गति अनुमान| year=2003 | last1=Aimone | first1=Chris | last2=Fung | first2=James | last3=Mann | first3=Steve | journal=Personal and Ubiquitous Computing | volume=7 | issue=5 | pages=236–248 | s2cid=25168728 }}</ref><ref>[http://www.eyetap.org/papers/docs/procicassp2004.pdf "Computer Vision Signal Processing on Graphics Processing Units", Proceedings of the IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP 2004)] {{webarchive|url=https://web.archive.org/web/20110819000326/http://www.eyetap.org/papers/docs/procicassp2004.pdf |date=19 August 2011 }}: Montreal, Quebec, Canada, 17–21 May 2004, pp. V-93 – V-96</ref><ref>Chitty, D. M. (2007, July). [https://www.cs.york.ac.uk/rts/docs/GECCO_2007/docs/p1566.pdf A data parallel approach to genetic programming using programmable graphics hardware] {{webarchive|url=https://web.archive.org/web/20170808190114/https://www.cs.york.ac.uk/rts/docs/GECCO_2007/docs/p1566.pdf |date=8 August 2017 }}. In Proceedings of the 9th annual conference on Genetic and evolutionary computation (pp. 1566-1573). ACM.</ref> कंप्यूटर में कई वीडियो कार्डों का उपयोग करना, या बड़ी संख्या में ग्राफिक्स चिप्स का उपयोग करना, ग्राफिक्स प्रोसेसिंग के पहले से ही पैरलेल स्वरूप को और भी पैरलेलाइज़ करता है।<ref>[http://eyetap.org/papers/docs/procicpr2004.pdf "Using Multiple Graphics Cards as a General Purpose Parallel Computer: Applications to Computer Vision", Proceedings of the 17th International Conference on Pattern Recognition (ICPR2004)] {{webarchive|url=https://web.archive.org/web/20110718193841/http://eyetap.org/papers/docs/procicpr2004.pdf |date=18 July 2011 }}, Cambridge, United Kingdom, 23–26 August 2004, volume 1, pages 805–808.</ref>
[[ ग्राफ़िक्स प्रोसेसिंग युनिट |ग्राफ़िक्स प्रोसेसिंग युनिट]] ('''जीपीजीपीयू''', या अधिकांशतः '''जीपीजीपी''') '''पर सामान्य प्रयोजन कंप्यूटिंग''' ग्राफिक्स प्रोसेसिंग यूनिट (जीपीयू) का उपयोग करके कंप्यूटेशन का कार्य करना है, जो सामान्यतः [[सेंट्रल प्रोसेसिंग यूनिट|सेंट्रल प्रोसेसिंग यूनिट (]]सीपीयू) द्वारा उपयोग किए जाते हैं। और [[ कंप्यूटर चित्रलेख |कंप्यूटर ग्राफिक्स]] के लिए गणना करता है,<ref>{{Cite conference |last1=Fung |first1=James |last2=Tang |first2=Felix |last3=Mann |first3=Steve |date=7–10 October 2002 |title=कंप्यूटर विज़न के लिए कंप्यूटर ग्राफ़िक्स हार्डवेयर का उपयोग करते हुए मध्यस्थ वास्तविकता|url=http://www.eyetap.org/papers/docs/iswc02-fung.pdf |conference=Proceedings of the International Symposium on Wearable Computing 2002 (ISWC2002) |location=Seattle, Washington, USA |pages=83–89 |archive-url=https://web.archive.org/web/20120402173637/http://www.eyetap.org/~fungja/glorbits_final.pdf |archive-date=2 April 2012}}</ref><ref name="Aimone">{{cite journal | url=https://link.springer.com/article/10.1007/s00779-003-0239-6 | doi=10.1007/s00779-003-0239-6 | title=पहनने योग्य कंप्यूटर मध्यस्थता वास्तविकता के लिए जाइरोस्कोपिक ट्रैकिंग द्वारा सहायता प्राप्त एक आई ''टैप'' वीडियो-आधारित फीचर रहित प्रक्षेप्य गति अनुमान| year=2003 | last1=Aimone | first1=Chris | last2=Fung | first2=James | last3=Mann | first3=Steve | journal=Personal and Ubiquitous Computing | volume=7 | issue=5 | pages=236–248 | s2cid=25168728 }}</ref><ref>[http://www.eyetap.org/papers/docs/procicassp2004.pdf "Computer Vision Signal Processing on Graphics Processing Units", Proceedings of the IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP 2004)] {{webarchive|url=https://web.archive.org/web/20110819000326/http://www.eyetap.org/papers/docs/procicassp2004.pdf |date=19 August 2011 }}: Montreal, Quebec, Canada, 17–21 May 2004, pp. V-93 – V-96</ref><ref>Chitty, D. M. (2007, July). [https://www.cs.york.ac.uk/rts/docs/GECCO_2007/docs/p1566.pdf A data parallel approach to genetic programming using programmable graphics hardware] {{webarchive|url=https://web.archive.org/web/20170808190114/https://www.cs.york.ac.uk/rts/docs/GECCO_2007/docs/p1566.pdf |date=8 August 2017 }}. In Proceedings of the 9th annual conference on Genetic and evolutionary computation (pp. 1566-1573). ACM.</ref> कंप्यूटर में कई वीडियो कार्डों का उपयोग करना, या बड़ी संख्या में ग्राफिक्स चिप्स का उपयोग करना, ग्राफिक्स प्रोसेसिंग के पहले से ही पैरलेल स्वरूप को और भी पैरलेलाइज़ करता है।<ref>[http://eyetap.org/papers/docs/procicpr2004.pdf "Using Multiple Graphics Cards as a General Purpose Parallel Computer: Applications to Computer Vision", Proceedings of the 17th International Conference on Pattern Recognition (ICPR2004)] {{webarchive|url=https://web.archive.org/web/20110718193841/http://eyetap.org/papers/docs/procicpr2004.pdf |date=18 July 2011 }}, Cambridge, United Kingdom, 23–26 August 2004, volume 1, pages 805–808.</ref>


अनिवार्य रूप से, जीपीजीपीयू [[ ग्राफ़िक्स पाइपलाइन |ग्राफ़िक्स पाइपलाइन]] एक या अधिक जीपीयू और सीपीयू के बीच प्रकार की [[समानांतर कंप्यूटिंग]] है जो डेटा का विश्लेषण करती है जैसे कि यह छवि या अन्य ग्राफिक रूप में होता है। जबकि जीपीयू कम आवृत्तियों पर संचालित होते हैं, उनमें सामान्यतःअविष्कार पर [[मल्टी-कोर प्रोसेसर]] की संख्या कई गुना होती है। इस प्रकार, जीपीयू पारंपरिक सीपीयू की समानता में प्रति सेकंड कहीं अधिक चित्र और ग्राफिकल डेटा संसाधित कर सकता है। डेटा को ग्राफ़िकल रूप में माइग्रेट करना और फिर उसे स्कैन और विश्लेषण करने के लिए जीपीयू का उपयोग करना बड़ा स्पीडअप बना सकता है।
अनिवार्य रूप से, जीपीजीपीयू [[ ग्राफ़िक्स पाइपलाइन |ग्राफ़िक्स पाइपलाइन]] या अधिक जीपीयू और सीपीयू के बीच प्रकार की [[समानांतर कंप्यूटिंग]] है जो डेटा का विश्लेषण करती है जैसे कि यह छवि या अन्य ग्राफिक रूप में होता है। जबकि जीपीयू कम आवृत्तियों पर संचालित होते हैं, उनमें सामान्यतः अविष्कार पर [[मल्टी-कोर प्रोसेसर]] की संख्या कई गुना होती है। इस प्रकार, जीपीयू पारंपरिक सीपीयू की समानता में प्रति सेकंड कहीं अधिक चित्र और ग्राफिकल डेटा संसाधित कर सकता है। डेटा को ग्राफ़िकल रूप में माइग्रेट करना और फिर उसे स्कैन और विश्लेषण करने के लिए जीपीयू का उपयोग करना बड़ा स्पीडअप बना सकता है।
   
   
21वीं सदी की प्रारंभ में जीपीजीपीयू पाइपलाइनोंअविष्कार [[ ग्राफ़िक्स प्रसंस्करण |ग्राफ़िक्स प्रसंस्करण]] (उदाहरण के लिए उत्तम शेडर्स के लिए) के लिए विकसित किया गया था। ये पाइपलाइनें वैज्ञानिक कंप्यूटिंग आवश्यकताओं के लिए उपयुक्त पाई गईं और तब से इन्हें इस दिशा में विकसित किया गया है।
21वीं सदी की प्रारंभ में जीपीजीपीयू पाइपलाइनों अविष्कार [[ ग्राफ़िक्स प्रसंस्करण |ग्राफ़िक्स प्रसंस्करण]] (उदाहरण के लिए उत्तम शेडर्स के लिए) के लिए विकसित किया गया था। ये पाइपलाइनें वैज्ञानिक कंप्यूटिंग आवश्यकताओं के लिए उपयुक्त पाई गईं और तब से इन्हें इस दिशा में विकसित किया गया है।
   
   
==इतिहास==
==इतिहास==
   
   
सिद्धांत में, जोड़, गुणा और अन्य गणितीय कार्यों सहित किसी भी इच्छानुसारअविष्कार से [[बूलियन फ़ंक्शन]] को तर्क ऑपरेटरों के [[कार्यात्मक पूर्णता]] सेट से बनाया जा सकता है। 1987 में, कॉनवे का गेम ऑफ लाइफ बिट सदिशअविष्कार पर [[ टिल तिल |टिल तिल]] के विशेष अनुक्रम को लागू करने के लिए [[ बन जाता है |बन जाता है]] नामक प्रारंभिक स्ट्रीम प्रोसेसिंग का उपयोग करके सामान्य प्रयोजन कंप्यूटिंग के पहले उदाहरणों में से बन गया।<ref>{{cite journal|last=Hull|first=Gerald|title=ज़िंदगी|journal=Amazing Computing|volume=2|issue=12|pages=81–84|date=December 1987|url=https://archive.org/stream/amazing-computing-magazine-1987-12/Amazing_Computing_Vol_02_12_1987_Dec#page/n81/mode/2up}}</ref>
प्राथमिक रूप से, किसी भी अनियमित बूलीय सम्बन्ध, समावेश, गुणा, और अन्य गणितीय सम्बन्धों सहित, कार्यात्मक संपूर्ण समुच्चय के लॉजिक ऑपरेटर से निर्मित किया जा सकता है। 1987 में, कॉनवे का गेम ऑफ लाइफ पहले उदाहरणों में से बन गया जो प्रारंभिक स्ट्रीम प्रोसेसर को ब्लिटर के रूप में उपयोग करके बिट सदिश्स पर लॉजिकल ऑपरेशन की विशेष क्रम को आह्वान करने के लिए हुआ था।<ref>{{cite journal|last=Hull|first=Gerald|title=ज़िंदगी|journal=Amazing Computing|volume=2|issue=12|pages=81–84|date=December 1987|url=https://archive.org/stream/amazing-computing-magazine-1987-12/Amazing_Computing_Vol_02_12_1987_Dec#page/n81/mode/2up}}</ref>
   
   
ग्राफिक्स प्रोसेसर पर प्रोग्रामेबल शेडर्स और [[ तैरनेवाला स्थल |फ्लोटिंग पॉइंट]]अविष्कार सपोर्ट दोनों के आगमन के साथ, 2001 के बाद जीपीयू पर सामान्य प्रयोजन कंप्यूटिंग अधिक व्यावहारिक और लोकप्रिय हो गई। विशेष रूप से, [[मैट्रिक्स (गणित)|आव्यूह (गणित)]]या सदिश (गणित और भौतिकी) से जुड़ी समस्याएं{{snd}}विशेष रूप से दो-, तीन-, या चार-आयामी सदिश {{snd}} को जीपीयू में अनुवाद करना आसान था, जो उन प्रकारों पर मूल गति और समर्थन के साथ कार्य करता है। जीपीजीपीयू के लिए महत्वपूर्ण मील का पत्थर वर्ष 2003 था जब दो अनुसंधान समूहों ने स्वतंत्र रूप से जीपीयू पर सामान्य रैखिक बीजगणित समस्याओं के समाधान के लिए जीपीयू-आधारित दृष्टिकोण की अविष्कार की जो सीपीयू की समानता में तेजी से चलते थे।<ref>{{Cite journal |last1=Krüger |first1=Jens |last2=Westermann |first2=Rüdiger |date=July 2003 |title=संख्यात्मक एल्गोरिदम के GPU कार्यान्वयन के लिए रैखिक बीजगणित ऑपरेटर|url=https://dl.acm.org/doi/10.1145/882262.882363 |journal=ACM Transactions on Graphics |language=en |volume=22 |issue=3 |pages=908–916 |doi=10.1145/882262.882363 |issn=0730-0301}}</ref><ref>{{Cite journal |last1=Bolz |first1=Jeff |last2=Farmer |first2=Ian |last3=Grinspun |first3=Eitan |last4=Schröder |first4=Peter |date=July 2003 |title=Sparse matrix solvers on the GPU: conjugate gradients and multigrid |url=https://dl.acm.org/doi/10.1145/882262.882364 |journal=ACM Transactions on Graphics |language=en |volume=22 |issue=3 |pages=917–924 |doi=10.1145/882262.882364 |issn=0730-0301}}</ref> जीपीयू को सामान्य प्रयोजन प्रोसेसर के रूप में उपयोग करने के इन प्रारंभिक प्रयासों के लिए ग्राफिक्स प्राइमेटिव के संदर्भ में कम्प्यूटेशनल समस्याओं को सुधारने की आवश्यकता थी, जैसा कि ग्राफिक्स प्रोसेसर, [[ओपन]]जीएल और [[डायरेक्टएक्स]] के लिए दो प्रमुख एपीआई द्वारा समर्थित है। इस बोझिल अनुवाद को सामान्य प्रयोजन प्रोग्रामिंग भाषाओं और एपीआई जैसे [[लिब श]]/रैपिडमाइंड, [[ब्रुकजीपीयू]] और एक्सेलेरेटर के आगमन से रोका गया था।<ref>{{cite journal |last1=Tarditi |first1=David |first2=Sidd |last2=Puri |first3=Jose |last3=Oglesby |title=Accelerator: using data parallelism to program GPUs for general-purpose uses |journal=ACM SIGARCH Computer Architecture News |volume=34 |issue=5 |date=2006|url=https://www.cs.cmu.edu/afs/cs/academic/class/15740-f07/public/discussion-papers/26-tarditi-asplos06.pdf|doi=10.1145/1168919.1168898 }}</ref><ref>{{cite journal |last1=Che |first1=Shuai |last2=Boyer |first2=Michael |last3=Meng |first3=Jiayuan |last4=Tarjan |first4=D. |last5=Sheaffer |first5=Jeremy W. |last6=Skadron |first6=Kevin |title=CUDA का उपयोग करके ग्राफिक्स प्रोसेसर पर सामान्य प्रयोजन अनुप्रयोगों का प्रदर्शन अध्ययन|journal=J. Parallel and Distributed Computing |volume=68 |issue=10 |date=2008 |pages=1370–1380 |doi=10.1016/j.jpdc.2008.05.014 |df=dmy-all |citeseerx=10.1.1.143.4849 }}</ref><ref>{{cite journal |last1=Glaser |first1=J. |last2=Nguyen |first2=T. D. |last3=Anderson |first3=J. A. |last4=Lui |first4=P. |last5=Spiga |first5=F. |last6=Millan |first6=J. A. |last7=Morse |first7=D. C. |last8=Glotzer |first8=S. C. |date=2015 |title=जीपीयू पर सामान्य प्रयोजन आणविक गतिशीलता सिमुलेशन की मजबूत स्केलिंग|journal=Computer Physics Communications |volume=192 |pages=97–107 | doi=10.1016/j.cpc.2015.02.028|arxiv=1412.3387 |bibcode=2015CoPhC.192...97G | doi-access=free}}</ref>
ग्राफिक्स प्रोसेसर पर प्रोग्रामेबल शेडर्स और [[ तैरनेवाला स्थल |फ्लोटिंग पॉइंट]] अविष्कार सपोर्ट दोनों के आगमन के साथ, 2001 के बाद जीपीयू पर सामान्य प्रयोजन कंप्यूटिंग अधिक व्यावहारिक और लोकप्रिय हो गई। विशेष रूप से, [[मैट्रिक्स (गणित)|आव्यूह (गणित)]]या सदिश (गणित और भौतिकी) से जुड़ी समस्याएं{{snd}}विशेष रूप से दो-, तीन-, या चार-आयामी सदिश {{snd}} को जीपीयू में अनुवाद करना आसान था, जो उन प्रकारों पर मूल गति और समर्थन के साथ कार्य करता है। जीपीजीपीयू के लिए महत्वपूर्ण मील का पत्थर वर्ष 2003 था जब दो अनुसंधान समुच्चयों ने स्वतंत्र रूप से जीपीयू पर सामान्य रैखिक बीजगणित समस्याओं के समाधान के लिए जीपीयू-आधारित दृष्टिकोण की अविष्कार की जो सीपीयू की समानता में तेजी से चलते थे।<ref>{{Cite journal |last1=Krüger |first1=Jens |last2=Westermann |first2=Rüdiger |date=July 2003 |title=संख्यात्मक एल्गोरिदम के GPU कार्यान्वयन के लिए रैखिक बीजगणित ऑपरेटर|url=https://dl.acm.org/doi/10.1145/882262.882363 |journal=ACM Transactions on Graphics |language=en |volume=22 |issue=3 |pages=908–916 |doi=10.1145/882262.882363 |issn=0730-0301}}</ref><ref>{{Cite journal |last1=Bolz |first1=Jeff |last2=Farmer |first2=Ian |last3=Grinspun |first3=Eitan |last4=Schröder |first4=Peter |date=July 2003 |title=Sparse matrix solvers on the GPU: conjugate gradients and multigrid |url=https://dl.acm.org/doi/10.1145/882262.882364 |journal=ACM Transactions on Graphics |language=en |volume=22 |issue=3 |pages=917–924 |doi=10.1145/882262.882364 |issn=0730-0301}}</ref> जीपीयू को सामान्य प्रयोजन प्रोसेसर के रूप में उपयोग करने के इन प्रारंभिक प्रयासों के लिए ग्राफिक्स प्राइमेटिव के संदर्भ में कम्प्यूटेशनल समस्याओं को सुधारने की आवश्यकता थी, जैसा कि ग्राफिक्स प्रोसेसर, [[ओपन]]जीएल और [[डायरेक्टएक्स]] के लिए दो प्रमुख एपीआई द्वारा समर्थित है। इस बोझिल अनुवाद को सामान्य प्रयोजन प्रोग्रामिंग लैंग्वेज और एपीआई जैसे [[लिब श]]/रैपिडमाइंड, [[ब्रुकजीपीयू]] और एक्सेलेरेटर के आगमन से रोका गया था।<ref>{{cite journal |last1=Tarditi |first1=David |first2=Sidd |last2=Puri |first3=Jose |last3=Oglesby |title=Accelerator: using data parallelism to program GPUs for general-purpose uses |journal=ACM SIGARCH Computer Architecture News |volume=34 |issue=5 |date=2006|url=https://www.cs.cmu.edu/afs/cs/academic/class/15740-f07/public/discussion-papers/26-tarditi-asplos06.pdf|doi=10.1145/1168919.1168898 }}</ref><ref>{{cite journal |last1=Che |first1=Shuai |last2=Boyer |first2=Michael |last3=Meng |first3=Jiayuan |last4=Tarjan |first4=D. |last5=Sheaffer |first5=Jeremy W. |last6=Skadron |first6=Kevin |title=CUDA का उपयोग करके ग्राफिक्स प्रोसेसर पर सामान्य प्रयोजन अनुप्रयोगों का प्रदर्शन अध्ययन|journal=J. Parallel and Distributed Computing |volume=68 |issue=10 |date=2008 |pages=1370–1380 |doi=10.1016/j.jpdc.2008.05.014 |df=dmy-all |citeseerx=10.1.1.143.4849 }}</ref><ref>{{cite journal |last1=Glaser |first1=J. |last2=Nguyen |first2=T. D. |last3=Anderson |first3=J. A. |last4=Lui |first4=P. |last5=Spiga |first5=F. |last6=Millan |first6=J. A. |last7=Morse |first7=D. C. |last8=Glotzer |first8=S. C. |date=2015 |title=जीपीयू पर सामान्य प्रयोजन आणविक गतिशीलता सिमुलेशन की मजबूत स्केलिंग|journal=Computer Physics Communications |volume=192 |pages=97–107 | doi=10.1016/j.cpc.2015.02.028|arxiv=1412.3387 |bibcode=2015CoPhC.192...97G | doi-access=free}}</ref>
   
   
इसके बाद एनवीडिया का [[CUDA]] आया, जिसने प्रोग्रामर्स को अधिक सामान्य उच्च-प्रदर्शन कंप्यूटिंग अवधारणाओं के पक्ष में अंतर्निहित ग्राफिकल अवधारणाओं को अनदेखा करने की अनुमति दी।<ref name="du">{{Cite journal |doi= 10.1016/j.parco.2011.10.002 |title= From CUDA to OpenCL: Towards a performance-portable solution for multi-platform GPU programming |journal= Parallel Computing |volume= 38 |issue= 8 |pages= 391–407 |year= 2012 |last1= Du |first1= Peng |last2= Weber |first2= Rick |last3= Luszczek |first3= Piotr |last4= Tomov |first4= Stanimire |last5= Peterson |first5= Gregory |last6= Dongarra |first6= Jack |author-link6= Jack Dongarra |df= dmy-all |citeseerx= 10.1.1.193.7712 }}</ref> नई, हार्डवेयर-विक्रेता-स्वतंत्र पेशकशों में माइक्रोसॉफ्टअविष्कार का [[DirectCompute|डायरेक्टकंप्यूट]]अविष्कार और एप्पल/ख्रोनॉस ग्रुप का [[OpenCL|ओपनसीएल]] सम्मिलित हैं।<ref name="du" /> इसका कारण यह है कि आधुनिक जीपीजीपीयू पाइपलाइन डेटा को ग्राफिकल रूप में पूर्ण और स्पष्ट रूपांतरण की आवश्यकता के बिना जीपीयू की गति का लाभ उठा सकती है।
इसके बाद एनवीडिया का [[CUDA]] ने आने वाले प्रोग्रामर्स को उच्च प्रदर्शन गणना संबंधी सामान्य अधिक संपर्कित ग्राफिकल अवधारणाओं को नज़रअंदाज़ करके अन्य सामान्य उच्च प्रदर्शन गणना अवधारणाओं का उपयोग करने की अनुमति दी।<ref name="du">{{Cite journal |doi= 10.1016/j.parco.2011.10.002 |title= From CUDA to OpenCL: Towards a performance-portable solution for multi-platform GPU programming |journal= Parallel Computing |volume= 38 |issue= 8 |pages= 391–407 |year= 2012 |last1= Du |first1= Peng |last2= Weber |first2= Rick |last3= Luszczek |first3= Piotr |last4= Tomov |first4= Stanimire |last5= Peterson |first5= Gregory |last6= Dongarra |first6= Jack |author-link6= Jack Dongarra |df= dmy-all |citeseerx= 10.1.1.193.7712 }}</ref> नई, हार्डवेयर विक्रेता-स्वतंत्र प्रस्तुतिों में माइक्रोसॉफ्ट के [[DirectCompute|डायरेक्टकंप्यूट]] अविष्कार और एप्पल/ख्रोनॉस ग्रुप का [[OpenCL|ओपनसीएल]] सम्मिलित हैं।<ref name="du" /> सका मतलब है कि आधुनिक जीपीयू पाइपलाइन्स ग्राफिकल रूप में डेटा का पूरा और स्पष्ट रूप से परिवर्तन न करके जीपीयू की गति का लाभ उठा सकते हैं।
   
   
GPGPU.org के संस्थापक मार्क हैरिस ने GPजीपीयू शब्द गढ़ा।
GPGPU.org के संस्थापक मार्क हैरिस ने जीपीयू शब्द गढ़ा।
   
   
==कार्यान्वयन==
==कार्यान्वयन==
कोई भी भाषा जो सीपीयू पर चल रहे कोड को रिटर्न वैल्यू के लिए जीपीयू शेडर को पोल करने की अनुमति देती है, जीपीजीपीयू फ्रेमवर्क बना सकती है। समानांतर कंप्यूटिंग के लिए प्रोग्रामिंग मानकों में ओपनसीएल (विक्रेता-स्वतंत्र), ओपनएसीसी, [[ओपनएमपी]] और [[ओपनएचएमपीपी]] सम्मिलित हैं।
किसी भी भाषा को जो कंप्यूटर पर चल रहे कोड को जीपीयू शेडर से वापसी मूल्यों के लिए पोल करने की अनुमति देती है, जनरल-पर्पस ग्राफिक्स प्रोसेसिंग यूनिट (जीपीयू) फ्रेमवर्क बना सकती है। पैरलल कंप्यूटिंग के लिए प्रोग्रामिंग मानकों में ओपनसीएल (विक्रेता-स्वतंत्र), ओपनएसीसी, [[ओपनएमपी]] और [[ओपनएचएमपीपी]] प्रमुख हैं।


{{As of|2016}}, ओपनसीएल प्रमुख ओपन सामान्य प्रयोजन जीपीयू कंप्यूटिंग लैंग्वेज है, और [[क्रोनोस समूह]] द्वारा परिभाषित खुला मानक है। ओपनसीएल [[क्रॉस-प्लेटफॉर्म]] जीपीजीपीयू प्लेटफॉर्म प्रदान करता है जो सीपीयू पर डेटा समानांतर गणना का अतिरिक्त समर्थन करता है। ओपनसीएल इंटेल, एएमडी, [[ NVIDIA | एनविडिया]]अविष्कार और एआरएम प्लेटफार्मों पर सक्रिय रूप से समर्थित है। ख्रोनोस ग्रुप ने SYCL को भी मानकीकृत और कार्यान्वित किया है, जो शुद्ध C++11 पर आधारित एकल-स्रोत डोमेन विशिष्ट एम्बेडेड भाषा के रूप में OpenCL के लिए उच्च-स्तरीय प्रोग्रामिंग मॉडल है।
{{As of|2016}}, ओपनसीएल प्रमुख ओपन सामान्य प्रयोजन जीपीयू कंप्यूटिंग लैंग्वेज है, और [[क्रोनोस समूह|क्रोनोस ग्रुप]] द्वारा परिभाषित खुला मानक है। ओपनसीएल [[क्रॉस-प्लेटफॉर्म]] जीपीजीपीयू प्लेटफॉर्म प्रदान करता है जो सीपीयू पर डेटा समानांतर गणना का अतिरिक्त समर्थन करता है। ओपनसीएल इंटेल, एएमडी,[[ NVIDIA | एनविडिया]] अविष्कार और एआरएम प्लेटफार्मों पर सक्रिय रूप से समर्थित है। ख्रोनोस ग्रुप ने अभी तक स्टैंडर्डाइज और एकीकृत किया है और SYCL को भी अमल में लाया है, जो ओपनसीएल के लिए हाईर-लेवल प्रोग्रामिंग मॉडल है जो मूल C++11 पर आधारित एकल-स्रोत डोमेन-निर्दिष्ट एम्बेडेड भाषा है।


प्रमुख स्वामित्व ढांचा एनवीडिया सीयूडीए है।<ref>{{cite web |url=http://www.hpcwire.com/hpcwire/2012-02-28/opencl_gains_ground_on_cuda.html |title=ओपनसीएल ने सीयूडीए पर बढ़त हासिल की|access-date=2012-04-10 |url-status=live |archive-url=https://web.archive.org/web/20120423060057/http://www.hpcwire.com/hpcwire/2012-02-28/opencl_gains_ground_on_cuda.html |archive-date=23 April 2012 |df=dmy-all |date=2012-02-28 }} "As the two major programming frameworks for GPU computing, OpenCL and CUDA have been competing for mindshare in the developer community for the past few years."</ref> एनवीडिया ने 2006 में CUDA, सॉफ्टवेयर डेवलपमेंट किट (एसडीके) और [[अप्लिकेशन प्रोग्रामिंग अंतरफलक]] (एपीआई) लॉन्च किया, जो [[GeForce 8 श्रृंखला]] और बाद के जीपीयू पर निष्पादन के लिए एल्गोरिदम को कोड करने के लिए प्रोग्रामिंग लैंग्वेज [[सी (प्रोग्रामिंग भाषा)|सी (प्रोग्रामिंग लैंग्वेज )]] का उपयोग करने की अनुमति देता है।
प्रमुख स्वामित्व ढांचा एनवीडिया सीयूडीए है।<ref>{{cite web |url=http://www.hpcwire.com/hpcwire/2012-02-28/opencl_gains_ground_on_cuda.html |title=ओपनसीएल ने सीयूडीए पर बढ़त हासिल की|access-date=2012-04-10 |url-status=live |archive-url=https://web.archive.org/web/20120423060057/http://www.hpcwire.com/hpcwire/2012-02-28/opencl_gains_ground_on_cuda.html |archive-date=23 April 2012 |df=dmy-all |date=2012-02-28 }} "As the two major programming frameworks for GPU computing, OpenCL and CUDA have been competing for mindshare in the developer community for the past few years."</ref> एनवीडिया ने 2006 में CUDA, सॉफ्टवेयर डेवलपमेंट किट (एसडीके) और [[अप्लिकेशन प्रोग्रामिंग अंतरफलक]] (एपीआई) लॉन्च किया, जो [[GeForce 8 श्रृंखला|जीफोर्स 8 श्रृंखला]] और बाद के जीपीयू पर निष्पादन के लिए एल्गोरिदम को कोड करने के लिए प्रोग्रामिंग लैंग्वेज [[सी (प्रोग्रामिंग भाषा)|सी (प्रोग्रामिंग लैंग्वेज )]] का उपयोग करने की अनुमति देता है।
   
   
2016 में लॉन्च किया गया ROCm, CUDA के लिए AMD की ओपन-सोर्स प्रतिक्रिया है। 2022 तक, सुविधाओं के मामले में यह CUDA के बराबर है, और इसमें अभी भी उपभोक्ता समर्थन का अभाव है।
आरओसीएम (ROCm), 2016 में लॉन्च किया गया, एएमडी का CUDA के प्रतिक्रिया स्वतंत्र स्रोत है। 2022 तक यह CUDA के साथ सुविधाओं के संबंध में सामान्तर है, लेकिन उपभोक्ता समर्थन में अभी भी कमी है।
   
   
Opeएनविडियाअविष्कार को 2003-2005 के बीच टोरंटो विश्वविद्यालय में विकसित किया गया था,<ref name="Fung">James Fung, Steve Mann, Chris Aimone, "[http://www.eyetap.org/papers/docs/oss1-fung.pdf OpenVIDIA: Parallel GPU Computer Vision] {{Webarchive|url=https://web.archive.org/web/20191223164955/http://www.eyetap.org/papers/docs/oss1-fung.pdf |date=23 December 2019 }}", Proceedings of the ACM Multimedia 2005, Singapore, 6–11 November 2005, pages 849–852</ref> एनवीडिया के सहयोग से।
निविडिया के सहयोग से, ओपनीविडिया (OpenVIDIA) का विकास 2003 से 2005 के बीच टोरंटो विश्वविद्यालय में हुआ था।<ref name="Fung">James Fung, Steve Mann, Chris Aimone, "[http://www.eyetap.org/papers/docs/oss1-fung.pdf OpenVIDIA: Parallel GPU Computer Vision] {{Webarchive|url=https://web.archive.org/web/20191223164955/http://www.eyetap.org/papers/docs/oss1-fung.pdf |date=23 December 2019 }}", Proceedings of the ACM Multimedia 2005, Singapore, 6–11 November 2005, pages 849–852</ref>  
   
   
[[Altimesh|अल्टिमेश]] द्वारा बनाया गया अल्टिमेश हाइब्रिडाइज़र सामान्य इंटरमीडिएट लैंग्वेज को CUDA बायनेरिज़ में संकलित करता है।<ref>{{cite web|title=हाइब्रिडाइज़र|url=http://www.altimesh.com/hybridizer-essentials/|website=हाइब्रिडाइज़र|url-status=live|archive-url=https://web.archive.org/web/20171017150337/http://www.altimesh.com/hybridizer-essentials/|archive-date=17 October 2017|df=dmy-all}}</ref><ref>{{cite web|title=होम पेज|url=http://www.altimesh.com/|website=Altimesh|url-status=live|archive-url=https://web.archive.org/web/20171017145518/http://www.altimesh.com/|archive-date=17 October 2017|df=dmy-all}}</ref> यह जेनरिक और वर्चुअल फ़ंक्शंस का समर्थन करता है।<ref>{{cite web|title=हाइब्रिडाइज़र जेनेरिक और वंशानुक्रम|url=http://www.altimesh.com/generics-and-inheritance/|url-status=live|archive-url=https://web.archive.org/web/20171017145927/http://www.altimesh.com/generics-and-inheritance/|archive-date=17 October 2017|df=dmy-all|date=2017-07-27}}</ref> डिबगिंग और प्रोफाइलिंग को विजुअल स्टूडियो और एनसाइट के साथ एकीकृत किया गया है।<ref>{{cite web|title=हाइब्रिडाइज़र के साथ डिबगिंग और प्रोफाइलिंग|url=http://www.altimesh.com/debugging-and-profiling/|url-status=live|archive-url=https://web.archive.org/web/20171017201449/http://www.altimesh.com/debugging-and-profiling/|archive-date=17 October 2017|df=dmy-all|date=2017-06-05}}</ref> यह विज़ुअल स्टूडियो मार्केटप्लेस पर विज़ुअल स्टूडियो एक्सटेंशन के रूप में उपलब्ध है।
[[Altimesh|अल्टिमेश]] हाइब्रिडाइज़र (Altimesh Hybridizer) जो कि अल्टीमेश द्वारा बनाया गया है, कॉमन इंटरमीडिएट भाषा को CUDA बाइनरी में कंपाइल करता है।<ref>{{cite web|title=हाइब्रिडाइज़र|url=http://www.altimesh.com/hybridizer-essentials/|website=हाइब्रिडाइज़र|url-status=live|archive-url=https://web.archive.org/web/20171017150337/http://www.altimesh.com/hybridizer-essentials/|archive-date=17 October 2017|df=dmy-all}}</ref><ref>{{cite web|title=होम पेज|url=http://www.altimesh.com/|website=Altimesh|url-status=live|archive-url=https://web.archive.org/web/20171017145518/http://www.altimesh.com/|archive-date=17 October 2017|df=dmy-all}}</ref> इसमें जेनेरिक्स और वर्चुअल फंक्शन्स का समर्थन है।<ref>{{cite web|title=हाइब्रिडाइज़र जेनेरिक और वंशानुक्रम|url=http://www.altimesh.com/generics-and-inheritance/|url-status=live|archive-url=https://web.archive.org/web/20171017145927/http://www.altimesh.com/generics-and-inheritance/|archive-date=17 October 2017|df=dmy-all|date=2017-07-27}}</ref>डिबगिंग और प्रोफाइलिंग विजुअल स्टूडियो और एनसाइट के साथ एकीकृत है।<ref>{{cite web|title=हाइब्रिडाइज़र के साथ डिबगिंग और प्रोफाइलिंग|url=http://www.altimesh.com/debugging-and-profiling/|url-status=live|archive-url=https://web.archive.org/web/20171017201449/http://www.altimesh.com/debugging-and-profiling/|archive-date=17 October 2017|df=dmy-all|date=2017-06-05}}</ref> यह विजुअल स्टूडियो मार्केटप्लेस पर विजुअल स्टूडियो एक्सटेंशन के रूप में उपलब्ध है।
   
   
[[Microsoft|माइक्रोसॉफ्ट]] ने डायरेक्टकंप्यूट जीपीयू कंप्यूटिंग एपीआई प्रस्तुत किया, जिसे [[DirectX 11|डायरेक्टएक्स 11]] एपीआई के साथ जारी किया गया।{{visible anchor|Alea GPU}},<ref>{{cite web|title=परिचय|url=http://www.aleagpu.com/release/3_0_2/doc/|website=Alea GPU|access-date=15 December 2016|url-status=live|archive-url=https://web.archive.org/web/20161225051728/http://www.aleagpu.com/release/3_0_2/doc/|archive-date=25 December 2016|df=dmy-all}}</ref> क्वांटएलिया द्वारा निर्मित,<ref>{{cite web|title=होम पेज|url=http://www.quantalea.com/|website=Quant Alea|access-date=15 December 2016|url-status=live|archive-url=https://web.archive.org/web/20161212112729/http://www.quantalea.com/|archive-date=12 December 2016|df=dmy-all}}</ref> माइक्रोसॉफ्ट .नेट भाषाओं के लिए देशी जीपीयू कंप्यूटिंग क्षमताओं का परिचय F शार्प (प्रोग्रामिंग भाषा)|F#<ref>{{cite web|title=GPU प्रोग्रामिंग के लिए F# का उपयोग करें|url=http://fsharp.org/use/gpu/|publisher=F# Software Foundation|access-date=15 December 2016|url-status=dead|archive-url=https://web.archive.org/web/20161218090254/http://fsharp.org/use/gpu/|archive-date=18 December 2016|df=dmy-all}}</ref> और सी शार्प (प्रोग्रामिंग भाषा)|सी#। एलिया जीपीयू प्रतिनिधियों और स्वचालित मेमोरी प्रबंधन का उपयोग करके जीपीयू समानांतर-के लिए और समानांतर समुच्चय पर आधारित सरलीकृत जीपीयू प्रोग्रामिंग मॉडल भी प्रदान करता है।<ref>{{cite web | url=http://www.quantalea.com/features | website=Quant Alea | title=एलिया जीपीयू विशेषताएं| access-date=15 December 2016 | url-status=live | archive-url=https://web.archive.org/web/20161221090440/http://quantalea.com/features/ | archive-date=21 December 2016 | df=dmy-all }}</ref>
[[Microsoft|माइक्रोसॉफ्ट]] ने डायरेक्टकंप्यूट जीपीयू कंप्यूटिंग एपीआई प्रस्तुत किया, जिसे [[DirectX 11|डायरेक्टएक्स 11]] एपीआई के साथ जारी किया गया था।
   
   
[[MATLAB|मैटलैब]] समानांतर कंप्यूटिंग टूलबॉक्स और मैटलैब वितरित कंप्यूटिंग सर्वर का उपयोग करके GPजीपीयू त्वरण का समर्थन करता है,<ref>{{cite web|title=MATLAB GPGPU समर्थन जोड़ता है|url=http://www.hpcwire.com/features/MATLAB-Adds-GPGPU-Support-103307084.html|date=20 September 2010|url-status=dead|archive-url=https://web.archive.org/web/20100927155948/http://www.hpcwire.com/features/MATLAB-Adds-GPGPU-Support-103307084.html|archive-date=27 September 2010|df=dmy-all}}</ref> और जैकेट (सॉफ़्टवेयर) जैसे तृतीय-पक्ष पैकेज।
{{visible anchor|Alea GPU}},<ref>{{cite web|title=परिचय|url=http://www.aleagpu.com/release/3_0_2/doc/|website=Alea GPU|access-date=15 December 2016|url-status=live|archive-url=https://web.archive.org/web/20161225051728/http://www.aleagpu.com/release/3_0_2/doc/|archive-date=25 December 2016|df=dmy-all}}</ref> जो कि क्वांटअलिया द्वारा बनाया गया है, माइक्रोसॉफ्ट .नेट भाषाओं F# और C# के लिए नेटिव जीपीयू कंप्यूटिंग क्षमता का परिचय करता है<ref>{{cite web|title=होम पेज|url=http://www.quantalea.com/|website=Quant Alea|access-date=15 December 2016|url-status=live|archive-url=https://web.archive.org/web/20161212112729/http://www.quantalea.com/|archive-date=12 December 2016|df=dmy-all}}</ref> अलिया जीपीयू भी जीपीयू पैरलल-फॉर और पैरलल एग्रीगेट के लिए सरलीकृत जीपीयू प्रोग्रामिंग मॉडल प्रदान करता है जिसमें डिलीगेट्स और स्वचालित मेमोरी मैनेजमेंट का उपयोग होता है। <ref>{{cite web|title=GPU प्रोग्रामिंग के लिए F# का उपयोग करें|url=http://fsharp.org/use/gpu/|publisher=F# Software Foundation|access-date=15 December 2016|url-status=dead|archive-url=https://web.archive.org/web/20161218090254/http://fsharp.org/use/gpu/|archive-date=18 December 2016|df=dmy-all}}</ref>  
   
   
जीपीजीपीयू प्रसंस्करण का उपयोग भौतिकी इंजनों द्वारा [[न्यूटोनियन भौतिकी]] का अनुकरण करने के लिए भी किया जाता है,<ref name="Joselli"/>और व्यावसायिक कार्यान्वयन में हॉक (सॉफ्टवेयर) | हॉक फिजिक्स, एफएक्स और फिजएक्स सम्मिलित हैं, दोनों का उपयोग सामान्यतः कंप्यूटर और वीडियो गेम के लिए किया जाता है।
एलिया जीपीयू प्रतिनिधियों और स्वचालित मेमोरी प्रबंधन का उपयोग करके जीपीयू समानांतर-के लिए और समानांतर समुच्चय पर आधारित सरलीकृत जीपीयू प्रोग्रामिंग मॉडल भी प्रदान करता है।<ref>{{cite web | url=http://www.quantalea.com/features | website=Quant Alea | title=एलिया जीपीयू विशेषताएं| access-date=15 December 2016 | url-status=live | archive-url=https://web.archive.org/web/20161221090440/http://quantalea.com/features/ | archive-date=21 December 2016 | df=dmy-all }}</ref>
   
   
[[C++]] एक्सेलेरेटेड मैसिव पैरेललिज्म ([[C++ AMP]]) लाइब्रेरी है जो जीपीयू पर डेटा-समानांतर हार्डवेयर का उपयोग करके C++ कोड के निष्पादन को तेज करती है।
[[MATLAB|मैटलैब]] GPGPU त्वरण का समर्थन करता है जिसके लिए पैरलल कंप्यूटिंग टूलबॉक्स और मैटलैब वितरित कंप्यूटिंग सर्वर का उपयोग किया जाता है,<ref>{{cite web|title=MATLAB GPGPU समर्थन जोड़ता है|url=http://www.hpcwire.com/features/MATLAB-Adds-GPGPU-Support-103307084.html|date=20 September 2010|url-status=dead|archive-url=https://web.archive.org/web/20100927155948/http://www.hpcwire.com/features/MATLAB-Adds-GPGPU-Support-103307084.html|archive-date=27 September 2010|df=dmy-all}}</ref> और जैकेट जैसे तृतीय-पक्ष पैकेज भी उपलब्ध हैं।
जीपीजीपीयू प्रसंस्करण का उपयोग भौतिकी इंजनों द्वारा [[न्यूटोनियन भौतिकी]] का अनुकरण करने के लिए भी किया जाता है,<ref name="Joselli" /> और वाणिज्यिक अमलाएँ हैं ह्वॉक फिजिक्स , फक्स , और फिक्स जो सामान्यतः कंप्यूटर और वीडियो गेम्स के लिए उपयोग किए जाते हैं।
[[C++]] एक्सेलेरेटेड मैसिव पैरेललिज्म ([[C++ AMP]]) पुस्तकालय है जो C++ कोड के निष्प्रयोजन संवेदनशील हार्डवेयर के उपयोग से C++ कोड का तत्वाधिकारी अभिवृद्धि करता है।
   
   
===मोबाइल कंप्यूटर===
===मोबाइल कंप्यूटर===
मोबाइल जीपीयू की बढ़ती शक्ति की प्रवृत्ति के कारण, सामान्य प्रयोजन प्रोग्रामिंग प्रमुख [[मोबाइल ऑपरेटिंग सिस्टम]] चलाने वाले मोबाइल उपकरणों पर भी उपलब्ध हो गई है।
मोबाइल जीपीयू की बढ़ती शक्ति की प्रवृत्ति के कारण, सामान्य प्रयोजन प्रोग्रामिंग प्रमुख [[मोबाइल ऑपरेटिंग सिस्टम]] चलाने वाले मोबाइल उपकरणों पर भी उपलब्ध हो गई है।
   
   
[[Google|गूगल]] एंड्राइड (ऑपरेटिंग सिस्टम) 4.2 ने मोबाइल डिवाइस जीपीयू पर रेंडरस्क्रिप्ट कोड चलाने को सक्षम किया।<ref>{{cite web|url=http://developer.android.com/about/versions/android-4.2.html|title=Android 4.2 APIs - Android Developers|website=developer.android.com|url-status=live|archive-url=https://web.archive.org/web/20130826191621/http://developer.android.com/about/versions/android-4.2.html|archive-date=26 August 2013|df=dmy-all}}</ref> ऐप्पल इंक ने [[आईओएस]] अनुप्रयोगों के लिए मालिकाना [[ धातु (एपीआई) |धातु (एपीआई)]] एपीआई प्रस्तुत किया, जो ऐप्पल के जीपीयू कंप्यूट शेडर्स के माध्यम से मनमाना कोड निष्पादित करने में सक्षम है।
[[Google|गूगल]] एंड्राइड (ऑपरेटिंग सिस्टम) 4.2 ने मोबाइल डिवाइस जीपीयू पर रेंडरस्क्रिप्ट कोड चलाने की सुविधा प्रदान की।<ref>{{cite web|url=http://developer.android.com/about/versions/android-4.2.html|title=Android 4.2 APIs - Android Developers|website=developer.android.com|url-status=live|archive-url=https://web.archive.org/web/20130826191621/http://developer.android.com/about/versions/android-4.2.html|archive-date=26 August 2013|df=dmy-all}}</ref> ऐप्पल ने [[आईओएस]] अनुप्रयोगों के लिए मालिकाना [[ धातु (एपीआई) |धातु (एपीआई)]] एपीआई प्रस्तुत किया, जो ऐप्पल के जीपीयू कंप्यूट शेडर्स के माध्यम से इच्छानुसार कोड निष्पादित करने में सक्षम है।
   
   
==हार्डवेयर समर्थन==
==हार्डवेयर समर्थन==
कंप्यूटर वीडियो कार्ड विभिन्न विक्रेताओं, जैसे एनवीडिया, [[एएमडी]] द्वारा निर्मित किए जाते हैं। ऐसे विक्रेताओं के कार्ड [[पूर्णांक]] और [[तैरनेवाला स्थल|फ्लोटिंग पॉइंट]]अविष्कार प्रारूप (32-बिट और 64-बिट) जैसे डेटा-प्रारूप समर्थन को लागू करने में भिन्न होते हैं। ग्राफिक कार्ड की विभिन्न विशेषताओं को सरल शेडर मॉडल संस्करण संख्या (1.0, 2.0, 3.0, आदि) में रैंक करने में मदद करने के लिए माइक्रोसॉफ्ट ने उच्च-स्तरीय शेडिंग भाषा#शेडर मॉडल समानता मानक प्रस्तुत किया।
कंप्यूटर वीडियो कार्ड जैसे कि एनवीडिया, [[एएमडी]] जैसे विभिन्न विक्रेताओं द्वारा निर्मित किए जाते हैं। इन विक्रेताओं के कार्ड में डाटा-फॉर्मेट समर्थन को क्रियान्वित करने में अंतर होता है, जैसे कि पूर्णांक और फ्लोटिंग-पॉइंट फॉर्मेट (32-बिट और 64-बिट)। माइक्रोसॉफ्ट ने शेडर मॉडल मानक प्रस्तुत किया है, जो ग्राफिक कार्ड की विभिन्न सुविधाओं को सरल शेडर मॉडल संस्करण संख्या (1.0, 2.0, 3.0 इत्यादि) में रैंक करने में सहायता करता है।
   
   
===पूर्णांक संख्या===
===इंटीजर संख्या===
प्री-डायरेक्टएक्स 9 वीडियो कार्ड केवल [[पैलेट (कंप्यूटिंग)]] या पूर्णांक रंग प्रकारों का समर्थन करते हैं। विभिन्न प्रारूप उपलब्ध हैं, प्रत्येक में लाल तत्व, हरा तत्व और नीला तत्व सम्मिलित है। कभी-कभी पारदर्शिता के लिए उपयोग करने के लिए और अल्फा मान जोड़ा जाता है। सामान्य प्रारूप हैं:
प्री-डायरेक्टएक्स 9 वीडियो कार्ड केवल [[पैलेट (कंप्यूटिंग)]] या पूर्णांक रंग प्रकार का समर्थन करते थे। विभिन्न स्वरूप उपलब्ध हैं, जो में लाल तत्व, हरा तत्व, और नीला तत्व सम्मिलित होता है। कभी-कभी और एल्फा मूल्य जोड़ा जाता है, जिसका उपयोग पारदर्शिता के लिए किया जाता है। सामान्य स्वरूप हैं:
   
   
* प्रति पिक्सेल 8 बिट्स - कभी-कभी पैलेट मोड, जहां प्रत्येक मान किसी अन्य प्रारूप में निर्दिष्ट वास्तविक रंग मान के साथ तालिका में सूचकांक होता है। कभी-कभी लाल के लिए तीन बिट, हरे के लिए तीन बिट और नीले के लिए दो बिट होते हैं।
* 8 पिक्सेल प्रति बिट - कभी-कभी पैलेट मोड, जहां प्रत्येक मान तालिका में इंडेक्स होता है, जिसमें असली रंग मूल्य को अन्य स्वरूप में निर्दिष्ट किया जाता है। कभी-कभी तीन लाल, तीन हरे, और दो नीले बिट होते हैं।
* 16 बिट प्रति पिक्सेल - सामान्यतः बिट्स को लाल के लिए पांच बिट्स, हरे के लिए छह बिट्स और नीले के लिए पांच बिट्स के रूप में आवंटित किया जाता है।
* 16 पिक्सेल प्रति बिट - सामान्यतः बिट लाल के लिए पांच, बिट हरे के लिए छह, और बिट नीले के लिए पांच आवंटित होते हैं।
* 24 बिट प्रति पिक्सेल - लाल, हरे और नीले प्रत्येक के लिए आठ बिट हैं।
* 24 पिक्सेल प्रति बिट - लाल, हरा, और नीले के प्रत्येक के लिए आठ बिट होते हैं।
* 32 बिट प्रति पिक्सेल - लाल, हरा, नीला और [[अल्फा कंपोजिटिंग]] में से प्रत्येक के लिए आठ बिट हैं।
* 32 बिट प्रति पिक्सेल - लाल, हरा, नीला और [[अल्फा कंपोजिटिंग]] में से प्रत्येक के लिए आठ बिट होते हैं।
   
   
===फ़्लोटिंग-पॉइंट नंबर===
===फ़्लोटिंग-पॉइंट नंबर===
प्रारंभिक [[ फिक्स्ड समारोह |फिक्स्ड समारोह]] या सीमित प्रोग्रामयोग्यता ग्राफिक्स (यानी, डायरेक्टएक्स 8.1-अनुपालक जीपीयू तक और इसमें सम्मिलित ) के लिए यह पर्याप्त था क्योंकि यह डिस्प्ले में उपयोग किया जाने वाला प्रतिनिधित्व भी है। इस प्रतिनिधित्व की कुछ सीमाएँ हैं। पर्याप्त ग्राफ़िक्स प्रसंस्करण शक्ति को देखते हुए ग्राफ़िक्स प्रोग्रामर भी [[उच्च-गतिशील-रेंज इमेजिंग]] जैसे प्रभाव प्राप्त करने के लिए फ्लोटिंग पॉइंट डेटा प्रारूप जैसे उत्तम प्रारूपों का उपयोग करना चाहेंगे। कई GP जीपीयू अनुप्रयोगों को फ़्लोटिंग पॉइंट सटीकता की आवश्यकता होती है, जो डायरेक्टएक्स 9 विनिर्देश के अनुरूप वीडियो कार्ड के साथ आते हैं।
प्रारंभिक [[ फिक्स्ड समारोह |फिक्स्ड फंक्शन]] या सीमित प्रोग्रामयोग्यता ग्राफिक्स (अर्थात, डायरेक्टएक्स 8.1-अनुपालक जीपीयू तक और इसमें सम्मिलित ) के लिए यह पर्याप्त था क्योंकि यह डिस्प्ले में उपयोग किया जाने वाला प्रतिनिधित्व भी है। इस प्रतिनिधित्व की कुछ सीमाएँ हैं। पर्याप्त ग्राफ़िक्स प्रसंस्करण शक्ति को देखते हुए ग्राफ़िक्स प्रोग्रामर भी [[उच्च-गतिशील-रेंज इमेजिंग]] जैसे प्रभाव प्राप्त करने के लिए फ्लोटिंग पॉइंट डेटा प्रारूप जैसे उत्तम प्रारूपों का उपयोग करना चाहेंगे। कई GP जीपीयू अनुप्रयोगों को फ़्लोटिंग पॉइंट त्रुटिहीन की आवश्यकता होती है, जो डायरेक्टएक्स 9 विनिर्देश के अनुरूप वीडियो कार्ड के साथ आते हैं।
   
   
डायरेक्टएक्स 9 शेडर मॉडल 2.x ने दो सटीक प्रकारों के समर्थन का सुझाव दिया: पूर्ण और आंशिक सटीकता। पूर्ण परिशुद्धता समर्थन या तो FP32 या FP24 (फ़्लोटिंग पॉइंट 32- या 24-बिट प्रति घटक) या इससे अधिक हो सकता है, जबकि आंशिक परिशुद्धता FP16 थी। एटी टेक्नोलॉजीज़ की रेडियन R300 श्रृंखला के जीपीयू ने केवल प्रोग्रामेबल फ्रैगमेंट पाइपलाइन में FP24 परिशुद्धता का समर्थन किया (चूँकि FP32 वर्टेक्स प्रोसेसर में समर्थित था) जबकि एनविडिया अविष्कार की [[GeForce FX|जीफोर्स एफ़एक्स]] श्रृंखला FP16 और FP32 दोनों का समर्थन करती थी; अन्य विक्रेताओं जैसे S3 ग्राफ़िक्स और XGI टेक्नोलॉजी ने FP24 तक के प्रारूपों के मिश्रण का समर्थन किया।
डायरेक्टएक्स 9 शेडर मॉडल 2.x ने दो स्पष्ट प्रकारों के समर्थन का सुझाव दिया: पूर्ण और आंशिक त्रुटिहीन। पूर्ण परिशुद्धता समर्थन या तो FP32 या FP24 (फ़्लोटिंग पॉइंट 32- या 24-बिट प्रति घटक) या इससे अधिक हो सकता है, जबकि आंशिक परिशुद्धता FP16 थी। एटी टेक्नोलॉजीज़ की रेडियन R300 श्रृंखला के जीपीयू ने केवल प्रोग्रामेबल फ्रैगमेंट पाइपलाइन में FP24 परिशुद्धता का समर्थन किया (चूँकि FP32 वर्टेक्स प्रोसेसर में समर्थित था) जबकि एनविडिया अविष्कार की [[GeForce FX|जीफोर्स एफ़एक्स]] श्रृंखला FP16 और FP32 दोनों का समर्थन करती थी; अन्य विक्रेताओं जैसे S3 ग्राफ़िक्स और XGI टेक्नोलॉजी ने FP24 तक के प्रारूपों के मिश्रण का समर्थन किया।
   
   
एनवीडिया जीपीयू पर फ़्लोटिंग पॉइंट का कार्यान्वयन अधिकतर IEEE फ़्लोटिंग-पॉइंट मानक के अनुरूप है; चूँकि , यह सभी विक्रेताओं के लिए सच नहीं है।<ref name="nVidiaIsIEEE">{{cite book | chapter-url=https://dl.acm.org/doi/10.1145/1198555.1198768 | doi=10.1145/1198555.1198768 | chapter=Mapping computational concepts to GPUs | title=ACM SIGGRAPH 2005 Courses on - SIGGRAPH '05 | year=2005 | last1=Harris | first1=Mark | pages=50–es | isbn=9781450378338 | s2cid=8212423 }}</ref> इसका शुद्धता पर प्रभाव पड़ता है जिसे कुछ वैज्ञानिक अनुप्रयोगों के लिए महत्वपूर्ण माना जाता है। जबकि 64-बिट फ्लोटिंग पॉइंट वैल्यू (डबल प्रिसिजन फ्लोट) सामान्यतः सीपीयू पर उपलब्ध हैं, ये जीपीयू पर सार्वभौमिक रूप से समर्थित नहीं हैं। कुछ जीपीयू आर्किटेक्चर आईईईई अनुपालन का त्याग करते हैं, जबकि अन्य में दोहरी परिशुद्धता का अभाव होता है। जीपीयू पर दोहरे परिशुद्धता फ़्लोटिंग पॉइंट मानों का अनुकरण करने के प्रयास हुए हैं; चूँकि , स्पीड ट्रेडऑफ़ पहली बार में कंप्यूटिंग को जीपीयू पर लोड करने के किसी भी लाभ को नकार देता है।<ref name="doublePrecisionOnGPU">[http://www.mathematik.tu-dortmund.de/papers/GoeddekeStrzodkaTurek2005.pdf Double precision on GPUs (Proceedings of ASIM 2005)] {{webarchive|url=https://web.archive.org/web/20140821160055/http://www.mathematik.tu-dortmund.de/papers/GoeddekeStrzodkaTurek2005.pdf |date=21 August 2014 }}: Dominik Goddeke, Robert Strzodka, and Stefan Turek. Accelerating Double Precision (FEM) Simulations with (GPUs). Proceedings of ASIM 2005{{snd}} 18th Symposium on Simulation Technique, 2005.</ref>  
नविडिया जीपीयू पर फ्लोटिंग पॉइंट के अधिकांश अमलाएं सामान्यतः IEEE अनुरूप हैं; चूंकि, यह सभी विक्रेताओं पर सच नहीं है।<ref name="nVidiaIsIEEE">{{cite book | chapter-url=https://dl.acm.org/doi/10.1145/1198555.1198768 | doi=10.1145/1198555.1198768 | chapter=Mapping computational concepts to GPUs | title=ACM SIGGRAPH 2005 Courses on - SIGGRAPH '05 | year=2005 | last1=Harris | first1=Mark | pages=50–es | isbn=9781450378338 | s2cid=8212423 }}</ref> इसके प्राभाव प्रमुख वैज्ञानिक अनुप्रयोगों के लिए महत्वपूर्ण माने जाते हैं। जबकि 64-बिट फ्लोटिंग पॉइंट मान (डबल प्रेसिजन फ्लोट) सीपीयू पर सामान्य रूप से उपलब्ध होते हैं, वे जीपीयू पर सर्वाधिक समर्थित नहीं होते। कुछ जीपीयू विरासत नहीं वाली वस्तुएँ करते हैं, जबकि अन्यों को डबल प्रेसिजन फ्लोटिंग पॉइंट की कमी होती है। जीपीयू पर डबल प्रेसिजन फ्लोटिंग पॉइंट मानों को नकलीकृत करने के लिए प्रयास हुए हैं; चूंकि, इसमें हुई गति का संवाद जीपीयू पर कंप्यूटिंग को प्राथमिकता देने के लाभ को समाप्त कर देता है।<ref name="doublePrecisionOnGPU">[http://www.mathematik.tu-dortmund.de/papers/GoeddekeStrzodkaTurek2005.pdf Double precision on GPUs (Proceedings of ASIM 2005)] {{webarchive|url=https://web.archive.org/web/20140821160055/http://www.mathematik.tu-dortmund.de/papers/GoeddekeStrzodkaTurek2005.pdf |date=21 August 2014 }}: Dominik Goddeke, Robert Strzodka, and Stefan Turek. Accelerating Double Precision (FEM) Simulations with (GPUs). Proceedings of ASIM 2005{{snd}} 18th Symposium on Simulation Technique, 2005.</ref>  
   
   
===वेक्टरीकरण===
===सदिशीकरण===
जीपीयू पर अधिकांश ऑपरेशन वेक्टरकृत विधि से संचालित होते हैं: ऑपरेशन साथ चार मानों पर किया जा सकता है। उदाहरण के लिए, यदि रंग {{angbr|R1, G1, B1}} को दूसरे रंग से संशोधित किया जाना है {{angbr|R2, G2, B2}}, जीपीयू परिणामी रंग उत्पन्न कर सकता है {{angbr|R1*R2, G1*G2, B1*B2}} ऑपरेशन में. यह कार्यक्षमता ग्राफ़िक्स में उपयोगी है क्योंकि लगभग हर बुनियादी डेटा प्रकार सदिश (या तो 2-, 3-, या 4-आयामी) है। उदाहरणों में शीर्ष, रंग, सामान्य सदिश और बनावट निर्देशांक सम्मिलित हैं। कई अन्य एप्लिकेशन इसका अच्छा उपयोग कर सकते हैं, और उनके उच्च प्रदर्शन के कारण, सदिश निर्देश, जिसे एकल निर्देश, एकाधिक डेटा (एकल निर्देश, एकाधिक डेटा) कहा जाता है, लंबे समय से सीपीयू पर उपलब्ध हैं।
जीपीयू पर अधिकांश ऑपरेशन सदिशीकृत ढंग से काम करते हैं: ऑपरेशन साथ चार मानों पर किया जा सकता है। उदाहरण के लिए, यदि रंग {{angbr|R1, G1, B1}} को दूसरे रंग {{angbr|R2, G2, B2}}, से मॉड्यूलेट करना है, तो जीपीयू ऑपरेशन में परिणामी रंग {{angbr|R1*R2, G1*G2, B1*B2}} प्रदर्शित कर सकता है। ग्राफिक्स में यह फंक्शनलिटी उपयोगी होती है क्योंकि लगभग हर बेसिक डेटा प्रकार सदिश होता है (2-, 3-, या 4-आयामी)।[संदर्भ आवश्यक] उदाहरणों में शीर्षबिंदु, रंग, सामान्य सदिश, और टेक्स्चर समन्वयांकन सम्मिलित होते हैं। इसका उपयोग कई अन्य अनुप्रयोगों में भी किया जा सकता है, और इनके उच्च प्रदर्शन के कारण, सदिश निर्देशिका, जिसे एकल निर्देशिका, एकाधिक डेटा (SIMD) के रूप में कहा जाता है, सीपीयू पर लंबे समय से उपलब्ध हैं।
   
   
==जीपीयू बनाम सीपीयू==
==जीपीयू बनाम सीपीयू==
मूल रूप से, डेटा को केवल केंद्रीय प्रसंस्करण इकाई (सीपीयू) से ग्राफिक्स प्रोसेसिंग इकाई (जीपीयू) तक, फिर [[ प्रदर्शन उपकरण |प्रदर्शन उपकरण]] तक एक-तरफ़ा पारित किया जाता था। चूँकि , जैसे-जैसे समय आगे बढ़ा, जीपीयू के लिए पहले सरल, फिर डेटा की जटिल संरचनाओं को संग्रहीत करना मूल्यवान हो गया, जिसे CPU में वापस भेजा गया, जो छवि का विश्लेषण करता था, या 2D या 3D प्रारूप के रूप में प्रस्तुत वैज्ञानिक-डेटा का सेट जिसे वीडियो कार्ड समझ सकता है। क्योंकि जीपीयू के पास प्रत्येक ड्रॉ ऑपरेशन तक पहुंच है, यह इन रूपों में डेटा का त्वरित रूप से विश्लेषण कर सकता है, जबकि CPU को प्रत्येक पिक्सेल या डेटा तत्व को बहुत धीमी गति से पोल करना चाहिए, क्योंकि CPU और उसके रैंडम-एक्सेस मेमोरी के बड़े पूल (या इससे भी बदतर स्थिति में, [[हार्ड ड्राइव]]) के बीच पहुंच की गति जीपीयू और वीडियो कार्ड की समानता में धीमी है, जिसमें सामान्यतःअविष्कार पर कम मात्रा में अधिक महंगी मेमोरी होती है जो एक्सेस करने के लिए बहुत तेज़ होती है। सक्रिय रूप से विश्लेषण किए जाने वाले डेटा सेट के हिस्से को बनावट या अन्य आसानी से पढ़ने योग्य जीपीयू रूपों के रूप में उस जीपीयू मेमोरी में स्थानांतरित करने से गति में वृद्धि होती है। जीपीजीपीयू डिज़ाइन की विशिष्ट विशेषता सूचना [[डुप्लेक्स (दूरसंचार)]] को जीपीयू से सीपीयू में वापस स्थानांतरित करने की क्षमता है; सामान्यतःअविष्कार पर दोनों दिशाओं में डेटा थ्रूपुट आदर्श रूप से उच्च होता है, जिसके परिणामस्वरूप विशिष्ट उच्च-उपयोग [[कलन विधि]] की गति पर गुणक (गुणक) प्रभाव पड़ता है। जीपीजीपीयू पाइपलाइन विशेष रूप से बड़े डेटा सेट और/या 2डी या 3डी इमेजरी वाले डेटा पर दक्षता में सुधार कर सकती हैं। इसका उपयोग जटिल ग्राफिक्स पाइपलाइनों के साथ-साथ वैज्ञानिक कंप्यूटिंग में भी किया जाता है; [[जीनोम मैपिंग]] जैसे बड़े डेटा सेट वाले क्षेत्रों में, या जहां दो- या तीन-आयामी विश्लेषण उपयोगी है, वहां और भी अधिक{{snd}} विशेष रूप से वर्तमान में [[बायोमोलिक्यूल]] विश्लेषण, प्रोटीन अध्ययन और अन्य जटिल [[कार्बनिक रसायन विज्ञान]] में। ऐसी पाइपलाइनें अन्य क्षेत्रों के अलावा, छवि प्रसंस्करण और [[कंप्यूटर दृष्टि]] में दक्षता में भी अधिक सुधार कर सकती हैं; साथ ही सामान्यतःअविष्कार पर समानांतर कंप्यूटिंग। कुछ अत्यधिक अनुकूलित पाइपलाइनों ने उच्च-उपयोग कार्य पर मूल सीपीयू-आधारित पाइपलाइन की गति में कई सौ गुना वृद्धि प्राप्त की है।
शुरुआत में, डेटा सीधे एकबार सेंट्रल प्रोसेसिंग यूनिट (सीपीयू) से ग्राफिक्स प्रोसेसिंग यूनिट (जीपीयू) तक भेजा जाता था, फिर [[ प्रदर्शन उपकरण |प्रदर्शन उपकरण]] तक एक-तरफ़ा पारित किया जाता था। चूँकि, समय के साथ, जीपीयू के लिए सरल रूप में डेटा को स्टोर करना महत्वपूर्ण हो गया था, जिसे सीपीयू को पास करने के लिए वापस भेजा जा सकता था जो छवि को विश्लेषण करता है, या विज्ञानिक डेटा का समुच्चय जो वीडियो कार्ड द्वारा समझा जा सकता है। जीपीयू के पास प्रत्येक ड्रॉ ऑपरेशन का एक्सेस होता है, इसलिए यह डेटा को इन रूपों में तेजी से विश्लेषित कर सकता है, जबकि सीपीयू को प्रत्येक पिक्सेल या डेटा तत्व को बहुत धीमे ढंग से पोल करना पड़ता है, क्योंकि सीपीयू और उसके बड़े पूल के बीच रैंडम-एक्सेस मेमोरी (या और खराब हालत में, [[हार्ड ड्राइव]]) के बीच एक्सेस की गति जीपीयू और वीडियो कार्ड में स्वाभाविक रूप से स्मॉलर मात्रा की और महंगे मेमोरी होती है जो बहुत तेजी से एक्सेस करने में सक्षम होती है। सक्रिय रूप से विश्लेषण किए जाने वाले डेटा समुच्चय के हिस्से को बनावट या अन्य आसानी से पढ़ने योग्य जीपीयू रूपों के रूप में उस जीपीयू मेमोरी में स्थानांतरित करने से गति में वृद्धि होती है। जीपीजीपीयू डिज़ाइन की विशिष्ट विशेषता सूचना [[डुप्लेक्स (दूरसंचार)]] को जीपीयू से सीपीयू में वापस स्थानांतरित करने की क्षमता है; सामान्यतः अविष्कार पर दोनों दिशाओं में डेटा थ्रूपुट आदर्श रूप से उच्च होता है, जिसके परिणामस्वरूप विशिष्ट उच्च-उपयोग [[कलन विधि|ऐल्गरिदम विधि]] की गति पर गुणक (गुणक) प्रभाव पड़ता है। जीपीजीपीयू पाइपलाइन विशेष रूप से बड़े डेटा समुच्चय और/या 2डी या 3डी इमेजरी वाले डेटा पर दक्षता में सुधार कर सकती हैं। इसका उपयोग जटिल ग्राफिक्स पाइपलाइनों के साथ-साथ वैज्ञानिक कंप्यूटिंग में भी किया जाता है; [[जीनोम मैपिंग]] जैसे बड़े डेटा समुच्चय वाले फील्डों में, या जहां दो- या तीन-आयामी विश्लेषण उपयोगी है, वहां और भी अधिक{{snd}} विशेष रूप से वर्तमान में [[बायोमोलिक्यूल]] विश्लेषण, प्रोटीन अध्ययन और अन्य जटिल [[कार्बनिक रसायन विज्ञान]] में। ऐसी पाइपलाइनें अन्य फील्डों के अतिरिक्त, छवि प्रसंस्करण और [[कंप्यूटर दृष्टि]] में दक्षता में भी अधिक सुधार कर सकती हैं; साथ ही सामान्यतः अविष्कार पर समानांतर कंप्यूटिंग। कुछ अत्यधिक अनुकूलित पाइपलाइनों ने उच्च-उपयोग कार्य पर मूल सीपीयू-आधारित पाइपलाइन की गति में कई सौ गुना वृद्धि प्राप्त की है।
   
   
सरल उदाहरण जीपीयू प्रोग्राम होगा जो औसत [[प्रकाश]] मूल्यों के बारे में डेटा एकत्र करता है क्योंकि यह कैमरे या कंप्यूटर ग्राफिक्स प्रोग्राम से कुछ दृश्य को सीपीयू पर मुख्य प्रोग्राम में वापस प्रस्तुत करता है, जिससे सीपीयू समग्र स्क्रीन दृश्य में समायोजन कर सके। अधिक उन्नत उदाहरण संख्यात्मक जानकारी और संसाधित छवि दोनों को मोबाइल रोबोट को नियंत्रित करने वाले कंप्यूटर विज़न प्रोग्राम की रूपरेखा का प्रतिनिधित्व करने के लिए [[ किनारे का पता लगाना |किनारे का पता लगाना]] का उपयोग कर सकता है। क्योंकि जीपीयू के पास किसी छवि में प्रत्येक पिक्सेल या अन्य चित्र तत्व तक तेज़ और स्थानीय हार्डवेयर पहुंच होती है, यह इसका विश्लेषण और औसत कर सकता है (पहले उदाहरण के लिए) या सीपीयू की समानता में बहुत अधिक गति के साथ सोबेल ऑपरेटर या अन्य [[कनवल्शन]] फ़िल्टर (दूसरे के लिए) लागू कर सकता है, जिसे सामान्यतःअविष्कार पर प्रश्न में ग्राफ़िक की धीमी रैंडम-एक्सेस मेमोरी प्रतियों तक पहुंच होनी चाहिए।
सरल उदाहरण जीपीयू प्रोग्राम होगा जो औसत [[प्रकाश]] मूल्यों के बारे में डेटा एकत्र करता है क्योंकि यह कैमरे या कंप्यूटर ग्राफिक्स प्रोग्राम से कुछ दृश्य को सीपीयू पर मुख्य प्रोग्राम में वापस प्रस्तुत करता है, जिससे सीपीयू समग्र स्क्रीन दृश्य में समायोजन कर सके। अधिक उन्नत उदाहरण संख्यात्मक डेटा और संसाधित छवि दोनों को मोबाइल रोबोट को नियंत्रित करने वाले कंप्यूटर विज़न प्रोग्राम की रूपरेखा का प्रतिनिधित्व करने के लिए [[ किनारे का पता लगाना |किनारे का पता लगाना]] का उपयोग कर सकता है। क्योंकि जीपीयू के पास किसी छवि में प्रत्येक पिक्सेल या अन्य चित्र तत्व तक तेज़ और स्थानीय हार्डवेयर पहुंच होती है, यह इसका विश्लेषण और औसत कर सकता है (पहले उदाहरण के लिए) या सीपीयू की समानता में बहुत अधिक गति के साथ सोबेल ऑपरेटर या अन्य [[कनवल्शन]] फ़िल्टर (दूसरे के लिए) क्रियान्वित कर सकता है, जिसे सामान्यतः अविष्कार पर प्रश्न में ग्राफ़िक की धीमी रैंडम-एक्सेस मेमोरी प्रतियों तक पहुंच होनी चाहिए।
   
   
जीपीजीपीयू मूलतः सॉफ्टवेयर अवधारणा है, हार्डवेयर अवधारणा नहीं; यह प्रकार का एल्गोरिदम है, उपकरण का टुकड़ा नहीं। चूँकि , विशिष्ट उपकरण डिज़ाइन GPजीपीयू पाइपलाइनों की दक्षता को और भी बढ़ा सकते हैं, जो परंपरागत रूप से बहुत बड़ी मात्रा में डेटा पर अपेक्षाकृत कम एल्गोरिदम निष्पादित करते हैं। व्यापक रूप से समानांतर, विशाल-डेटा-स्तरीय कार्यों को रैक कंप्यूटिंग (रैक में निर्मित कई समान, उच्च अनुरूप मशीनें) जैसे विशेष सेटअपों के माध्यम से आगे भी समानांतर किया जा सकता है, जो तीसरी परत जोड़ता है{{snd}} कई कंप्यूटिंग इकाइयां कई जीपीयू के अनुरूप कई सीपीयू का उपयोग करती हैं। कुछ [[ Bitcoin |बिटकॉइन]] खनिकों ने उच्च-मात्रा प्रसंस्करण के लिए ऐसे सेटअप का उपयोग किया।
जीपीयूपीयू मूल रूप से सॉफ़्टवेयर कॉन्सेप्ट है, न कि हार्डवेयर कॉन्सेप्ट; यह ऐल्गोरिदम के प्रकार है, न कि किसी उपकरण का टुकड़ा। विशेष उपकरण डिज़ाइन किए गए हैं, जो परंपरागत रूप से बहुत बड़े मात्रा के डेटा पर बहुत कम एल्गोरिदम को करते हैं। मासिव्ली पैरललाइज्ड, विशाल-डेटा-स्तरीय टास्क इस तरह से विशेष रूप से रैक कंप्यूटिंग (रैक में बनाए गए कई समान, अधिकतर तय किए गए मशीनों के साथ) के माध्यम से भी अधिक संशोधित किए जा सकते हैं, जो तीसरे लेवल को जोड़ते हैं - बहुत से कंप्यूटिंग यूनिट, प्रत्येक में बहुत सारे सीपीयूजीपीयूजीपीयू उपयोग करते हैं। [[ Bitcoin |बिटकॉइन]] "माइनर्स" में ऐसे समुच्चयअप का उपयोग अधिकतर प्रक्रिया के लिए किया गया है।
   
   
===कैश===
===कैश===
ऐतिहासिक रूप से, सीपीयू ने हार्डवेयर-प्रबंधित [[सीपीयू कैश]] का उपयोग किया है, किन्तु पहले के जीपीयू केवल सॉफ्टवेयर-प्रबंधित स्थानीय यादें प्रदान करते थे। चूँकि , जैसे-जैसे सामान्य प्रयोजन के अनुप्रयोगों के लिए जीपीयू का उपयोग बढ़ रहा है, अत्याधुनिक जीपीयू को हार्डवेयर-प्रबंधित बहु-स्तरीय कैश के साथ डिज़ाइन किया जा रहा है, जिसने जीपीयू को मुख्यधारा कंप्यूटिंग की ओर बढ़ने में मदद की है। उदाहरण के लिए, [[GeForce 200 श्रृंखला|जीफोर्स 200 श्रृंखला]] GT200 आर्किटेक्चर जीपीयू में L2 कैश की सुविधा नहीं थी, Fermi (माइक्रोआर्किटेक्चर) जीपीयू में 768 KiB अंतिम-स्तर कैश है, [[ केप्लर (माइक्रोआर्किटेक्चर) |केप्लर (माइक्रोआर्किटेक्चर)]] जीपीयू में 1.5 MiB अंतिम-स्तर कैश है,<ref>{{cite web |url= http://www.nvidia.com/content/PDF/kepler/NVIDIA-Kepler-GK110-Architecture-Whitepaper.pdf |title= एनवीडिया-केप्लर-जीके110-आर्किटेक्चर-व्हाइटपेपर|url-status= live |archive-url= https://web.archive.org/web/20150221021022/http://www.nvidia.com/content/PDF/kepler/NVIDIA-Kepler-GK110-Architecture-Whitepaper.pdf |archive-date= 21 February 2015 |df= dmy-all }}</ref> [[मैक्सवेल (माइक्रोआर्किटेक्चर)]] जीपीयू में 2 MiB अंतिम-स्तर कैश है, और पास्कल (माइक्रोआर्किटेक्चर) जीपीयू में 4 MiB अंतिम-स्तर कैश है।
ऐतिहासिक रूप से, सीपीयू ने हार्डवेयर-प्रबंधित [[सीपीयू कैश]] का उपयोग किया है, किन्तु पहले के जीपीयू केवल सॉफ्टवेयर-प्रबंधित स्थानीय यादें प्रदान करते थे। चूँकि , जैसे-जैसे सामान्य प्रयोजन के अनुप्रयोगों के लिए जीपीयू का उपयोग बढ़ रहा है, अत्याधुनिक जीपीयू को हार्डवेयर-प्रबंधित बहु-स्तरीय कैश के साथ डिज़ाइन किया जा रहा है, जिसने जीपीयू को मुख्यधारा कंप्यूटिंग की ओर बढ़ने में सहायता की है। उदाहरण के लिए, [[GeForce 200 श्रृंखला|जीफोर्स 200 श्रृंखला]] GT200 आर्किटेक्चर जीपीयू में L2 कैश की सुविधा नहीं थी, Fermi (माइक्रोआर्किटेक्चर) जीपीयू में 768 KiB अंतिम-स्तर कैश है, [[ केप्लर (माइक्रोआर्किटेक्चर) |केप्लर (माइक्रोआर्किटेक्चर)]] जीपीयू में 1.5 MiB अंतिम-स्तर कैश है,<ref>{{cite web |url= http://www.nvidia.com/content/PDF/kepler/NVIDIA-Kepler-GK110-Architecture-Whitepaper.pdf |title= एनवीडिया-केप्लर-जीके110-आर्किटेक्चर-व्हाइटपेपर|url-status= live |archive-url= https://web.archive.org/web/20150221021022/http://www.nvidia.com/content/PDF/kepler/NVIDIA-Kepler-GK110-Architecture-Whitepaper.pdf |archive-date= 21 February 2015 |df= dmy-all }}</ref> [[मैक्सवेल (माइक्रोआर्किटेक्चर)]] जीपीयू में 2 MiB अंतिम-स्तर कैश है, और पास्कल (माइक्रोआर्किटेक्चर) जीपीयू में 4 MiB अंतिम-स्तर कैश है।
   
   
===फ़ाइल पंजीकृत करें===
===फ़ाइल पंजीकृत करें===
जीपीयू में बहुत बड़ी रजिस्टर फ़ाइल होती है, जो उन्हें संदर्भ-स्विचिंग विलंबता को कम करने की अनुमति देती है। विभिन्न जीपीयू पीढ़ियों के साथ रजिस्टर फ़ाइल का आकार भी बढ़ रहा है, उदाहरण के लिए, मैक्सवेल (GM200), पास्कल और वोल्टा जीपीयू पर कुल रजिस्टर फ़ाइल का आकार क्रमशः 6 MiB, 14 MiB और 20 MiB है।<ref>"[https://devblogs.nvidia.com/parallelforall/inside-pascal/ Inside Pascal: Nvidia’s Newest Computing Platform] {{webarchive|url=https://web.archive.org/web/20170507110037/https://devblogs.nvidia.com/parallelforall/inside-pascal/ |date=7 May 2017 }}"</ref><ref>"[https://devblogs.nvidia.com/inside-volta/ Inside Volta: The World’s Most Advanced Data Center GPU] {{webarchive|url=https://web.archive.org/web/20200101171030/https://devblogs.nvidia.com/inside-volta/ |date=1 January 2020 }}"</ref> तुलनात्मक रूप से, प्रोसेसर रजिस्टर का आकार छोटा होता है, सामान्यतः दसियों या सैकड़ों किलोबाइट।
जीपीयू में बहुत बड़े रजिस्टर फ़ाइल होते हैं, जिससे उन्हें संदर्भ-स्विचिंग लेटेंसी को कम करने की अनुमति होती है। रजिस्टर फ़ाइल का आकार भी विभिन्न जीपीयू पीढ़ियों में बढ़ रहा है, जैसे मैक्सवेल (जीएम200), पैस्कल और वोल्टा जीपीयू में कुल रजिस्टर फ़ाइल का आकार 6 MiB, 14 MiB और 20 MiB है। तुलना में, सीपीयू पर रजिस्टर फ़ाइल का आकार छोटा होता है, सामान्यतः किलोबाइटों या सैंकड़ों किलोबाइटों का होता है।<ref>"[https://devblogs.nvidia.com/parallelforall/inside-pascal/ Inside Pascal: Nvidia’s Newest Computing Platform] {{webarchive|url=https://web.archive.org/web/20170507110037/https://devblogs.nvidia.com/parallelforall/inside-pascal/ |date=7 May 2017 }}"</ref><ref>"[https://devblogs.nvidia.com/inside-volta/ Inside Volta: The World’s Most Advanced Data Center GPU] {{webarchive|url=https://web.archive.org/web/20200101171030/https://devblogs.nvidia.com/inside-volta/ |date=1 January 2020 }}"</ref>  
   
   
===ऊर्जा दक्षता===
===ऊर्जा दक्षता===
जीपीयू का उच्च प्रदर्शन उच्च बिजली की खपत की कीमत पर आता है, जो कि पूर्ण लोड के तहत वास्तव में उतनी ही बिजली है जितनी बाकी पीसी प्रणाली संयुक्त है।<ref>"https://www.tomshardware.com/reviews/geforce-radeon-power,2122.html How Much Power Does Your Graphics Card Need?"</ref> पास्कल श्रृंखला जीपीयू (टेस्ला P100) की अधिकतम बिजली खपत 250W निर्दिष्ट की गई थी।<ref>"https://images.nvidia.com/content/tesla/pdf/nvidia-tesla-p100-PCIe-datasheet.pdf Nvidia
जीपीयू की उच्च प्रदर्शन का भुगतान उच्च विद्युत खपत की रूप में होता है, जिसकी पूर्ण भार में वास्तव में पीसी सिस्टम के शेष हिस्से के समान शक्ति होती है।<ref>"https://www.tomshardware.com/reviews/geforce-radeon-power,2122.html How Much Power Does Your Graphics Card Need?"</ref> पास्कल श्रृंखला जीपीयू (टेस्ला P100) की अधिकतम बिजली खपत 250W निर्दिष्ट की गई थी।<ref>"https://images.nvidia.com/content/tesla/pdf/nvidia-tesla-p100-PCIe-datasheet.pdf Nvidia
  Tesla P100 GPU Accelerator {{webarchive|url=https://web.archive.org/web/20180724140610/https://images.nvidia.com/content/tesla/pdf/nvidia-tesla-p100-PCIe-datasheet.pdf |date=24 July 2018 }}"</ref>
  Tesla P100 GPU Accelerator {{webarchive|url=https://web.archive.org/web/20180724140610/https://images.nvidia.com/content/tesla/pdf/nvidia-tesla-p100-PCIe-datasheet.pdf |date=24 July 2018 }}"</ref>
==स्ट्रीम प्रोसेसिंग==
==स्ट्रीम प्रोसेसिंग==
{{Main|स्ट्रीम प्रोसेसिंग}}
{{Main|स्ट्रीम प्रोसेसिंग}}
जीपीयू विशेष रूप से ग्राफिक्स के लिए डिज़ाइन किए गए हैं और इस प्रकार संचालन और प्रोग्रामिंग में बहुत प्रतिबंधात्मक हैं। अपने डिज़ाइन के कारण, जीपीयू केवल उन समस्याओं के लिए प्रभावी होते हैं जिन्हें स्ट्रीम प्रोसेसिंग का उपयोग करके हल किया जा सकता है और हार्डवेयर का उपयोग केवल कुछ निश्चित तरीकों से किया जा सकता है।
जीपीयू विशेष रूप से ग्राफिक्स के लिए डिज़ाइन किए गए हैं और इसलिए ऑपरेशन और प्रोग्रामिंग में बहुत प्रतिबंधक होते हैं। इनके डिज़ाइन के कारण, जीपीयू केवल उन समस्याओं के लिए प्रभावी हैं जो स्ट्रीम प्रोसेसिंग का उपयोग करके हल किए जा सकती हैं और हार्डवेयर केवल कुछ विशेष तरीकों में प्रयोग किया जा सकता है।
   
   
शीर्षों, टुकड़ों और बनावटों का जिक्र करने वाली निम्नलिखित चर्चा मुख्य रूप से जीपीजीपीयू प्रोग्रामिंग के विरासत मॉडल से संबंधित है, जहां ग्राफिक्स एपीआई (ओपनजीएल या डायरेक्टएक्स) का उपयोग सामान्य प्रयोजन गणना करने के लिए किया जाता था। CUDA (एनवीडिया, 2007) और ओपनसीएल (विक्रेता-स्वतंत्र, 2008) सामान्य प्रयोजन कंप्यूटिंग एपीआई की प्रारंभ के साथ, नए जीपीजीपीयू कोड में ग्राफिक्स प्राइमेटिव्स के लिए गणना को मैप करना अब आवश्यक नहीं है। उपयोग किए गए एपीआई की परवाह किए बिना जीपीयू की स्ट्रीम प्रोसेसिंग प्रकृति वैध रहती है। (उदाहरण देखें,<ref name=goddeke2010>{{cite web|url=http://d-nb.info/100545535X/34|title=D. Göddeke, 2010. Fast and Accurate Finite-Element Multigrid Solvers for PDE Simulations on GPU Clusters. Ph.D. dissertation, Technischen Universität Dortmund.|url-status=live|archive-url=https://web.archive.org/web/20141216020143/http://d-nb.info/100545535X/34|archive-date=16 December 2014|df=dmy-all}}</ref>)
निम्नलिखित चर्चा, जिसमें वर्टेक्स, फ्रेगमेंट्स और टेक्स्चर्स का उल्लेख है, मुख्य रूप से ग्राफिक्स API (ओपेनजीएल या डायरेक्टएक्स) का उपयोग करके सामान्य-उद्देशीय गणना को करने के लिए किया जाने वाले पुराने जीपीयू प्रोग्रामिंग के प्रति है, जहां CUDA (एनविडिया, 2007) और ओपनसीएल (विक्रेता-निर्दिष्ट, 2008) सामान्य-उद्देशीय कंप्यूटिंग API की प्रस्तावना से, नए जीपीयू कोडों में अब गणना को ग्राफिक्स प्राथमिकियों के साथ मानचित्र करना आवश्यक नहीं होता। जीपीयू के स्ट्रीम प्रोसेसिंग की प्रकृति APIs का उपयोग किये जाने पर भी स्थायी रहती है। (उदाहरण के लिए, <ref name=goddeke2010>{{cite web|url=http://d-nb.info/100545535X/34|title=D. Göddeke, 2010. Fast and Accurate Finite-Element Multigrid Solvers for PDE Simulations on GPU Clusters. Ph.D. dissertation, Technischen Universität Dortmund.|url-status=live|archive-url=https://web.archive.org/web/20141216020143/http://d-nb.info/100545535X/34|archive-date=16 December 2014|df=dmy-all}}</ref>देखें)
   
   
जीपीयू केवल स्वतंत्र शीर्षों और टुकड़ों को संसाधित कर सकते हैं, किन्तु उनमें से कई को समानांतर में भी संसाधित कर सकते हैं। यह विशेष रूप से तब प्रभावी होता है जब प्रोग्रामर ही प्रकार से कई शीर्षों या टुकड़ों को संसाधित करना चाहता है। इस अर्थ में, जीपीयू स्ट्रीम प्रोसेसर हैं{{snd}} प्रोसेसर जो साथ स्ट्रीम में कई रिकॉर्ड पर कर्नेल चलाकर समानांतर में काम कर सकते हैं।
जीपीयू केवल स्वतंत्र वर्टेक्स और फ्रेगमेंट्स को प्रोसेस कर सकते हैं, लेकिन उन्हें परालल ढंग से कई तत्वों का प्रोसेस कर सकते हैं। यह खासतौर पर उपयुक्त होता है जब प्रोग्रामर बहुत सारे वर्टेक्स या फ्रेगमेंट्स को ही तरीके से प्रोसेस करना चाहता है। इस मायने में, जीपीयू स्ट्रीम प्रोसेसर्स हैं - प्रोसेसर्स जो बार में स्ट्रीम में बहुत सारे रेकर्ड्स पर कर्नल को चला कर पारलेल में काम कर सकते हैं।
   
   
स्ट्रीम केवल रिकॉर्ड्स का सेट है जिसके लिए समान गणना की आवश्यकता होती है। धाराएँ डेटा समानता प्रदान करती हैं। [[कर्नेल की गणना करें]] वे फ़ंक्शन हैं जो स्ट्रीम में प्रत्येक तत्व पर लागू होते हैं। जीपीयू में, शीर्ष और टुकड़े स्ट्रीम में तत्व हैं और शीर्ष और टुकड़े शेडर उन पर चलने वाले कर्नेल हैं।{{dubious|reason=false see CUDA shared memory: Since GPUs process elements independently there is no way to have shared or static data.|date=February 2017}} प्रत्येक तत्व के लिए हम केवल इनपुट से पढ़ सकते हैं, उस पर संचालन कर सकते हैं और आउटपुट पर लिख सकते हैं। एकाधिक इनपुट और एकाधिक आउटपुट रखने की अनुमति है, किन्तु मेमोरी का टुकड़ा कभी भी पढ़ने योग्य और लिखने योग्य नहीं होता है।{{Vague|date=March 2008}}
स्ट्रीम सामान्य रूप से समुच्चय होती है जिसमें समान गणना की आवश्यकता होती है। स्ट्रीम्स डेटा पैरालेलिज़म प्रदान करते हैं। [[कर्नेल की गणना करें]] वे फ़ंक्शंस होते हैं जिन्हें प्रत्येक स्ट्रीम में प्रत्येक तत्व पर क्रियान्वित किया जाता है। जीपीयू में, वर्टेक्स और फ्रेगमेंट्स स्ट्रीम में तत्व होते हैं और वर्टेक्स और फ्रेगमेंट शेडर्स उन पर चलाए जाने वाले कर्नल्स होते हैं।{{dubious|reason=false see CUDA shared memory: Since GPUs process elements independently there is no way to have shared or static data.|date=February 2017}} प्रत्येक तत्व के लिए, हम केवल इनपुट से पढ़ सकते हैं, इस पर कार्यवाही कर सकते हैं, और आउटपुट में लिख सकते हैं। एकाधिक इनपुट और एकाधिक आउटपुट रखने की अनुमति है, किन्तु मेमोरी का टुकड़ा कभी भी पढ़ने योग्य और लिखने योग्य नहीं होता है।{{Vague|date=March 2008}}
   
   
अंकगणितीय तीव्रता को हस्तांतरित स्मृति के प्रति शब्द किए गए संचालन की संख्या के रूप में परिभाषित किया गया है। जीपीजीपीयू अनुप्रयोगों के लिए उच्च अंकगणितीय तीव्रता होना महत्वपूर्ण है अन्यथा मेमोरी एक्सेस विलंबता कम्प्यूटेशनल स्पीडअप को सीमित कर देगी।<ref>{{cite journal |last1= Asanovic |first1= K. |author-link3= James Demmel |last2= Bodik |first2= R. |last3= Demmel |first3= J. |last4= Keaveny |first4= T. |last5= Keutzer |first5= K. |last6= Kubiatowicz |first6= J. |last7= Morgan |first7= N. |last8= Patterson |first8= D. |last9= Sen |first9= K. |last10= Wawrzynek |first10= J. |last11= Wessel |first11= D. |last12= Yelick |first12= K. |year= 2009 |title= समानांतर कंप्यूटिंग परिदृश्य का एक दृश्य|journal= Commun. ACM |volume= 52 |issue= 10| pages= 56–67 |doi=10.1145/1562764.1562783|doi-access= free }}</ref>  
अंकगणितिक घनत्व को मेमोरी संचयित करने के लिए प्रदर्शित ओपरेशनों की संख्या के रूप में परिभाषित किया जाता है। जीपीयू अनुप्रयोगों के लिए उच्च अंकगणितिक घनत्व महत्वपूर्ण होता है अन्यथा मेमोरी एक्सेस लेटेंसी गणना की गति को सीमित कर देगी।<ref>{{cite journal |last1= Asanovic |first1= K. |author-link3= James Demmel |last2= Bodik |first2= R. |last3= Demmel |first3= J. |last4= Keaveny |first4= T. |last5= Keutzer |first5= K. |last6= Kubiatowicz |first6= J. |last7= Morgan |first7= N. |last8= Patterson |first8= D. |last9= Sen |first9= K. |last10= Wawrzynek |first10= J. |last11= Wessel |first11= D. |last12= Yelick |first12= K. |year= 2009 |title= समानांतर कंप्यूटिंग परिदृश्य का एक दृश्य|journal= Commun. ACM |volume= 52 |issue= 10| pages= 56–67 |doi=10.1145/1562764.1562783|doi-access= free }}</ref>  
   
   
आदर्श GPजीपीयू अनुप्रयोगों में बड़े डेटा सेट, उच्च समानता और डेटा तत्वों के बीच न्यूनतम निर्भरता होती है।
आदर्श जीपीयू अनुप्रयोगों में बड़े डेटा समुच्चय, उच्च पैराललिस्म, और डेटा तत्वों के बीच न्यूनता होती है।
   
   
===जीपीयू प्रोग्रामिंग अवधारणाएं===
===जीपीयू प्रोग्रामिंग अवधारणाएं===
   
   
====कम्प्यूटेशनल संसाधन====
====कम्प्यूटेशनल संसाधन====
जीपीयू पर विभिन्न प्रकार के कम्प्यूटेशनल संसाधन उपलब्ध हैं:
जीपीयू पर विभिन्न प्रकार के गणनात्मक संसाधन होते हैं:
   
   
* प्रोग्राम करने योग्य प्रोसेसर - वर्टेक्स, प्रिमिटिव, फ्रैगमेंट और मुख्य रूप से कंप्यूट पाइपलाइन प्रोग्रामर को डेटा की स्ट्रीम पर कर्नेल निष्पादित करने की अनुमति देते हैं
* प्रोग्राम करने योग्य प्रोसेसर - वर्टेक्स, प्रिमिटिव, फ्रैगमेंट और मुख्य रूप से कंप्यूट पाइपलाइन, जो प्रोग्रामर को डेटा स्ट्रीम पर कर्नल चलाने की अनुमति देते हैं।
* रैस्टराइज़र - टुकड़े बनाता है और बनावट निर्देशांक और रंग जैसे प्रति-शीर्ष स्थिरांक को प्रक्षेपित करता है
* रैस्टराइज़र - फ्रैगमेंट्स बनाता है और पर-वर्टेक्स स्थिरांक जैसे टेक्स्चर संयोजनों और रंग को इंटरपोलेट करता है।
* बनावट इकाई - केवल पढ़ने योग्य मेमोरी इंटरफ़ेस
* बनावट इकाई - केवल पढ़ने योग्य मेमोरी इंटरफ़ेस
* फ़्रेमबफ़र - केवल-लिखने योग्य मेमोरी इंटरफ़ेस
* फ़्रेमबफ़र - केवल-लिखने योग्य मेमोरी इंटरफ़ेस
   
   
वास्तव में, प्रोग्राम फ़्रेमबफ़र के बजाय आउटपुट के लिए केवल लिखने वाली बनावट को प्रतिस्थापित कर सकता है। यह या तो फ़्रेमबफ़र ऑब्जेक्ट#यूज़ (आरटीटी), रेंडर-टू-बैकबफ़र-कॉपी-टू-टेक्सचर (आरटीबीसीटीटी), या हाल के माध्यम से किया जाता है मन की बात कह डालो।
वास्तव में, प्रोग्राम फ्रेमबफर के अतिरिक्त आउटपुट के लिए लिखने योग्य टेक्स्चर का प्रयोग कर सकता है। इसे या तो टेक्स्चर में रेंडर करने (RTT), बैकबफर को टेक्स्चर में कॉपी करने और उसे बैकबफर से बाप्रत्येक आने के लिए उपयोग करने (RTBCTT), या नवीनतम स्ट्रीम-आउट के माध्यम से किया जा सकता है।
====धारा के रूप में बनावट====
====प्रवाह जैसी बनावट====
जीपीजीपीयू में स्ट्रीम के लिए सबसे सामान्य रूप 2डी ग्रिड है क्योंकि यह स्वाभाविक रूप से जीपीयू में निर्मित रेंडरिंग मॉडल के साथ फिट बैठता है। कई संगणनाएँ स्वाभाविक रूप से ग्रिड में मैप होती हैं: मैट्रिक्स बीजगणित, छवि प्रसंस्करण, भौतिक आधारित सिमुलेशन, और इसी तरह।  
जीपीयू में स्ट्रीम को लेने के लिए सबसे सामान्य रूप 2D ग्रिड होता है क्योंकि यह जीपीयू में निर्मित रेंडरिंग मॉडल के साथ प्राकृतिक रूप से मिलता है। बहुत सी गणनाएं प्राकृतिक रूप से ग्रिड में मानचित्र हो जाती हैं: आव्यूह बीजगणित, छवि प्रसंस्करण, भौतिक आधारित अनुकरण, और इसी तरह की अनुकरण।  
 
चूँकि बनावट का उपयोग मेमोरी के रूप में किया जाता है, टेक्स्चर लुकअप्स फिर मेमोरी रीड के रूप में उपयोग किए जाते हैं। इस कारण से कुछ ऑपरेशन जीपीयू द्वारा स्वतः किए जा सकते हैं।


चूंकि बनावट का उपयोग मेमोरी के रूप में किया जाता है, इसलिए बनावट लुकअप का उपयोग मेमोरी रीड के रूप में किया जाता है। इसके कारण कुछ ऑपरेशन जीपीयू द्वारा स्वचालित रूप से किए जा सकते हैं। 
====कर्नल====
====गुठली====
कंप्यूट कर्नेल को [[लूप (कंप्यूटिंग)]] के शरीर के रूप में माना जा सकता है। उदाहरण के लिए, सीपीयू पर ग्रिड पर काम करने वाले प्रोग्रामर के पास ऐसा कोड हो सकता है जो इस प्रकार दिखता है:
कंप्यूट कर्नेल को [[लूप (कंप्यूटिंग)]] के शरीर के रूप में माना जा सकता है। उदाहरण के लिए, सीपीयू पर ग्रिड पर काम करने वाले प्रोग्रामर के पास ऐसा कोड हो सकता है जो इस प्रकार दिखता है:
   
   
Line 127: Line 132:
   
   
</syntaxhighlight>
</syntaxhighlight>
जीपीयूपर, प्रोग्रामर केवल लूप की बॉडी को कर्नेल के रूप में निर्दिष्ट करता है और किस डेटा को इनवॉइस करके लूप करना है ज्यामिति प्रसंस्करण.
जीपीयू पर, प्रोग्रामर केवल कर्नल के रूप में लूप के शरीर को और किस डेटा पर लूप चलाने के लिए ज्यामिति प्रसंस्करण को निमंत्रण करके निर्दिष्ट करता है।


====प्रवाह नियंत्रण====
====प्रवाह नियंत्रण====
अनुक्रमिक कोड में यदि-तब-अन्यथा कथनों और लूप के विभिन्न रूपों का उपयोग करके प्रोग्राम के प्रवाह को नियंत्रित करना संभव है। ऐसी प्रवाह नियंत्रण संरचनाएँ हाल ही में जीपीयू में जोड़ी गई हैं।<ref name="book">{{cite web|url=https://developer.nvidia.com/gpugems/GPUGems2/gpugems2_chapter34.html|title=GPU Gems – Chapter 34, GPU Flow-Control Idioms}}</ref> अंकगणित/बिट संचालन की उचित रूप से तैयार की गई श्रृंखला का उपयोग करके सशर्त लेखन किया जा सकता है, किन्तु लूपिंग और सशर्त शाखा संभव नहीं थी।
वर्तमान भाषाओं में प्रवाह नियंत्रण इफ-थेन-एल्स फॉर तथा व्हिले प्रकार के लूप का उपयोग करके फंक्शन की फ्लो नियंत्रण कर सकते हैं। ऐसे फ्लो नियंत्रण संरचनाएं हाल ही में जीपीयू में जोड़ी गई हैं।<ref name="book">{{cite web|url=https://developer.nvidia.com/gpugems/GPUGems2/gpugems2_chapter34.html|title=GPU Gems – Chapter 34, GPU Flow-Control Idioms}}</ref> कंडीशनल राइट्स को योग्य रीति से निर्मित फंक्शन/बिट ऑपरेशन के माध्यम से किया जा सकता है, लेकिन लूपिंग और कंडीशनल ब्रांचिंग का उपयोग नहीं हो सकता था।


हाल के जीपीयू ब्रांचिंग की अनुमति देते हैं, किन्तु सामान्यतः प्रदर्शन दंड के साथ। सामान्यतः आंतरिक लूपों में ब्रांचिंग से बचना चाहिए, चाहे वह सीपीयू या जीपीयू कोड में हो, और विभिन्न ,विधियों जैसे स्थैतिक शाखा रिज़ॉल्यूशन, पूर्व-गणना, पूर्वानुमान, लूप विभाजन,<ref name="Tutorial on eliminating branches">[https://web.archive.org/web/20110603193749/http://www.futurechips.org/tips-for-power-coders/basic-technique-to-help-branch-prediction.html Future Chips]. "Tutorial on removing branches", 2011</ref> और ज़ेड-कल्ल<ref name="survey">[http://graphics.idav.ucdavis.edu/publications/print_pub?pub_id=907 GPGPU survey paper] {{webarchive|url=https://web.archive.org/web/20070104090919/http://graphics.idav.ucdavis.edu/publications/print_pub?pub_id=907 |date=4 January 2007 }}: John D. Owens, David Luebke, Naga Govindaraju, Mark Harris, Jens Krüger, Aaron E. Lefohn, and Tim Purcell. "A Survey of General-Purpose Computation on Graphics Hardware". Computer Graphics Forum, volume 26, number 1, 2007, pp. 80–113.</ref> हार्डवेयर समर्थन उपस्थित नहीं होने पर ब्रांचिंग प्राप्त करने के लिए इसका उपयोग किया जा सकता है।
हाल के जीपीयू ब्रांचिंग को अनुमति देते हैं, लेकिन सामान्यतः इसमें परफ़ॉर्मेंस दंडनीयता होती है। ब्रांचिंग का उपयोग सामान्य रूप से आंतरिक लूप में बचना चाहिए, चाहे वह सीपीयू या जीपीयू कोड में हो, और यदि हार्डवेयर समर्थन उपलब्ध नहीं है तो स्थिर ब्रांच निर्धारण, पूर्व-गणना, प्रेडिकेशन, लूप विभाजन और जेड-कल के विभिन्न तरीके का उपयोग किया जा सकता है।<ref name="Tutorial on eliminating branches">[https://web.archive.org/web/20110603193749/http://www.futurechips.org/tips-for-power-coders/basic-technique-to-help-branch-prediction.html Future Chips]. "Tutorial on removing branches", 2011</ref> <ref name="survey">[http://graphics.idav.ucdavis.edu/publications/print_pub?pub_id=907 GPGPU survey paper] {{webarchive|url=https://web.archive.org/web/20070104090919/http://graphics.idav.ucdavis.edu/publications/print_pub?pub_id=907 |date=4 January 2007 }}: John D. Owens, David Luebke, Naga Govindaraju, Mark Harris, Jens Krüger, Aaron E. Lefohn, and Tim Purcell. "A Survey of General-Purpose Computation on Graphics Hardware". Computer Graphics Forum, volume 26, number 1, 2007, pp. 80–113.</ref>  


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


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


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


====स्कैन====
====स्कैन====
स्कैन ऑपरेशन, जिसे प्रीफ़िक्स सम#पैरेलल एल्गोरिथम भी कहा जाता है, डेटा तत्वों के सदिश (स्ट्रीम) और पहचान तत्व 'i' के साथ मोनोइड|(मनमाना) सहयोगी बाइनरी फ़ंक्शन '+' लेता है। यदि इनपुट [a0, a1, a2, a3, ...] है, तो विशेष स्कैन आउटपुट उत्पन्न करता है [i, a0, a0 + a1, a0 + a1 + a2, ...], जबकि समावेशी स्कैन आउटपुट उत्पन्न करता है आउटपुट [a0, a0 + a1, a0 + a1 + a2, a0 + a1 + a2 + a3, ...] और अर्धसमूह अस्तित्व में है। जबकि पहली नज़र में ऑपरेशन स्वाभाविक रूप से क्रमिक लग सकता है, कुशल समानांतर स्कैन एल्गोरिदम संभव हैं और ग्राफिक्स प्रोसेसिंग इकाइयों पर लागू किए गए हैं। स्कैन ऑपरेशन में उदाहरण के लिए, क्विकसॉर्ट और स्पार्स मैट्रिक्स-सदिश गुणन का उपयोग होता है।<ref name="goddeke2010">{{cite web|url=http://d-nb.info/100545535X/34|title=D. Göddeke, 2010. Fast and Accurate Finite-Element Multigrid Solvers for PDE Simulations on GPU Clusters. Ph.D. dissertation, Technischen Universität Dortmund.|url-status=live|archive-url=https://web.archive.org/web/20141216020143/http://d-nb.info/100545535X/34|archive-date=16 December 2014|df=dmy-all}}</ref><ref>{{cite web|url=http://www.idav.ucdavis.edu/func/return_pdf?pub_id=915|title=S. Sengupta, M. Harris, Y. Zhang, J. D. Owens, 2007. Scan primitives for GPU computing. In T. Aila and M. Segal (eds.): Graphics Hardware (2007).|url-status=dead|archive-url=https://web.archive.org/web/20150605081020/http://www.idav.ucdavis.edu/func/return_pdf?pub_id=915|archive-date=5 June 2015|df=dmy-all|access-date=16 December 2014}}</ref><ref>{{cite journal | last1 = Blelloch | first1 = G. E. | year = 1989 | title = आदिम समानांतर संचालन के रूप में स्कैन करता है| url = http://www.cs.berkeley.edu/~knight/cs267/papers/scan_primitive.pdf | journal = IEEE Transactions on Computers | volume = 38 | issue = 11 | pages = 1526–1538 | doi = 10.1109/12.42122 | url-status = dead | archive-url = https://web.archive.org/web/20150923211604/http://www.cs.berkeley.edu/~knight/cs267/papers/scan_primitive.pdf | archive-date = 23 September 2015 | df = dmy-all | access-date = 16 December 2014 }}</ref><ref>{{cite web|url=http://developer.nvidia.com/GPUGems3/gpugems3_ch39.html|title=M. Harris, S. Sengupta, J. D. Owens. Parallel Prefix Sum (Scan) with CUDA. In Nvidia: GPU Gems 3, Chapter 39.}}{{dead link|date=April 2018 |bot=SheriffIsInTown |fix-attempted=yes }}</ref>
स्कैन ऑपरेशन, जिसे ''समानांतर उपसर्ग योग'' भी कहा जाता है, सदिश (स्ट्रीम) को डेटा तत्वों और (विचित्र) जुड़ावी बाइनरी फ़ंक्शन '+' के साथ और पहचान तत्व 'i' के साथ लेता है। यदि इनपुट [a0, a1, a2, a3, ...] है, तो ''विशेष'' स्कैन आउटपुट [i, a0, a0 + a1, a0 + a1 + a2, ...] उत्पन्न करता है, जबकि ''समावेशी'' स्कैन आउटपुट [a0, a0 + a1, a0 + a1 + a2, a0 + a1 + a2 + a3, ...] उत्पन्न करता है और अस्तित्व की आवश्यकता नहीं होती है। यदि पहली नजर में यह ऑपरेशन स्रोतिया रूप से विकल्प लगता है, तो कुशल समानांतर स्कैन एल्गोरिदम संभव है और इन्हें ग्राफिक्स प्रोसेसिंग यूनिटों पर क्रियान्वित किया गया है। स्कैन ऑपरेशन में उदाहरण के लिए, क्विकसॉर्ट और स्पार्स आव्यूह -सदिश गुणन का उपयोग होता है।<ref name="goddeke2010">{{cite web|url=http://d-nb.info/100545535X/34|title=D. Göddeke, 2010. Fast and Accurate Finite-Element Multigrid Solvers for PDE Simulations on GPU Clusters. Ph.D. dissertation, Technischen Universität Dortmund.|url-status=live|archive-url=https://web.archive.org/web/20141216020143/http://d-nb.info/100545535X/34|archive-date=16 December 2014|df=dmy-all}}</ref><ref>{{cite web|url=http://www.idav.ucdavis.edu/func/return_pdf?pub_id=915|title=S. Sengupta, M. Harris, Y. Zhang, J. D. Owens, 2007. Scan primitives for GPU computing. In T. Aila and M. Segal (eds.): Graphics Hardware (2007).|url-status=dead|archive-url=https://web.archive.org/web/20150605081020/http://www.idav.ucdavis.edu/func/return_pdf?pub_id=915|archive-date=5 June 2015|df=dmy-all|access-date=16 December 2014}}</ref><ref>{{cite journal | last1 = Blelloch | first1 = G. E. | year = 1989 | title = आदिम समानांतर संचालन के रूप में स्कैन करता है| url = http://www.cs.berkeley.edu/~knight/cs267/papers/scan_primitive.pdf | journal = IEEE Transactions on Computers | volume = 38 | issue = 11 | pages = 1526–1538 | doi = 10.1109/12.42122 | url-status = dead | archive-url = https://web.archive.org/web/20150923211604/http://www.cs.berkeley.edu/~knight/cs267/papers/scan_primitive.pdf | archive-date = 23 September 2015 | df = dmy-all | access-date = 16 December 2014 }}</ref><ref>{{cite web|url=http://developer.nvidia.com/GPUGems3/gpugems3_ch39.html|title=M. Harris, S. Sengupta, J. D. Owens. Parallel Prefix Sum (Scan) with CUDA. In Nvidia: GPU Gems 3, Chapter 39.}}{{dead link|date=April 2018 |bot=SheriffIsInTown |fix-attempted=yes }}</ref>
====तितर बितर====
====बिखेरना ====
स्कैटर (सदिश एड्रेसिंग) ऑपरेशन सबसे स्वाभाविक रूप से वर्टेक्स प्रोसेसर पर परिभाषित होता है। वर्टेक्स प्रोसेसर वर्टेक्स (ज्यामिति) की स्थिति को समायोजित करने में सक्षम है, जो प्रोग्रामर को यह नियंत्रित करने की अनुमति देता है कि ग्रिड पर जानकारी कहाँ जमा की जाती है। अन्य विस्तार भी संभव हैं, जैसे यह नियंत्रित करना कि शीर्ष कितने बड़े क्षेत्र को प्रभावित करता है।
स्कैटर ऑपरेशन सबसे प्राकृतिक रूप से वर्टेक्स प्रोसेसर पर परिभाषित होता है। वर्टेक्स प्रोसेसर वर्टेक्स की स्थिति को समायोजित कर सकता है, जिससे प्रोग्रामर को नियंत्रित होता है कि ग्रिड पर डेटा कहाँ जमा की जाती है। अन्य विस्तार भी संभव हैं, जैसे कि वर्टेक्स द्वारा प्रभावित फील्ड कितना बड़ा होता है।


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


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


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


====क्रमबद्ध करें====
====वर्गीकरण====
सॉर्ट ऑपरेशन तत्वों के अव्यवस्थित सेट को तत्वों के क्रमबद्ध सेट में परिवर्तित करता है। जीपीयू पर सबसे सामान्य कार्यान्वयन पूर्णांक और फ्लोटिंग पॉइंट डेटा के लिए रेडिक्स सॉर्टअविष्कार का उपयोग करता है,अविष्कार और सामान्य तुलनीय डेटा के लिए मोटे-ग्रेन्ड [[ मर्ज़ सॉर्ट |मर्ज़ सॉर्ट]] और फाइन-ग्रेन्ड सॉर्टिंग नेटवर्क का उपयोग करता है।<ref name="merrill-thesis">[https://sites.google.com/site/duanemerrill/dissertation.pdf Merrill, Duane.  Allocation-oriented Algorithm Design with Application to GPU Computing].  Ph.D. dissertation, Department of Computer Science, University of Virginia.  Dec. 2011.</ref><ref name="modern-gnu">[https://nvlabs.github.io/moderngpu/mergesort.html Sean Baxter. Modern gpu] {{webarchive|url=https://web.archive.org/web/20161007190316/https://nvlabs.github.io/moderngpu/mergesort.html |date=7 October 2016 }}, 2013.</ref>
सॉर्ट ऑपरेशन अव्यवस्थित तत्वों का व्यवस्थित तत्व समुच्चय में परिवर्तित करता है। जीपीयू पर सबसे सामान्य अमल दिशावर्त सॉर्ट का उपयोग करता है जो इंटीजर और फ्लोटिंग पॉइंट डेटा के लिए होता है और सामान्य तुलनायोग्य डेटा के लिए कोर्स-ग्रेन्ड [[ मर्ज़ सॉर्ट |मर्ज़ सॉर्ट]] और फाइन-ग्रेन्ड सॉर्टिंग नेटवर्क का उपयोग करता है।<ref name="merrill-thesis">[https://sites.google.com/site/duanemerrill/dissertation.pdf Merrill, Duane.  Allocation-oriented Algorithm Design with Application to GPU Computing].  Ph.D. dissertation, Department of Computer Science, University of Virginia.  Dec. 2011.</ref><ref name="modern-gnu">[https://nvlabs.github.io/moderngpu/mergesort.html Sean Baxter. Modern gpu] {{webarchive|url=https://web.archive.org/web/20161007190316/https://nvlabs.github.io/moderngpu/mergesort.html |date=7 October 2016 }}, 2013.</ref>
====खोज====
====सर्च====
अविष्कार ऑपरेशन प्रोग्रामर को स्ट्रीम के भीतर किसी दिए गए निर्दिष्ट तत्व को ढूंढने की अनुमति देता है, या संभवतः किसी निर्दिष्ट तत्व के निकटतम को ढूंढने की अनुमति देता है। जीपीयू का उपयोग किसी व्यक्तिगत तत्व की अविष्कार को तेज़ करने के लिए नहीं किया जाता है, किंतु इसका उपयोग समानांतर में कई खोजों को चलाने के लिए किया जाता है।  
सर्च ऑपरेशन प्रोग्रामर को स्ट्रीम में दिए गए निर्दिष्ट तत्व को ढूंढने, या संभवतः किसी निर्दिष्ट तत्व के पड़ोसियों को ढूंढने की अनुमति देता है। जिस स्थिति में डेटाबेस खोजों में इसका बहुत उपयोग किया जाता है। जीपीयू का उपयोग किसी व्यक्तिगत तत्व की खोज को तेज़ करने के लिए नहीं किया जाता है, किंतु इसे समानांतर रूप से कई सर्चें चलाने के लिए उपयोग किया जाता है। सामान्यतः सर्च मेथड के रूप में सॉर्टेड तत्वों पर बाइनरी सर्च का उपयोग किया जाता है।  
 
अधिकतर उपयोग की जाने वाली अविष्कार विधि क्रमबद्ध तत्वों पर बाइनरी अविष्कार है।


====डेटा संरचनाएं====
====डेटा संरचनाएं====
Line 170: Line 173:


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


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


* [[स्वचालित समानांतरीकरण]]<ref>Leung, Alan, Ondřej Lhoták, and Ghulam Lashari. "[https://cormack.uwaterloo.ca/~olhotak/pubs/pppj09.pdf Automatic parallelization for graphics processing units]." Proceedings of the 7th International Conference on Principles and Practice of Programming in Java. ACM, 2009.</ref><ref>Henriksen, Troels, Martin Elsman, and Cosmin E. Oancea. "[https://futhark-lang.org/publications/fhpc14.pdf Size slicing: a hybrid approach to size inference in futhark]." Proceedings of the 3rd ACM SIGPLAN workshop on Functional high-performance computing. ACM, 2014.</ref><ref>{{Cite book |chapter-url=https://www.researchgate.net/publication/221235428 |doi=10.1145/1375527.1375562|chapter=A compiler framework for optimization of affine loop nests for gpgpus |title=Proceedings of the 22nd annual international conference on Supercomputing - ICS '08 |year=2008 |last1=Baskaran |first1=Muthu Manikandan |last2=Bondhugula |first2=Uday |last3=Krishnamoorthy |first3=Sriram |last4=Ramanujam |first4=J. |last5=Rountev |first5=Atanas |last6=Sadayappan |first6=P. |page=225 |isbn=9781605581583 |s2cid=6137960 }}</ref>
* [[स्वचालित समानांतरीकरण]]<ref>Leung, Alan, Ondřej Lhoták, and Ghulam Lashari. "[https://cormack.uwaterloo.ca/~olhotak/pubs/pppj09.pdf Automatic parallelization for graphics processing units]." Proceedings of the 7th International Conference on Principles and Practice of Programming in Java. ACM, 2009.</ref><ref>Henriksen, Troels, Martin Elsman, and Cosmin E. Oancea. "[https://futhark-lang.org/publications/fhpc14.pdf Size slicing: a hybrid approach to size inference in futhark]." Proceedings of the 3rd ACM SIGPLAN workshop on Functional high-performance computing. ACM, 2014.</ref><ref>{{Cite book |chapter-url=https://www.researchgate.net/publication/221235428 |doi=10.1145/1375527.1375562|chapter=A compiler framework for optimization of affine loop nests for gpgpus |title=Proceedings of the 22nd annual international conference on Supercomputing - ICS '08 |year=2008 |last1=Baskaran |first1=Muthu Manikandan |last2=Bondhugula |first2=Uday |last3=Krishnamoorthy |first3=Sriram |last4=Ramanujam |first4=J. |last5=Rountev |first5=Atanas |last6=Sadayappan |first6=P. |page=225 |isbn=9781605581583 |s2cid=6137960 }}</ref>
Line 181: Line 184:
*सांख्यिकीय भौतिकी
*सांख्यिकीय भौतिकी
** [[आइसिंग मॉडल]]<ref>{{cite journal | arxiv=1007.3726 | doi=10.1016/j.cpc.2010.05.005 | title=Multi-GPU accelerated multi-spin Monte Carlo simulations of the 2D Ising model | year=2010 | last1=Block | first1=Benjamin | last2=Virnau | first2=Peter | last3=Preis | first3=Tobias | journal=Computer Physics Communications | volume=181 | issue=9 | pages=1549–1556 | bibcode=2010CoPhC.181.1549B | s2cid=14828005 }}</ref>
** [[आइसिंग मॉडल]]<ref>{{cite journal | arxiv=1007.3726 | doi=10.1016/j.cpc.2010.05.005 | title=Multi-GPU accelerated multi-spin Monte Carlo simulations of the 2D Ising model | year=2010 | last1=Block | first1=Benjamin | last2=Virnau | first2=Peter | last3=Preis | first3=Tobias | journal=Computer Physics Communications | volume=181 | issue=9 | pages=1549–1556 | bibcode=2010CoPhC.181.1549B | s2cid=14828005 }}</ref>
* [[जाली गेज सिद्धांत]]
* [[जाली गेज सिद्धांत|फिल्टर गेज सिद्धांत]]
*विभाजन (छवि प्रसंस्करण){{snd}} 2डी और 3डी<ref>{{cite journal | pmc=3657761 | year=2011 | last1=Sun | first1=S. | last2=Bauer | first2=C. | last3=Beichel | first3=R. | title=Automated 3-D Segmentation of Lungs with Lung Cancer in CT Data Using a Novel Robust Active Shape Model Approach | journal=IEEE Transactions on Medical Imaging | volume=31 | issue=2 | pages=449–460 | doi=10.1109/TMI.2011.2171357 | pmid=21997248 }}</ref>
*विभाजन (छवि प्रसंस्करण){{snd}} 2डी और 3डी<ref>{{cite journal | pmc=3657761 | year=2011 | last1=Sun | first1=S. | last2=Bauer | first2=C. | last3=Beichel | first3=R. | title=Automated 3-D Segmentation of Lungs with Lung Cancer in CT Data Using a Novel Robust Active Shape Model Approach | journal=IEEE Transactions on Medical Imaging | volume=31 | issue=2 | pages=449–460 | doi=10.1109/TMI.2011.2171357 | pmid=21997248 }}</ref>
* [[स्तर निर्धारित करने के तरीके|स्तर निर्धारित करने के विधि]]  
* [[स्तर निर्धारित करने के तरीके|स्तर निर्धारित करने के विधि]]  
Line 187: Line 190:
* [[फास्ट फूरियर ट्रांसफॉर्म]]<ref>Sørensen, Thomas Sangild, et al. "[https://www.researchgate.net/profile/Karsten_Noe/publication/5462925_Accelerating_the_Nonequispaced_Fast_Fourier_Transform_on_Commodity_Graphics_Hardware/links/00b49518562fbb56db000000/Accelerating-the-Nonequispaced-Fast-Fourier-Transform-on-Commodity-Graphics-Hardware.pdf Accelerating the nonequispaced fast Fourier transform on commodity graphics hardware]." IEEE Transactions on Medical Imaging 27.4 (2008): 538-547.</ref>
* [[फास्ट फूरियर ट्रांसफॉर्म]]<ref>Sørensen, Thomas Sangild, et al. "[https://www.researchgate.net/profile/Karsten_Noe/publication/5462925_Accelerating_the_Nonequispaced_Fast_Fourier_Transform_on_Commodity_Graphics_Hardware/links/00b49518562fbb56db000000/Accelerating-the-Nonequispaced-Fast-Fourier-Transform-on-Commodity-Graphics-Hardware.pdf Accelerating the nonequispaced fast Fourier transform on commodity graphics hardware]." IEEE Transactions on Medical Imaging 27.4 (2008): 538-547.</ref>
* जीपीयू सीखना{{snd}} [[ यंत्र अधिगम |यंत्र अधिगम]] और [[डेटा खनन]] गणना, उदाहरण के लिए, सॉफ़्टवेयर BIDMach के साथ
* जीपीयू सीखना{{snd}} [[ यंत्र अधिगम |यंत्र अधिगम]] और [[डेटा खनन]] गणना, उदाहरण के लिए, सॉफ़्टवेयर BIDMach के साथ
* [[k-निकटतम पड़ोसी एल्गोरिथ्म]]<ref>[https://arxiv.org/abs/0804.1448 Fast ''k''-nearest neighbor search using GPU]. In Proceedings of the CVPR Workshop on Computer Vision on GPU, Anchorage, Alaska, USA, June 2008. V. Garcia and E. Debreuve and M. Barlaud.</ref>
* [[k-निकटतम पड़ोसी एल्गोरिथ्म|k-निकटतम निकटतम एल्गोरिथ्म]]<ref>[https://arxiv.org/abs/0804.1448 Fast ''k''-nearest neighbor search using GPU]. In Proceedings of the CVPR Workshop on Computer Vision on GPU, Anchorage, Alaska, USA, June 2008. V. Garcia and E. Debreuve and M. Barlaud.</ref>
* [[फजी लॉजिक]]<ref>M. Cococcioni, R. Grasso, M. Rixen, ''[https://www.researchgate.net/profile/Marco_Cococcioni2/publication/224245725_Rapid_prototyping_of_high_performance_fuzzy_computing_applications_using_high_level_GPU_programming_for_maritime_operations_support/links/5b55ae9745851507a7c0bd5c/Rapid-prototyping-of-high-performance-fuzzy-computing-applications-using-high-level-GPU-programming-for-maritime-operations-support.pdf Rapid prototyping of high performance fuzzy computing applications using high level GPU programming for maritime operations support]'', in Proceedings of the 2011  
* [[फजी लॉजिक]]<ref>M. Cococcioni, R. Grasso, M. Rixen, ''[https://www.researchgate.net/profile/Marco_Cococcioni2/publication/224245725_Rapid_prototyping_of_high_performance_fuzzy_computing_applications_using_high_level_GPU_programming_for_maritime_operations_support/links/5b55ae9745851507a7c0bd5c/Rapid-prototyping-of-high-performance-fuzzy-computing-applications-using-high-level-GPU-programming-for-maritime-operations-support.pdf Rapid prototyping of high performance fuzzy computing applications using high level GPU programming for maritime operations support]'', in Proceedings of the 2011  
IEEE Symposium on Computational Intelligence for Security and Defense Applications (CISDA), Paris, 11–15 April 2011</ref>
IEEE Symposium on Computational Intelligence for Security and Defense Applications (CISDA), Paris, 11–15 April 2011</ref>
Line 223: Line 226:
** हार्डवेयर त्वरित वीडियो एन्कोडिंग और प्री-प्रोसेसिंग
** हार्डवेयर त्वरित वीडियो एन्कोडिंग और प्री-प्रोसेसिंग
* [[वैश्विक चमक]]{{snd}} किरण अनुरेखण (ग्राफिक्स), फोटॉन मैपिंग, रेडियोसिटी (कंप्यूटर ग्राफिक्स) अन्य के मध्य, उपसतह प्रकीर्णन
* [[वैश्विक चमक]]{{snd}} किरण अनुरेखण (ग्राफिक्स), फोटॉन मैपिंग, रेडियोसिटी (कंप्यूटर ग्राफिक्स) अन्य के मध्य, उपसतह प्रकीर्णन
* ज्यामितीय कंप्यूटिंग{{snd}} [[रचनात्मक ठोस ज्यामिति]], दूरी क्षेत्र, टकराव का पता लगाना, पारदर्शिता गणना, छाया निर्माण
* ज्यामितीय कंप्यूटिंग{{snd}} [[रचनात्मक ठोस ज्यामिति]], दूरी फील्ड, टकराव का पता लगाना, पारदर्शिता गणना, छाया निर्माण
* वैज्ञानिक कंप्यूटिंग
* वैज्ञानिक कंप्यूटिंग
** मोंटे कार्लो प्रकाश प्रसार का अनुकरण<ref name=Alerstam2009_JBO>{{cite journal |last1= Alerstam |first1= E. |last2= Svensson |first2= T. |last3= Andersson-Engels |first3= S. |author3-link=Stefan Andersson-Engels|year= 2008 |title= फोटॉन माइग्रेशन के उच्च गति मोंटे कार्लो सिमुलेशन के लिए ग्राफिक्स प्रोसेसिंग इकाइयों के साथ समानांतर कंप्यूटिंग|url= http://www.atomic.physics.lu.se/fileadmin/atomfysik/Biophotonics/Publications/Alerstam2008_JBOLetters.pdf |journal= Journal of Biomedical Optics |volume= 13 |issue= 6 |page= 060504 |doi= 10.1117/1.3041496 |pmid= 19123645 |bibcode= 2008JBO....13f0504A |url-status= live |archive-url= https://web.archive.org/web/20110809125745/http://www.atomic.physics.lu.se/fileadmin/atomfysik/Biophotonics/Publications/Alerstam2008_JBOLetters.pdf |archive-date= 9 August 2011 |df= dmy-all |doi-access= free }}</ref>
** मोंटे कार्लो प्रकाश प्रसार का अनुकरण<ref name=Alerstam2009_JBO>{{cite journal |last1= Alerstam |first1= E. |last2= Svensson |first2= T. |last3= Andersson-Engels |first3= S. |author3-link=Stefan Andersson-Engels|year= 2008 |title= फोटॉन माइग्रेशन के उच्च गति मोंटे कार्लो सिमुलेशन के लिए ग्राफिक्स प्रोसेसिंग इकाइयों के साथ समानांतर कंप्यूटिंग|url= http://www.atomic.physics.lu.se/fileadmin/atomfysik/Biophotonics/Publications/Alerstam2008_JBOLetters.pdf |journal= Journal of Biomedical Optics |volume= 13 |issue= 6 |page= 060504 |doi= 10.1117/1.3041496 |pmid= 19123645 |bibcode= 2008JBO....13f0504A |url-status= live |archive-url= https://web.archive.org/web/20110809125745/http://www.atomic.physics.lu.se/fileadmin/atomfysik/Biophotonics/Publications/Alerstam2008_JBOLetters.pdf |archive-date= 9 August 2011 |df= dmy-all |doi-access= free }}</ref>
Line 252: Line 255:
</ref>
</ref>
** इसका कार्यान्वयन: संसाधन बाधित परियोजना शेड्यूलिंग समस्या को हल करने वाला जीपीयू टैबू अविष्कार एल्गोरिदम गिटहब पर निःशुल्क उपलब्ध है;<ref>[https://github.com/CTU-IIG CTU-IIG] {{webarchive|url=https://web.archive.org/web/20160109193106/https://github.com/CTU-IIG |date=9 January 2016 }} Czech Technical University in Prague, Industrial Informatics Group (2015).</ref> [[नर्स शेड्यूलिंग समस्या]] को हल करने वाला जीपीयू एल्गोरिदम GitHub पर निःशुल्क उपलब्ध है।<ref>[https://github.com/CTU-IIG/NRRPGpu NRRPGpu] {{webarchive|url=https://web.archive.org/web/20160109193106/https://github.com/CTU-IIG/NRRPGpu |date=9 January 2016 }} Czech Technical University in Prague, Industrial Informatics Group (2015).</ref>
** इसका कार्यान्वयन: संसाधन बाधित परियोजना शेड्यूलिंग समस्या को हल करने वाला जीपीयू टैबू अविष्कार एल्गोरिदम गिटहब पर निःशुल्क उपलब्ध है;<ref>[https://github.com/CTU-IIG CTU-IIG] {{webarchive|url=https://web.archive.org/web/20160109193106/https://github.com/CTU-IIG |date=9 January 2016 }} Czech Technical University in Prague, Industrial Informatics Group (2015).</ref> [[नर्स शेड्यूलिंग समस्या]] को हल करने वाला जीपीयू एल्गोरिदम GitHub पर निःशुल्क उपलब्ध है।<ref>[https://github.com/CTU-IIG/NRRPGpu NRRPGpu] {{webarchive|url=https://web.archive.org/web/20160109193106/https://github.com/CTU-IIG/NRRPGpu |date=9 January 2016 }} Czech Technical University in Prague, Industrial Informatics Group (2015).</ref>
* तंत्रिका - तंत्र
* न्यूरल नेटवर्क्स
* [[डेटाबेस]] संचालन<ref>{{cite web |url=http://www.cs.cmu.edu/afs/cs.cmu.edu/Web/People/ngm/15-823/project/Final.pdf |title=PostgreSQL में GPU-आधारित सॉर्टिंग|author=Naju Mancheril |work=School of Computer Science – Carnegie Mellon University |url-status=live |archive-url=https://www.webcitation.org/60dQHCPfS?url=http://www.cs.cmu.edu/afs/cs.cmu.edu/Web/People/ngm/15-823/project/Final.pdf |archive-date=2 August 2011 |df=dmy-all }}</ref>
* [[डेटाबेस]] संचालन<ref>{{cite web |url=http://www.cs.cmu.edu/afs/cs.cmu.edu/Web/People/ngm/15-823/project/Final.pdf |title=PostgreSQL में GPU-आधारित सॉर्टिंग|author=Naju Mancheril |work=School of Computer Science – Carnegie Mellon University |url-status=live |archive-url=https://www.webcitation.org/60dQHCPfS?url=http://www.cs.cmu.edu/afs/cs.cmu.edu/Web/People/ngm/15-823/project/Final.pdf |archive-date=2 August 2011 |df=dmy-all }}</ref>
* [[कम्प्यूटेशनल तरल सक्रिय]] विशेष रूप [[जाली बोल्ट्ज़मैन विधियाँ]] विधियों का उपयोग करते हुए
* [[कम्प्यूटेशनल तरल सक्रिय]] विशेष रूप [[जाली बोल्ट्ज़मैन विधियाँ|फिल्टर बोल्ट्ज़मैन विधियाँ]] विधियों का उपयोग करते हुए
* [[क्रिप्टोग्राफी]]<ref>Manavski, Svetlin A. "[https://koala.cs.pub.ro/redmine/attachments/download/1745/cuda_aes.pdf CUDA compatible GPU as an efficient hardware accelerator for AES cryptography] {{Webarchive|url=https://web.archive.org/web/20190507205236/https://koala.cs.pub.ro/redmine/attachments/download/1745/cuda_aes.pdf |date=7 May 2019 }}." 2007 IEEE International Conference on Signal Processing and Communications. IEEE, 2007.</ref> और [[क्रिप्ट विश्लेषण]]
* [[क्रिप्टोग्राफी]]<ref>Manavski, Svetlin A. "[https://koala.cs.pub.ro/redmine/attachments/download/1745/cuda_aes.pdf CUDA compatible GPU as an efficient hardware accelerator for AES cryptography] {{Webarchive|url=https://web.archive.org/web/20190507205236/https://koala.cs.pub.ro/redmine/attachments/download/1745/cuda_aes.pdf |date=7 May 2019 }}." 2007 IEEE International Conference on Signal Processing and Communications. IEEE, 2007.</ref> और [[क्रिप्ट विश्लेषण]]
* प्रदर्शन मॉडलिंग: जीपीयू पर कम्प्यूटेशनल रूप से गहन कार्य<संदर्भ नाम = हसन खोंडकर एस. 2014 पीपी. 612-17 />
* प्रदर्शन मॉडलिंग: जीपीयू पर कम्प्यूटेशनल रूप से गहन कार्य<संदर्भ नाम = हसन खोंडकर एस. 2014 पीपी. 612-17 />
** इनका कार्यान्वयन: [[एमडी6]], [[उच्च एन्क्रिप्शन मानक]] (एईएस),<ref>{{Cite book|doi=10.1007/978-3-540-74735-2_15|chapter=AES Encryption Implementation and Analysis on Commodity Graphics Processing Units|title=Cryptographic Hardware and Embedded Systems - CHES 2007|volume=4727|pages=209|series=Lecture Notes in Computer Science|year=2007|last1=Harrison|first1=Owen|last2=Waldron|first2=John|isbn=978-3-540-74734-5|df=dmy-all|citeseerx=10.1.1.149.7643}}</ref><ref>[http://www.usenix.org/events/sec08/tech/harrison.html AES and modes of operations on SM4.0 compliant GPUs.] {{webarchive|url=https://web.archive.org/web/20100821131630/http://www.usenix.org/events/sec08/tech/harrison.html |date=21 August 2010 }} Owen Harrison, John Waldron, Practical Symmetric Key Cryptography on Modern Graphics Hardware. In proceedings of USENIX Security 2008.</ref> [[डेटा एन्क्रिप्शन मानक]] (डीईएस), आरएसए (एल्गोरिदम),<ref>{{Cite book|doi=10.1007/978-3-642-02384-2_22|chapter=Efficient Acceleration of Asymmetric Cryptography on Graphics Hardware|title=Progress in Cryptology – AFRICACRYPT 2009|volume=5580|pages=350|series=Lecture Notes in Computer Science|year=2009|last1=Harrison|first1=Owen|last2=Waldron|first2=John|isbn=978-3-642-02383-5|df=dmy-all|citeseerx=10.1.1.155.5448}}</ref> [[अण्डाकार वक्र क्रिप्टोग्राफी]] (ईसीसी)
** इनका कार्यान्वयन: [[एमडी6]], [[उच्च एन्क्रिप्शन मानक]] (एईएस),<ref>{{Cite book|doi=10.1007/978-3-540-74735-2_15|chapter=AES Encryption Implementation and Analysis on Commodity Graphics Processing Units|title=Cryptographic Hardware and Embedded Systems - CHES 2007|volume=4727|pages=209|series=Lecture Notes in Computer Science|year=2007|last1=Harrison|first1=Owen|last2=Waldron|first2=John|isbn=978-3-540-74734-5|df=dmy-all|citeseerx=10.1.1.149.7643}}</ref><ref>[http://www.usenix.org/events/sec08/tech/harrison.html AES and modes of operations on SM4.0 compliant GPUs.] {{webarchive|url=https://web.archive.org/web/20100821131630/http://www.usenix.org/events/sec08/tech/harrison.html |date=21 August 2010 }} Owen Harrison, John Waldron, Practical Symmetric Key Cryptography on Modern Graphics Hardware. In proceedings of USENIX Security 2008.</ref> [[डेटा एन्क्रिप्शन मानक]] (डीईएस), आरएसए (एल्गोरिदम),<ref>{{Cite book|doi=10.1007/978-3-642-02384-2_22|chapter=Efficient Acceleration of Asymmetric Cryptography on Graphics Hardware|title=Progress in Cryptology – AFRICACRYPT 2009|volume=5580|pages=350|series=Lecture Notes in Computer Science|year=2009|last1=Harrison|first1=Owen|last2=Waldron|first2=John|isbn=978-3-642-02383-5|df=dmy-all|citeseerx=10.1.1.155.5448}}</ref> [[अण्डाकार वक्र क्रिप्टोग्राफी]] (ईसीसी)
** पासवर्ड क्रैक करना<ref name="gtri">{{cite web|url=http://www.gtri.gatech.edu/casestudy/Teraflop-Troubles-Power-Graphics-Processing-Units-GPUs-Password-Security-System|title=Teraflop Troubles: The Power of Graphics Processing Units May Threaten the World's Password Security System|publisher=[[Georgia Tech Research Institute]]|access-date=7 November 2010|url-status=dead|archive-url=https://web.archive.org/web/20101230063449/http://www.gtri.gatech.edu/casestudy/Teraflop-Troubles-Power-Graphics-Processing-Units-GPUs-Password-Security-System|archive-date=30 December 2010|df=dmy-all}}</ref><ref name="msnbc">{{cite news|url=http://www.nbcnews.com/id/38771772|title=Want to deter hackers? Make your password longer|work=[[NBC News]]|date=19 August 2010|access-date=7 November 2010|df=dmy-all}}</ref>
** पासवर्ड क्रैक करना<ref name="gtri">{{cite web|url=http://www.gtri.gatech.edu/casestudy/Teraflop-Troubles-Power-Graphics-Processing-Units-GPUs-Password-Security-System|title=Teraflop Troubles: The Power of Graphics Processing Units May Threaten the World's Password Security System|publisher=[[Georgia Tech Research Institute]]|access-date=7 November 2010|url-status=dead|archive-url=https://web.archive.org/web/20101230063449/http://www.gtri.gatech.edu/casestudy/Teraflop-Troubles-Power-Graphics-Processing-Units-GPUs-Password-Security-System|archive-date=30 December 2010|df=dmy-all}}</ref><ref name="msnbc">{{cite news|url=http://www.nbcnews.com/id/38771772|title=Want to deter hackers? Make your password longer|work=[[NBC News]]|date=19 August 2010|access-date=7 November 2010|df=dmy-all}}</ref>
** [[cryptocurrency]] लेनदेन प्रसंस्करण (खनन) (बिटकॉइन नेटवर्क#खनन)
** [[cryptocurrency|क्रिप्टोकोर्रेंसी]] लेनदेन प्रसंस्करण (खनन) (बिटकॉइन नेटवर्क#खनन)
[[इलेक्ट्रॉनिक डिज़ाइन स्वचालन]] स्वचालन<ref>{{Cite news
[[इलेक्ट्रॉनिक डिज़ाइन स्वचालन]] स्वचालन<ref>{{Cite news
|url=http://www.eetimes.com/news/design/showArticle.jhtml?articleID=216500149
|url=http://www.eetimes.com/news/design/showArticle.jhtml?articleID=216500149
Line 284: Line 287:
  |df          = dmy-all
  |df          = dmy-all
}}</ref>
}}</ref>
* [[घुसपैठ का पता लगाना]]<ref>[http://www.ics.forth.gr/dcs/Activities/papers/gnort.raid08.pdf Gnort: High Performance Network Intrusion Detection Using Graphics Processors] {{webarchive|url=https://web.archive.org/web/20110409103931/http://www.ics.forth.gr/dcs/Activities/papers/gnort.raid08.pdf |date=9 April 2011 }}. Giorgos Vasiliadis et al., Gnort: High Performance Network Intrusion Detection Using Graphics Processors. In proceedings of RAID 2008.</ref><ref>[http://www.ics.forth.gr/dcs/Activities/papers/gnort-regexp.raid09.pdf Regular Expression Matching on Graphics Hardware for Intrusion Detection] {{webarchive|url=https://web.archive.org/web/20100727201749/http://www.ics.forth.gr/dcs/Activities/papers/gnort-regexp.raid09.pdf |date=27 July 2010 }}. Giorgos Vasiliadis et al., Regular Expression Matching on Graphics Hardware for Intrusion Detection. In proceedings of RAID 2009.</ref>
* [[घुसपैठ का पता लगाना|अतिक्रमण पता चलना]]<ref>[http://www.ics.forth.gr/dcs/Activities/papers/gnort.raid08.pdf Gnort: High Performance Network Intrusion Detection Using Graphics Processors] {{webarchive|url=https://web.archive.org/web/20110409103931/http://www.ics.forth.gr/dcs/Activities/papers/gnort.raid08.pdf |date=9 April 2011 }}. Giorgos Vasiliadis et al., Gnort: High Performance Network Intrusion Detection Using Graphics Processors. In proceedings of RAID 2008.</ref><ref>[http://www.ics.forth.gr/dcs/Activities/papers/gnort-regexp.raid09.pdf Regular Expression Matching on Graphics Hardware for Intrusion Detection] {{webarchive|url=https://web.archive.org/web/20100727201749/http://www.ics.forth.gr/dcs/Activities/papers/gnort-regexp.raid09.pdf |date=27 July 2010 }}. Giorgos Vasiliadis et al., Regular Expression Matching on Graphics Hardware for Intrusion Detection. In proceedings of RAID 2009.</ref>
* SETI@home, Einstein@home जैसी वितरित कंप्यूटिंग परियोजनाओं के लिए कंप्यूटिंग शक्ति बढ़ाएँ
* समुच्चयी@होम, आइंस्टीन@होम जैसी वितरित कंप्यूटिंग परियोजनाओं के लिए कंप्यूटिंग शक्ति बढ़ाएँ


===जैव सूचना विज्ञान===
===जैव सूचना विज्ञान===
जैव सूचना विज्ञान में जीपीजीपीयू का उपयोग:<ref name="nvidia.com">{{Cite web |title=जीपीयू-त्वरित अनुप्रयोग|url=http://www.nvidia.com/docs/IO/123576/nv-applications-catalog-lowres.pdf |url-status=live |archive-url=https://web.archive.org/web/20130325031816/http://www.nvidia.com/docs/IO/123576/nv-applications-catalog-lowres.pdf |archive-date=25 March 2013 |access-date=2013-09-12 |df=dmy-all}}</ref>
जैव सूचना विज्ञान में जीपीजीपीयू का उपयोग:<ref name="nvidia.com">{{Cite web |title=जीपीयू-त्वरित अनुप्रयोग|url=http://www.nvidia.com/docs/IO/123576/nv-applications-catalog-lowres.pdf |url-status=live |archive-url=https://web.archive.org/web/20130325031816/http://www.nvidia.com/docs/IO/123576/nv-applications-catalog-lowres.pdf |archive-date=25 March 2013 |access-date=2013-09-12 |df=dmy-all}}</ref>
{| class="wikitable"
{| class="wikitable"
! आवेदन
! एप्लीकेशन
! विवरण
! विवरण
! समर्थित सुविधाएँ
! समर्थित सुविधाएँ
Line 300: Line 303:
| बाराकुडा||डीएनए, एपिजेनेटिक्स, अनुक्रम मानचित्रण सॉफ्टवेयर सहित||लघु अनुक्रमण का संरेखण पढ़ता है||6–10x||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 2.0.8
| बाराकुडा||डीएनए, एपिजेनेटिक्स, अनुक्रम मानचित्रण सॉफ्टवेयर सहित||लघु अनुक्रमण का संरेखण पढ़ता है||6–10x||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 2.0.8
|-
|-
| CUDASW++||जीपीयू पर स्मिथ-वाटरमैन प्रोटीन डेटाबेस अविष्कार के लिए ओपन सोर्स सॉफ्टवेयर||स्मिथ-वाटरमैन डेटाबेस की समानांतर खोज||10–50x||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 2.0.8
| CUDASW++||जीपीयू पर स्मिथ-वाटरमैन प्रोटीन डेटाबेस अविष्कार के लिए ओपन सोर्स सॉफ्टवेयर||स्मिथ-वाटरमैन डेटाबेस की समानांतर सर्च||10–50x||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 2.0.8
|-
|-
| CUSHAW||समानांतर लघु पठन संरेखक||समानांतर, सटीक लंबे समय तक पढ़ा जाने वाला संरेखक – बड़े जीनोम के लिए गैप संरेखण||10x||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 1.0.40
| CUSHAW||समानांतर लघु पठन संरेखक||समानांतर, स्पष्ट लंबे समय तक पढ़ा जाने वाला संरेखक – बड़े जीनोम के लिए गैप संरेखण||10x||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 1.0.40
|-
|-
| GPU-BLAST||तेज़ के-ट्यूपल अनुमानी के साथ स्थानीय खोज||ब्लास्टपी, मल्टी सीपीयू थ्रेड्स के अनुसार प्रोटीन संरेखण||3–4x||T 2075, 2090, K10, K20, K20X||{{No|Single only}}||अब उपलब्ध है, संस्करण 2.2.26
| GPU-BLAST||तेज़ के-ट्यूपल अनुमानी के साथ स्थानीय सर्च||ब्लास्टपी, मल्टी सीपीयू थ्रेड्स के अनुसार प्रोटीन संरेखण||3–4x||T 2075, 2090, K10, K20, K20X||{{No|Single only}}||अब उपलब्ध है, संस्करण 2.2.26
|-
|-
| GPU-HMMER||प्रोफ़ाइल में छिपे मार्कोव मॉडल के साथ समानांतर स्थानीय और वैश्विक खोज||छिपे हुए मार्कोव मॉडल की समानांतर स्थानीय और वैश्विक खोज||60–100x||T 2075, 2090, K10, K20, K20X|| {{Yes}} ||अब उपलब्ध है, संस्करण 2.3.2
| GPU-HMMER||प्रोफ़ाइल में छिपे मार्कोव मॉडल के साथ समानांतर स्थानीय और वैश्विक सर्च||छिपे हुए मार्कोव मॉडल की समानांतर स्थानीय और वैश्विक सर्च||60–100x||T 2075, 2090, K10, K20, K20X|| {{Yes}} ||अब उपलब्ध है, संस्करण 2.3.2
|-
|-
| mCUDA-MEME||MEME पर आधारित अल्ट्राफास्ट स्केलेबल मोटिफ डिस्कवरी एल्गोरिदम ||MEME पर आधारित स्केलेबल मोटिफ डिस्कवरी एल्गोरिदम||4–10x||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 3.0.12
| mCUDA-MEME||MEME पर आधारित अल्ट्राफास्ट स्केलेबल मोटिफ डिस्कवरी एल्गोरिदम ||MEME पर आधारित स्केलेबल मोटिफ डिस्कवरी एल्गोरिदम||4–10x||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 3.0.12
|-
|-
| SeqNFind||जीपीयू त्वरित अनुक्रम विश्लेषण टूलसेट||रेफरेंस असेंबली, ब्लास्ट, स्मिथ-वाटरमैन, हम्म, डे नोवो असेंबली||400x||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है
| SeqNFind||जीपीयू त्वरित अनुक्रम विश्लेषण टूलसमुच्चय||रेफरेंस असेंबली, ब्लास्ट, स्मिथ-वाटरमैन, हम्म, डे नोवो असेंबली||400x||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है
|-
|-
| यूजीन||एसएसई/सीयूडीए के लिए ओपनसोर्स स्मिथ-वॉटरमैन, प्रत्यय सरणी आधारित रिपीट फाइंडर और डॉटप्लॉट||एसएसई/सीयूडीए के लिए ओपनसोर्स स्मिथ-वॉटरमैन, प्रत्यय सरणी आधारित रिपीट फाइंडर और डॉटप्लॉट||6–8x||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 0.1-1
| यूजीन||एसएसई/सीयूडीए के लिए ओपनसोर्स स्मिथ-वॉटरमैन, प्रत्यय सरणी आधारित रिपीट फाइंडर और डॉटप्लॉट||एसएसई/सीयूडीए के लिए ओपनसोर्स स्मिथ-वॉटरमैन, प्रत्यय सरणी आधारित रिपीट फाइंडर और डॉटप्लॉट||6–8x||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 0.1-1
Line 321: Line 324:
{{further|जीपीयू पर आणविक मॉडलिंग|आणविक यांत्रिकी मॉडलिंग के लिए सॉफ्टवेयर की तुलना}}
{{further|जीपीयू पर आणविक मॉडलिंग|आणविक यांत्रिकी मॉडलिंग के लिए सॉफ्टवेयर की तुलना}}
{| class="wikitable"
{| class="wikitable"
! आवेदन
! एप्लीकेशन
! विवरण
! विवरण
! समर्थित सुविधाएँ
! समर्थित सुविधाएँ
Line 331: Line 334:
| [[Abalone (molecular mechanics)|ऐबालोन]]||प्रोटीन, डीएनए और लिगेंड्स के सिमुलेशन के लिए बायोपॉलिमर की आणविक गतिशीलता के मॉडल||स्पष्ट और अंतर्निहित विलायक, संकर मोंटे कार्लो||4–120x||T 2075, 2090, K10, K20, K20X||{{No|Single only}}||अब उपलब्ध है, संस्करण 1.8.88
| [[Abalone (molecular mechanics)|ऐबालोन]]||प्रोटीन, डीएनए और लिगेंड्स के सिमुलेशन के लिए बायोपॉलिमर की आणविक गतिशीलता के मॉडल||स्पष्ट और अंतर्निहित विलायक, संकर मोंटे कार्लो||4–120x||T 2075, 2090, K10, K20, K20X||{{No|Single only}}||अब उपलब्ध है, संस्करण 1.8.88
|-
|-
| एसीईएमडी||आणविक यांत्रिकी बल क्षेत्रों, अंतर्निहित और स्पष्ट विलायक का जीपीयू सिमुलेशन ||जीपीयू पर उपयोग के लिए लिखा गया||केवल 160 एनएस/दिन जीपीयू संस्करण
| एसीईएमडी||आणविक यांत्रिकी बल फील्डों, अंतर्निहित और स्पष्ट विलायक का जीपीयू सिमुलेशन ||जीपीयू पर उपयोग के लिए लिखा गया||केवल 160 एनएस/दिन जीपीयू संस्करण
|T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है
|T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है
|-
|-
| एम्बर||बायोमोलेक्यूल पर आणविक गतिशीलता का अनुकरण करने के लिए कार्यक्रमों का सुइट||पीएमईएमडी: स्पष्ट और अंतर्निहित विलायक||89.44 एनएस/दिन जेएसी एनवीई
| एम्बर||बायोमोलेक्यूल पर आणविक गतिशीलता का अनुकरण करने के लिए फंक्शनों का सुइट||पीएमईएमडी: स्पष्ट और अंतर्निहित विलायक||89.44 एनएस/दिन जेएसी एनवीई
|T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 12 बगफिक्स9
|T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 12 बगफिक्स9
|-
|-
Line 341: Line 344:
| [[CHARMM|आकर्षण]]||बायोमोलेक्यूल पर आणविक गतिशीलता का अनुकरण करने के लिए एमडी पैकेज।||ओपनएमएम के माध्यम से निहित (5x), स्पष्ट (2x) विलायक
| [[CHARMM|आकर्षण]]||बायोमोलेक्यूल पर आणविक गतिशीलता का अनुकरण करने के लिए एमडी पैकेज।||ओपनएमएम के माध्यम से निहित (5x), स्पष्ट (2x) विलायक
|टीबीडी
|टीबीडी
|T 2075, 2090, K10, K20, K20X ||{{Yes}}||विकास में Q4/12
|T 2075, 2090, K10, K20, K20X ||{{Yes}}||डेवलपमेंट में Q4/12
|-
|-
| [[GROMACS]]||जटिल बंधन अंतःक्रियाओं के साथ जैव रासायनिक अणुओं का अनुकरण करें||निहित (5x), स्पष्ट (2x) विलायक||165 एनएस/दिन डीएचएफआर
| [[GROMACS]]||जटिल बंधन अंतःक्रियाओं के साथ जैव रासायनिक अणुओं का अनुकरण करें||निहित (5x), स्पष्ट (2x) विलायक||165 एनएस/दिन डीएचएफआर
Line 348: Line 351:
| HOOMD-नीला||निहित (5x), स्पष्ट (2x) विलायक||जीपीयू के लिए लिखा गया ||2x ||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है
| HOOMD-नीला||निहित (5x), स्पष्ट (2x) विलायक||जीपीयू के लिए लिखा गया ||2x ||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है
|-
|-
| [[LAMMPS|लैंप]]||शास्त्रीय आणविक गतिशीलता पैकेज ||लेनार्ड-जोन्स, मोर्स, बकिंघम, चार्म, सारणीबद्ध, पाठ्यक्रम अनाज एसडीके, अनिसोट्रोपिक गे-बर्न, आरई-स्क्वायर, "हाइब्रिड" संयोजन||3–18x||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है
| [[LAMMPS|लैंप]]||वाॅम आणविक गतिशीलता पैकेज ||लेनार्ड-जोन्स, मोर्स, बकिंघम, चार्म, सारणीबद्ध, पाठ्यक्रम अनाज एसडीके, अनिसोट्रोपिक गे-बर्न, आरई-स्क्वायर, "हाइब्रिड" संयोजन||3–18x||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है
|-
|-
| [[NAMD]]||बड़े आणविक प्रणालियों के उच्च-प्रदर्शन सिमुलेशन के लिए डिज़ाइन किया गया||100M परमाणु सक्षम||6.44 एनएस/दिन एसटीएमवी 585x 2050एस||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 2.9
| [[NAMD]]||बड़े आणविक प्रणालियों के उच्च-प्रदर्शन सिमुलेशन के लिए डिज़ाइन किया गया||100M परमाणु सक्षम||6.44 एनएस/दिन एसटीएमवी 585x 2050एस||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 2.9
Line 355: Line 358:
|जीपीयू के साथ एचपीसी के लिए आणविक गतिशीलता के लिए पुस्तकालय और अनुप्रयोग||निहित और स्पष्ट विलायक, कस्टम बल||निहित: 127-213 एनएस/दिन; स्पष्ट: 18-55 एनएस/दिन डीएचएफआर||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 4.1.1
|जीपीयू के साथ एचपीसी के लिए आणविक गतिशीलता के लिए पुस्तकालय और अनुप्रयोग||निहित और स्पष्ट विलायक, कस्टम बल||निहित: 127-213 एनएस/दिन; स्पष्ट: 18-55 एनएस/दिन डीएचएफआर||T 2075, 2090, K10, K20, K20X||{{Yes}}||अब उपलब्ध है, संस्करण 4.1.1
|}
|}
† प्रत्याशित गति बढ़ाव सिस्टम कॉन्फ़िगरेशन पर अत्यधिक निर्भर रखते हैं। जीपीयू प्रदर्शन, मल्टी-कोर x86 सीपीयू सॉकेट के खिलाफ समानता की गई है। जीपीयू प्रदर्शन को जीपीयू समर्थित सुविधाओं पर बेंचमार्क किया गया है और कर्नेल प्रदर्शन समानता के लिए [[कर्नेल (छवि प्रसंस्करण)]] हो सकता है। इसके लिए उपयोग किए गए कॉन्फ़िगरेशन के विवरण के लिए, अनुप्रयोग वेबसाइट को देखें। स्पीडअप्स न्विडिया की इनहाउस टेस्टिंग या ISV के डाक्यूमेंटेशन के अनुसार हैं।
† प्रत्याशित गति बढ़ाव सिस्टम कॉन्फ़िगरेशन पर अत्यधिक निर्भर रखते हैं। जीपीयू प्रदर्शन, मल्टी-कोर x86 सीपीयू सॉकेट के विरूद्व- समानता की गई है। जीपीयू प्रदर्शन को जीपीयू समर्थित सुविधाओं पर बेंचमार्क किया गया है और कर्नेल प्रदर्शन समानता के लिए [[कर्नेल (छवि प्रसंस्करण)]] हो सकता है। इसके लिए उपयोग किए गए कॉन्फ़िगरेशन के विवरण के लिए, अनुप्रयोग वेबसाइट को देखें। स्पीडअप्स न्विडिया की इनहाउस टेस्टिंग या आईएसवी के डाक्यूमेंटेशन के अनुसार हैं।


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


==यह भी देखें==
==यह भी देखें==
Line 375: Line 378:
{{DEFAULTSORT:Gpgpu}}
{{DEFAULTSORT:Gpgpu}}


[[Category:All articles with dead external links]]
[[Category:All Wikipedia articles needing clarification|Gpgpu]]
[[Category:All accuracy disputes|Gpgpu]]
[[Category:All articles containing potentially dated statements|Gpgpu]]
[[Category:All articles with dead external links|Gpgpu]]
[[Category:All articles with unsourced statements|Gpgpu]]
[[Category:All articles with unsourced statements|Gpgpu]]
[[Category:Articles with dead external links from April 2018]]
[[Category:Articles containing potentially dated statements from 2016|Gpgpu]]
[[Category:Articles with dead external links from July 2022]]
[[Category:Articles with dead external links from April 2018|Gpgpu]]
[[Category:Articles with dead external links from July 2022|Gpgpu]]
[[Category:Articles with disputed statements from February 2017|Gpgpu]]
[[Category:Articles with hatnote templates targeting a nonexistent page|Gpgpu]]
[[Category:Articles with hatnote templates targeting a nonexistent page|Gpgpu]]
[[Category:Articles with invalid date parameter in template|Gpgpu]]
[[Category:Articles with invalid date parameter in template|Gpgpu]]
[[Category:Articles with permanently dead external links]]
[[Category:Articles with permanently dead external links|Gpgpu]]
[[Category:Articles with unsourced statements from May 2019|Gpgpu]]
[[Category:Articles with unsourced statements from May 2019|Gpgpu]]
[[Category:CS1 English-language sources (en)]]
[[Category:Collapse templates|Gpgpu]]
[[Category:Collapse templates|Gpgpu]]
[[Category:Created On 27/07/2023|Gpgpu]]
[[Category:Created On 27/07/2023|Gpgpu]]
[[Category:Lua-based templates|Gpgpu]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists|Gpgpu]]
[[Category:Pages with script errors|Gpgpu]]
[[Category:Short description with empty Wikidata description|Gpgpu]]
[[Category:Sidebars with styles needing conversion|Gpgpu]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready|Gpgpu]]
[[Category:Templates generating microformats|Gpgpu]]
[[Category:Templates that add a tracking category|Gpgpu]]
[[Category:Templates that are not mobile friendly|Gpgpu]]
[[Category:Templates that generate short descriptions|Gpgpu]]
[[Category:Templates using TemplateData|Gpgpu]]
[[Category:Webarchive template wayback links]]
[[Category:Wikipedia articles needing clarification from March 2008|Gpgpu]]
[[Category:Wikipedia metatemplates|Gpgpu]]

Latest revision as of 15:27, 10 August 2023

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

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

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

इतिहास

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

ग्राफिक्स प्रोसेसर पर प्रोग्रामेबल शेडर्स और फ्लोटिंग पॉइंट अविष्कार सपोर्ट दोनों के आगमन के साथ, 2001 के बाद जीपीयू पर सामान्य प्रयोजन कंप्यूटिंग अधिक व्यावहारिक और लोकप्रिय हो गई। विशेष रूप से, आव्यूह (गणित)या सदिश (गणित और भौतिकी) से जुड़ी समस्याएं – विशेष रूप से दो-, तीन-, या चार-आयामी सदिश  – को जीपीयू में अनुवाद करना आसान था, जो उन प्रकारों पर मूल गति और समर्थन के साथ कार्य करता है। जीपीजीपीयू के लिए महत्वपूर्ण मील का पत्थर वर्ष 2003 था जब दो अनुसंधान समुच्चयों ने स्वतंत्र रूप से जीपीयू पर सामान्य रैखिक बीजगणित समस्याओं के समाधान के लिए जीपीयू-आधारित दृष्टिकोण की अविष्कार की जो सीपीयू की समानता में तेजी से चलते थे।[7][8] जीपीयू को सामान्य प्रयोजन प्रोसेसर के रूप में उपयोग करने के इन प्रारंभिक प्रयासों के लिए ग्राफिक्स प्राइमेटिव के संदर्भ में कम्प्यूटेशनल समस्याओं को सुधारने की आवश्यकता थी, जैसा कि ग्राफिक्स प्रोसेसर, ओपनजीएल और डायरेक्टएक्स के लिए दो प्रमुख एपीआई द्वारा समर्थित है। इस बोझिल अनुवाद को सामान्य प्रयोजन प्रोग्रामिंग लैंग्वेज और एपीआई जैसे लिब श/रैपिडमाइंड, ब्रुकजीपीयू और एक्सेलेरेटर के आगमन से रोका गया था।[9][10][11]

इसके बाद एनवीडिया का CUDA ने आने वाले प्रोग्रामर्स को उच्च प्रदर्शन गणना संबंधी सामान्य अधिक संपर्कित ग्राफिकल अवधारणाओं को नज़रअंदाज़ करके अन्य सामान्य उच्च प्रदर्शन गणना अवधारणाओं का उपयोग करने की अनुमति दी।[12] नई, हार्डवेयर विक्रेता-स्वतंत्र प्रस्तुतिों में माइक्रोसॉफ्ट के डायरेक्टकंप्यूट अविष्कार और एप्पल/ख्रोनॉस ग्रुप का ओपनसीएल सम्मिलित हैं।[12] सका मतलब है कि आधुनिक जीपीयू पाइपलाइन्स ग्राफिकल रूप में डेटा का पूरा और स्पष्ट रूप से परिवर्तन न करके जीपीयू की गति का लाभ उठा सकते हैं।

GPGPU.org के संस्थापक मार्क हैरिस ने जीपीयू शब्द गढ़ा।

कार्यान्वयन

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

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

प्रमुख स्वामित्व ढांचा एनवीडिया सीयूडीए है।[13] एनवीडिया ने 2006 में CUDA, सॉफ्टवेयर डेवलपमेंट किट (एसडीके) और अप्लिकेशन प्रोग्रामिंग अंतरफलक (एपीआई) लॉन्च किया, जो जीफोर्स 8 श्रृंखला और बाद के जीपीयू पर निष्पादन के लिए एल्गोरिदम को कोड करने के लिए प्रोग्रामिंग लैंग्वेज सी (प्रोग्रामिंग लैंग्वेज ) का उपयोग करने की अनुमति देता है।

आरओसीएम (ROCm), 2016 में लॉन्च किया गया, एएमडी का CUDA के प्रतिक्रिया स्वतंत्र स्रोत है। 2022 तक यह CUDA के साथ सुविधाओं के संबंध में सामान्तर है, लेकिन उपभोक्ता समर्थन में अभी भी कमी है।

निविडिया के सहयोग से, ओपनीविडिया (OpenVIDIA) का विकास 2003 से 2005 के बीच टोरंटो विश्वविद्यालय में हुआ था।[14]

अल्टिमेश हाइब्रिडाइज़र (Altimesh Hybridizer) जो कि अल्टीमेश द्वारा बनाया गया है, कॉमन इंटरमीडिएट भाषा को CUDA बाइनरी में कंपाइल करता है।[15][16] इसमें जेनेरिक्स और वर्चुअल फंक्शन्स का समर्थन है।[17]डिबगिंग और प्रोफाइलिंग विजुअल स्टूडियो और एनसाइट के साथ एकीकृत है।[18] यह विजुअल स्टूडियो मार्केटप्लेस पर विजुअल स्टूडियो एक्सटेंशन के रूप में उपलब्ध है।

माइक्रोसॉफ्ट ने डायरेक्टकंप्यूट जीपीयू कंप्यूटिंग एपीआई प्रस्तुत किया, जिसे डायरेक्टएक्स 11 एपीआई के साथ जारी किया गया था।

Alea GPU,[19] जो कि क्वांटअलिया द्वारा बनाया गया है, माइक्रोसॉफ्ट .नेट भाषाओं F# और C# के लिए नेटिव जीपीयू कंप्यूटिंग क्षमता का परिचय करता है[20] अलिया जीपीयू भी जीपीयू पैरलल-फॉर और पैरलल एग्रीगेट के लिए सरलीकृत जीपीयू प्रोग्रामिंग मॉडल प्रदान करता है जिसमें डिलीगेट्स और स्वचालित मेमोरी मैनेजमेंट का उपयोग होता है। [21]

एलिया जीपीयू प्रतिनिधियों और स्वचालित मेमोरी प्रबंधन का उपयोग करके जीपीयू समानांतर-के लिए और समानांतर समुच्चय पर आधारित सरलीकृत जीपीयू प्रोग्रामिंग मॉडल भी प्रदान करता है।[22]

मैटलैब GPGPU त्वरण का समर्थन करता है जिसके लिए पैरलल कंप्यूटिंग टूलबॉक्स और मैटलैब वितरित कंप्यूटिंग सर्वर का उपयोग किया जाता है,[23] और जैकेट जैसे तृतीय-पक्ष पैकेज भी उपलब्ध हैं।

जीपीजीपीयू प्रसंस्करण का उपयोग भौतिकी इंजनों द्वारा न्यूटोनियन भौतिकी का अनुकरण करने के लिए भी किया जाता है,[24] और वाणिज्यिक अमलाएँ हैं ह्वॉक फिजिक्स , फक्स , और फिक्स जो सामान्यतः कंप्यूटर और वीडियो गेम्स के लिए उपयोग किए जाते हैं।

C++ एक्सेलेरेटेड मैसिव पैरेललिज्म (C++ AMP) पुस्तकालय है जो C++ कोड के निष्प्रयोजन संवेदनशील हार्डवेयर के उपयोग से C++ कोड का तत्वाधिकारी अभिवृद्धि करता है।

मोबाइल कंप्यूटर

मोबाइल जीपीयू की बढ़ती शक्ति की प्रवृत्ति के कारण, सामान्य प्रयोजन प्रोग्रामिंग प्रमुख मोबाइल ऑपरेटिंग सिस्टम चलाने वाले मोबाइल उपकरणों पर भी उपलब्ध हो गई है।

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

हार्डवेयर समर्थन

कंप्यूटर वीडियो कार्ड जैसे कि एनवीडिया, एएमडी जैसे विभिन्न विक्रेताओं द्वारा निर्मित किए जाते हैं। इन विक्रेताओं के कार्ड में डाटा-फॉर्मेट समर्थन को क्रियान्वित करने में अंतर होता है, जैसे कि पूर्णांक और फ्लोटिंग-पॉइंट फॉर्मेट (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 अनुरूप हैं; चूंकि, यह सभी विक्रेताओं पर सच नहीं है।[26] इसके प्राभाव प्रमुख वैज्ञानिक अनुप्रयोगों के लिए महत्वपूर्ण माने जाते हैं। जबकि 64-बिट फ्लोटिंग पॉइंट मान (डबल प्रेसिजन फ्लोट) सीपीयू पर सामान्य रूप से उपलब्ध होते हैं, वे जीपीयू पर सर्वाधिक समर्थित नहीं होते। कुछ जीपीयू विरासत नहीं वाली वस्तुएँ करते हैं, जबकि अन्यों को डबल प्रेसिजन फ्लोटिंग पॉइंट की कमी होती है। जीपीयू पर डबल प्रेसिजन फ्लोटिंग पॉइंट मानों को नकलीकृत करने के लिए प्रयास हुए हैं; चूंकि, इसमें हुई गति का संवाद जीपीयू पर कंप्यूटिंग को प्राथमिकता देने के लाभ को समाप्त कर देता है।[27]

सदिशीकरण

जीपीयू पर अधिकांश ऑपरेशन सदिशीकृत ढंग से काम करते हैं: ऑपरेशन साथ चार मानों पर किया जा सकता है। उदाहरण के लिए, यदि रंग ⟨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 अंतिम-स्तर कैश है,[28] मैक्सवेल (माइक्रोआर्किटेक्चर) जीपीयू में 2 MiB अंतिम-स्तर कैश है, और पास्कल (माइक्रोआर्किटेक्चर) जीपीयू में 4 MiB अंतिम-स्तर कैश है।

फ़ाइल पंजीकृत करें

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

ऊर्जा दक्षता

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

स्ट्रीम प्रोसेसिंग

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

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

जीपीयू केवल स्वतंत्र वर्टेक्स और फ्रेगमेंट्स को प्रोसेस कर सकते हैं, लेकिन उन्हें परालल ढंग से कई तत्वों का प्रोसेस कर सकते हैं। यह खासतौर पर उपयुक्त होता है जब प्रोग्रामर बहुत सारे वर्टेक्स या फ्रेगमेंट्स को ही तरीके से प्रोसेस करना चाहता है। इस मायने में, जीपीयू स्ट्रीम प्रोसेसर्स हैं - प्रोसेसर्स जो बार में स्ट्रीम में बहुत सारे रेकर्ड्स पर कर्नल को चला कर पारलेल में काम कर सकते हैं।

स्ट्रीम सामान्य रूप से समुच्चय होती है जिसमें समान गणना की आवश्यकता होती है। स्ट्रीम्स डेटा पैरालेलिज़म प्रदान करते हैं। कर्नेल की गणना करें वे फ़ंक्शंस होते हैं जिन्हें प्रत्येक स्ट्रीम में प्रत्येक तत्व पर क्रियान्वित किया जाता है। जीपीयू में, वर्टेक्स और फ्रेगमेंट्स स्ट्रीम में तत्व होते हैं और वर्टेक्स और फ्रेगमेंट शेडर्स उन पर चलाए जाने वाले कर्नल्स होते हैं।[dubious ] प्रत्येक तत्व के लिए, हम केवल इनपुट से पढ़ सकते हैं, इस पर कार्यवाही कर सकते हैं, और आउटपुट में लिख सकते हैं। एकाधिक इनपुट और एकाधिक आउटपुट रखने की अनुमति है, किन्तु मेमोरी का टुकड़ा कभी भी पढ़ने योग्य और लिखने योग्य नहीं होता है।[vague]

अंकगणितिक घनत्व को मेमोरी संचयित करने के लिए प्रदर्शित ओपरेशनों की संख्या के रूप में परिभाषित किया जाता है। जीपीयू अनुप्रयोगों के लिए उच्च अंकगणितिक घनत्व महत्वपूर्ण होता है अन्यथा मेमोरी एक्सेस लेटेंसी गणना की गति को सीमित कर देगी।[34]

आदर्श जीपीयू अनुप्रयोगों में बड़े डेटा समुच्चय, उच्च पैराललिस्म, और डेटा तत्वों के बीच न्यूनता होती है।

जीपीयू प्रोग्रामिंग अवधारणाएं

कम्प्यूटेशनल संसाधन

जीपीयू पर विभिन्न प्रकार के गणनात्मक संसाधन होते हैं:

  • प्रोग्राम करने योग्य प्रोसेसर - वर्टेक्स, प्रिमिटिव, फ्रैगमेंट और मुख्य रूप से कंप्यूट पाइपलाइन, जो प्रोग्रामर को डेटा स्ट्रीम पर कर्नल चलाने की अनुमति देते हैं।
  • रैस्टराइज़र - फ्रैगमेंट्स बनाता है और पर-वर्टेक्स स्थिरांक जैसे टेक्स्चर संयोजनों और रंग को इंटरपोलेट करता है।
  • बनावट इकाई - केवल पढ़ने योग्य मेमोरी इंटरफ़ेस
  • फ़्रेमबफ़र - केवल-लिखने योग्य मेमोरी इंटरफ़ेस

वास्तव में, प्रोग्राम फ्रेमबफर के अतिरिक्त आउटपुट के लिए लिखने योग्य टेक्स्चर का प्रयोग कर सकता है। इसे या तो टेक्स्चर में रेंडर करने (RTT), बैकबफर को टेक्स्चर में कॉपी करने और उसे बैकबफर से बाप्रत्येक आने के लिए उपयोग करने (RTBCTT), या नवीनतम स्ट्रीम-आउट के माध्यम से किया जा सकता है।

प्रवाह जैसी बनावट

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

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

कर्नल

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

 
// Input and output grids have 10000 x 10000 or 100 million elements.
 
void transform_10k_by_10k_grid(float in[10000][10000], float out[10000][10000])
{
    for (int x = 0; x < 10000; x++) {
        for (int y = 0; y < 10000; y++) {
            // The next line is executed 100 million times
            out[x][y] = do_some_hard_work(in[x][y]);
        }
    }
}

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

प्रवाह नियंत्रण

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

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

जीपीयू विधियां

मानचित्र

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

कम करें

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

स्ट्रीम फ़िल्टरिंग

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

स्कैन

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

बिखेरना

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

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

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

इकट्ठा करें

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

वर्गीकरण

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

सर्च

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

डेटा संरचनाएं

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

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

अनुप्रयोग

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

"जीपीयू के साथ कम्प्यूटेशनल भौतिकी: लुंड वेधशाला". www.astro.lu.se. Archived from the original on 12 July 2010.

  • जैव सूचना विज्ञान

Schatz, Michael C; Trapnell, Cole; Delcher, Arthur L; Varshney, Amitabh (2007). "ग्राफ़िक्स प्रोसेसिंग इकाइयों का उपयोग करके उच्च-थ्रूपुट अनुक्रम संरेखण". BMC Bioinformatics. 8: 474. doi:10.1186/1471-2105-8-474. PMC 2222658. PMID 18070356.[57]

इलेक्ट्रॉनिक डिज़ाइन स्वचालन स्वचालन[72][73]

जैव सूचना विज्ञान

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

एप्लीकेशन विवरण समर्थित सुविधाएँ अपेक्षित गति† GPU‡ मल्टी-जीपीयू समर्थन रिलीज़ स्थिति
बाराकुडा डीएनए, एपिजेनेटिक्स, अनुक्रम मानचित्रण सॉफ्टवेयर सहित लघु अनुक्रमण का संरेखण पढ़ता है 6–10x T 2075, 2090, K10, K20, K20X Yes अब उपलब्ध है, संस्करण 2.0.8
CUDASW++ जीपीयू पर स्मिथ-वाटरमैन प्रोटीन डेटाबेस अविष्कार के लिए ओपन सोर्स सॉफ्टवेयर स्मिथ-वाटरमैन डेटाबेस की समानांतर सर्च 10–50x T 2075, 2090, K10, K20, K20X Yes अब उपलब्ध है, संस्करण 2.0.8
CUSHAW समानांतर लघु पठन संरेखक समानांतर, स्पष्ट लंबे समय तक पढ़ा जाने वाला संरेखक – बड़े जीनोम के लिए गैप संरेखण 10x T 2075, 2090, K10, K20, K20X Yes अब उपलब्ध है, संस्करण 1.0.40
GPU-BLAST तेज़ के-ट्यूपल अनुमानी के साथ स्थानीय सर्च ब्लास्टपी, मल्टी सीपीयू थ्रेड्स के अनुसार प्रोटीन संरेखण 3–4x T 2075, 2090, K10, K20, K20X Single only अब उपलब्ध है, संस्करण 2.2.26
GPU-HMMER प्रोफ़ाइल में छिपे मार्कोव मॉडल के साथ समानांतर स्थानीय और वैश्विक सर्च छिपे हुए मार्कोव मॉडल की समानांतर स्थानीय और वैश्विक सर्च 60–100x T 2075, 2090, K10, K20, K20X Yes अब उपलब्ध है, संस्करण 2.3.2
mCUDA-MEME MEME पर आधारित अल्ट्राफास्ट स्केलेबल मोटिफ डिस्कवरी एल्गोरिदम MEME पर आधारित स्केलेबल मोटिफ डिस्कवरी एल्गोरिदम 4–10x T 2075, 2090, K10, K20, K20X Yes अब उपलब्ध है, संस्करण 3.0.12
SeqNFind जीपीयू त्वरित अनुक्रम विश्लेषण टूलसमुच्चय रेफरेंस असेंबली, ब्लास्ट, स्मिथ-वाटरमैन, हम्म, डे नोवो असेंबली 400x T 2075, 2090, K10, K20, K20X Yes अब उपलब्ध है
यूजीन एसएसई/सीयूडीए के लिए ओपनसोर्स स्मिथ-वॉटरमैन, प्रत्यय सरणी आधारित रिपीट फाइंडर और डॉटप्लॉट एसएसई/सीयूडीए के लिए ओपनसोर्स स्मिथ-वॉटरमैन, प्रत्यय सरणी आधारित रिपीट फाइंडर और डॉटप्लॉट 6–8x T 2075, 2090, K10, K20, K20X Yes अब उपलब्ध है, संस्करण 0.1-1
वाइडएलएम निश्चित डिज़ाइन और प्रतिक्रिया के लिए कई रैखिक मॉडल फिट बैठता है निश्चित डिज़ाइन और प्रतिक्रिया के लिए कई रैखिक मॉडल फिट बैठता है 150x T 2075, 2090, K10, K20, K20X Yes अब उपलब्ध है, संस्करण 0.1-1

आण्विक गतिशीलता

एप्लीकेशन विवरण समर्थित सुविधाएँ अपेक्षित गति† जीपीयू‡ मल्टी-जीपीयू समर्थन रिलीज़ स्थिति
ऐबालोन प्रोटीन, डीएनए और लिगेंड्स के सिमुलेशन के लिए बायोपॉलिमर की आणविक गतिशीलता के मॉडल स्पष्ट और अंतर्निहित विलायक, संकर मोंटे कार्लो 4–120x T 2075, 2090, K10, K20, K20X Single only अब उपलब्ध है, संस्करण 1.8.88
एसीईएमडी आणविक यांत्रिकी बल फील्डों, अंतर्निहित और स्पष्ट विलायक का जीपीयू सिमुलेशन जीपीयू पर उपयोग के लिए लिखा गया केवल 160 एनएस/दिन जीपीयू संस्करण T 2075, 2090, K10, K20, K20X Yes अब उपलब्ध है
एम्बर बायोमोलेक्यूल पर आणविक गतिशीलता का अनुकरण करने के लिए फंक्शनों का सुइट पीएमईएमडी: स्पष्ट और अंतर्निहित विलायक 89.44 एनएस/दिन जेएसी एनवीई T 2075, 2090, K10, K20, K20X Yes अब उपलब्ध है, संस्करण 12 बगफिक्स9
डीएल-पॉली वितरित मेमोरी समानांतर कंप्यूटर पर मैक्रोमोलेक्यूल्स, पॉलिमर, आयनिक सिस्टम आदि का अनुकरण करें दो-निकाय बल, लिंक-सेल जोड़े, इवाल्ड एसपीएमई बल, शेक वीवी 4x T 2075, 2090, K10, K20, K20X Yes अभी उपलब्ध है, केवल संस्करण 4.0 स्रोत
आकर्षण बायोमोलेक्यूल पर आणविक गतिशीलता का अनुकरण करने के लिए एमडी पैकेज। ओपनएमएम के माध्यम से निहित (5x), स्पष्ट (2x) विलायक टीबीडी T 2075, 2090, K10, K20, K20X Yes डेवलपमेंट में Q4/12
GROMACS जटिल बंधन अंतःक्रियाओं के साथ जैव रासायनिक अणुओं का अनुकरण करें निहित (5x), स्पष्ट (2x) विलायक 165 एनएस/दिन डीएचएफआर T 2075, 2090, K10, K20, K20X Single only अब उपलब्ध है, Q4/12 में संस्करण 4.6
HOOMD-नीला निहित (5x), स्पष्ट (2x) विलायक जीपीयू के लिए लिखा गया 2x T 2075, 2090, K10, K20, K20X Yes अब उपलब्ध है
लैंप वाॅम आणविक गतिशीलता पैकेज लेनार्ड-जोन्स, मोर्स, बकिंघम, चार्म, सारणीबद्ध, पाठ्यक्रम अनाज एसडीके, अनिसोट्रोपिक गे-बर्न, आरई-स्क्वायर, "हाइब्रिड" संयोजन 3–18x T 2075, 2090, K10, K20, K20X Yes अब उपलब्ध है
NAMD बड़े आणविक प्रणालियों के उच्च-प्रदर्शन सिमुलेशन के लिए डिज़ाइन किया गया 100M परमाणु सक्षम 6.44 एनएस/दिन एसटीएमवी 585x 2050एस T 2075, 2090, K10, K20, K20X Yes अब उपलब्ध है, संस्करण 2.9
ओपनएमएम जीपीयू के साथ एचपीसी के लिए आणविक गतिशीलता के लिए पुस्तकालय और अनुप्रयोग निहित और स्पष्ट विलायक, कस्टम बल निहित: 127-213 एनएस/दिन; स्पष्ट: 18-55 एनएस/दिन डीएचएफआर T 2075, 2090, K10, K20, K20X Yes अब उपलब्ध है, संस्करण 4.1.1

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

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

यह भी देखें

संदर्भ

  1. Fung, James; Tang, Felix; Mann, Steve (7–10 October 2002). कंप्यूटर विज़न के लिए कंप्यूटर ग्राफ़िक्स हार्डवेयर का उपयोग करते हुए मध्यस्थ वास्तविकता (PDF). Proceedings of the International Symposium on Wearable Computing 2002 (ISWC2002). Seattle, Washington, USA. pp. 83–89. Archived from the original (PDF) on 2 April 2012.
  2. Aimone, Chris; Fung, James; Mann, Steve (2003). "पहनने योग्य कंप्यूटर मध्यस्थता वास्तविकता के लिए जाइरोस्कोपिक ट्रैकिंग द्वारा सहायता प्राप्त एक आई टैप वीडियो-आधारित फीचर रहित प्रक्षेप्य गति अनुमान". Personal and Ubiquitous Computing. 7 (5): 236–248. doi:10.1007/s00779-003-0239-6. S2CID 25168728.
  3. "Computer Vision Signal Processing on Graphics Processing Units", Proceedings of the IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP 2004) Archived 19 August 2011 at the Wayback Machine: Montreal, Quebec, Canada, 17–21 May 2004, pp. V-93 – V-96
  4. Chitty, D. M. (2007, July). A data parallel approach to genetic programming using programmable graphics hardware Archived 8 August 2017 at the Wayback Machine. In Proceedings of the 9th annual conference on Genetic and evolutionary computation (pp. 1566-1573). ACM.
  5. "Using Multiple Graphics Cards as a General Purpose Parallel Computer: Applications to Computer Vision", Proceedings of the 17th International Conference on Pattern Recognition (ICPR2004) Archived 18 July 2011 at the Wayback Machine, Cambridge, United Kingdom, 23–26 August 2004, volume 1, pages 805–808.
  6. Hull, Gerald (December 1987). "ज़िंदगी". Amazing Computing. 2 (12): 81–84.
  7. Krüger, Jens; Westermann, Rüdiger (July 2003). "संख्यात्मक एल्गोरिदम के GPU कार्यान्वयन के लिए रैखिक बीजगणित ऑपरेटर". ACM Transactions on Graphics (in English). 22 (3): 908–916. doi:10.1145/882262.882363. ISSN 0730-0301.
  8. Bolz, Jeff; Farmer, Ian; Grinspun, Eitan; Schröder, Peter (July 2003). "Sparse matrix solvers on the GPU: conjugate gradients and multigrid". ACM Transactions on Graphics (in English). 22 (3): 917–924. doi:10.1145/882262.882364. ISSN 0730-0301.
  9. Tarditi, David; Puri, Sidd; Oglesby, Jose (2006). "Accelerator: using data parallelism to program GPUs for general-purpose uses" (PDF). ACM SIGARCH Computer Architecture News. 34 (5). doi:10.1145/1168919.1168898.
  10. Che, Shuai; Boyer, Michael; Meng, Jiayuan; Tarjan, D.; Sheaffer, Jeremy W.; Skadron, Kevin (2008). "CUDA का उपयोग करके ग्राफिक्स प्रोसेसर पर सामान्य प्रयोजन अनुप्रयोगों का प्रदर्शन अध्ययन". J. Parallel and Distributed Computing. 68 (10): 1370–1380. CiteSeerX 10.1.1.143.4849. doi:10.1016/j.jpdc.2008.05.014.
  11. Glaser, J.; Nguyen, T. D.; Anderson, J. A.; Lui, P.; Spiga, F.; Millan, J. A.; Morse, D. C.; Glotzer, S. C. (2015). "जीपीयू पर सामान्य प्रयोजन आणविक गतिशीलता सिमुलेशन की मजबूत स्केलिंग". Computer Physics Communications. 192: 97–107. arXiv:1412.3387. Bibcode:2015CoPhC.192...97G. doi:10.1016/j.cpc.2015.02.028.
  12. 12.0 12.1 Du, Peng; Weber, Rick; Luszczek, Piotr; Tomov, Stanimire; Peterson, Gregory; Dongarra, Jack (2012). "From CUDA to OpenCL: Towards a performance-portable solution for multi-platform GPU programming". Parallel Computing. 38 (8): 391–407. CiteSeerX 10.1.1.193.7712. doi:10.1016/j.parco.2011.10.002.
  13. "ओपनसीएल ने सीयूडीए पर बढ़त हासिल की". 28 February 2012. Archived from the original on 23 April 2012. Retrieved 10 April 2012. "As the two major programming frameworks for GPU computing, OpenCL and CUDA have been competing for mindshare in the developer community for the past few years."
  14. James Fung, Steve Mann, Chris Aimone, "OpenVIDIA: Parallel GPU Computer Vision Archived 23 December 2019 at the Wayback Machine", Proceedings of the ACM Multimedia 2005, Singapore, 6–11 November 2005, pages 849–852
  15. "हाइब्रिडाइज़र". हाइब्रिडाइज़र. Archived from the original on 17 October 2017.
  16. "होम पेज". Altimesh. Archived from the original on 17 October 2017.
  17. "हाइब्रिडाइज़र जेनेरिक और वंशानुक्रम". 27 July 2017. Archived from the original on 17 October 2017.
  18. "हाइब्रिडाइज़र के साथ डिबगिंग और प्रोफाइलिंग". 5 June 2017. Archived from the original on 17 October 2017.
  19. "परिचय". Alea GPU. Archived from the original on 25 December 2016. Retrieved 15 December 2016.
  20. "होम पेज". Quant Alea. Archived from the original on 12 December 2016. Retrieved 15 December 2016.
  21. "GPU प्रोग्रामिंग के लिए F# का उपयोग करें". F# Software Foundation. Archived from the original on 18 December 2016. Retrieved 15 December 2016.
  22. "एलिया जीपीयू विशेषताएं". Quant Alea. Archived from the original on 21 December 2016. Retrieved 15 December 2016.
  23. "MATLAB GPGPU समर्थन जोड़ता है". 20 September 2010. Archived from the original on 27 September 2010.
  24. 24.0 24.1 Joselli, Mark, et al. "A new physics engine with automatic process distribution between CPU-GPU[dead link]." Proceedings of the 2008 ACM SIGGRAPH symposium on Video games. ACM, 2008.
  25. "Android 4.2 APIs - Android Developers". developer.android.com. Archived from the original on 26 August 2013.
  26. Harris, Mark (2005). "Mapping computational concepts to GPUs". ACM SIGGRAPH 2005 Courses on - SIGGRAPH '05. pp. 50–es. doi:10.1145/1198555.1198768. ISBN 9781450378338. S2CID 8212423.
  27. Double precision on GPUs (Proceedings of ASIM 2005) Archived 21 August 2014 at the Wayback Machine: Dominik Goddeke, Robert Strzodka, and Stefan Turek. Accelerating Double Precision (FEM) Simulations with (GPUs). Proceedings of ASIM 2005 – 18th Symposium on Simulation Technique, 2005.
  28. "एनवीडिया-केप्लर-जीके110-आर्किटेक्चर-व्हाइटपेपर" (PDF). Archived (PDF) from the original on 21 February 2015.
  29. "Inside Pascal: Nvidia’s Newest Computing Platform Archived 7 May 2017 at the Wayback Machine"
  30. "Inside Volta: The World’s Most Advanced Data Center GPU Archived 1 January 2020 at the Wayback Machine"
  31. "https://www.tomshardware.com/reviews/geforce-radeon-power,2122.html How Much Power Does Your Graphics Card Need?"
  32. "https://images.nvidia.com/content/tesla/pdf/nvidia-tesla-p100-PCIe-datasheet.pdf Nvidia Tesla P100 GPU Accelerator Archived 24 July 2018 at the Wayback Machine"
  33. 33.0 33.1 "D. Göddeke, 2010. Fast and Accurate Finite-Element Multigrid Solvers for PDE Simulations on GPU Clusters. Ph.D. dissertation, Technischen Universität Dortmund". Archived from the original on 16 December 2014.
  34. Asanovic, K.; Bodik, R.; Demmel, J.; Keaveny, T.; Keutzer, K.; Kubiatowicz, J.; Morgan, N.; Patterson, D.; Sen, K.; Wawrzynek, J.; Wessel, D.; Yelick, K. (2009). "समानांतर कंप्यूटिंग परिदृश्य का एक दृश्य". Commun. ACM. 52 (10): 56–67. doi:10.1145/1562764.1562783.
  35. "GPU Gems – Chapter 34, GPU Flow-Control Idioms".
  36. Future Chips. "Tutorial on removing branches", 2011
  37. GPGPU survey paper Archived 4 January 2007 at the Wayback Machine: John D. Owens, David Luebke, Naga Govindaraju, Mark Harris, Jens Krüger, Aaron E. Lefohn, and Tim Purcell. "A Survey of General-Purpose Computation on Graphics Hardware". Computer Graphics Forum, volume 26, number 1, 2007, pp. 80–113.
  38. "S. Sengupta, M. Harris, Y. Zhang, J. D. Owens, 2007. Scan primitives for GPU computing. In T. Aila and M. Segal (eds.): Graphics Hardware (2007)". Archived from the original on 5 June 2015. Retrieved 16 December 2014.
  39. Blelloch, G. E. (1989). "आदिम समानांतर संचालन के रूप में स्कैन करता है" (PDF). IEEE Transactions on Computers. 38 (11): 1526–1538. doi:10.1109/12.42122. Archived from the original (PDF) on 23 September 2015. Retrieved 16 December 2014.
  40. "M. Harris, S. Sengupta, J. D. Owens. Parallel Prefix Sum (Scan) with CUDA. In Nvidia: GPU Gems 3, Chapter 39".[permanent dead link]
  41. Merrill, Duane. Allocation-oriented Algorithm Design with Application to GPU Computing. Ph.D. dissertation, Department of Computer Science, University of Virginia. Dec. 2011.
  42. Sean Baxter. Modern gpu Archived 7 October 2016 at the Wayback Machine, 2013.
  43. Leung, Alan, Ondřej Lhoták, and Ghulam Lashari. "Automatic parallelization for graphics processing units." Proceedings of the 7th International Conference on Principles and Practice of Programming in Java. ACM, 2009.
  44. Henriksen, Troels, Martin Elsman, and Cosmin E. Oancea. "Size slicing: a hybrid approach to size inference in futhark." Proceedings of the 3rd ACM SIGPLAN workshop on Functional high-performance computing. ACM, 2014.
  45. Baskaran, Muthu Manikandan; Bondhugula, Uday; Krishnamoorthy, Sriram; Ramanujam, J.; Rountev, Atanas; Sadayappan, P. (2008). "A compiler framework for optimization of affine loop nests for gpgpus". Proceedings of the 22nd annual international conference on Supercomputing - ICS '08. p. 225. doi:10.1145/1375527.1375562. ISBN 9781605581583. S2CID 6137960.
  46. "K. Crane, I. Llamas, S. Tariq, 2008. Real-Time Simulation and Rendering of 3D Fluids. In Nvidia: GPU Gems 3, Chapter 30".[permanent dead link]
  47. "M. Harris, 2004. Fast Fluid Dynamics Simulation on the GPU. In Nvidia: GPU Gems, Chapter 38". Archived from the original on 7 October 2017.
  48. Block, Benjamin; Virnau, Peter; Preis, Tobias (2010). "Multi-GPU accelerated multi-spin Monte Carlo simulations of the 2D Ising model". Computer Physics Communications. 181 (9): 1549–1556. arXiv:1007.3726. Bibcode:2010CoPhC.181.1549B. doi:10.1016/j.cpc.2010.05.005. S2CID 14828005.
  49. Sun, S.; Bauer, C.; Beichel, R. (2011). "Automated 3-D Segmentation of Lungs with Lung Cancer in CT Data Using a Novel Robust Active Shape Model Approach". IEEE Transactions on Medical Imaging. 31 (2): 449–460. doi:10.1109/TMI.2011.2171357. PMC 3657761. PMID 21997248.
  50. Jimenez, Edward S., and Laurel J. Orr. "Rethinking the union of computed tomography reconstruction and GPGPU computing." Penetrating Radiation Systems and Applications XIV. Vol. 8854. International Society for Optics and Photonics, 2013.
  51. Sørensen, Thomas Sangild, et al. "Accelerating the nonequispaced fast Fourier transform on commodity graphics hardware." IEEE Transactions on Medical Imaging 27.4 (2008): 538-547.
  52. Fast k-nearest neighbor search using GPU. In Proceedings of the CVPR Workshop on Computer Vision on GPU, Anchorage, Alaska, USA, June 2008. V. Garcia and E. Debreuve and M. Barlaud.
  53. M. Cococcioni, R. Grasso, M. Rixen, Rapid prototyping of high performance fuzzy computing applications using high level GPU programming for maritime operations support, in Proceedings of the 2011 IEEE Symposium on Computational Intelligence for Security and Defense Applications (CISDA), Paris, 11–15 April 2011
  54. Whalen, Sean. "Audio and the graphics processing unit." Author report, University of California Davis 47 (2005): 51.
  55. Wilson, Ron (3 September 2009). "DSP brings you a high-definition moon walk". EDN. Archived from the original on 22 January 2013. Retrieved 3 September 2009. Lowry is reportedly using Nvidia Tesla GPUs (graphics-processing units) programmed in the company's CUDA (Compute Unified Device Architecture) to implement the algorithms. Nvidia claims that the GPUs are approximately two orders of magnitude faster than CPU computations, reducing the processing time to less than one minute per frame.
  56. Alerstam, E.; Svensson, T.; Andersson-Engels, S. (2008). "फोटॉन माइग्रेशन के उच्च गति मोंटे कार्लो सिमुलेशन के लिए ग्राफिक्स प्रोसेसिंग इकाइयों के साथ समानांतर कंप्यूटिंग" (PDF). Journal of Biomedical Optics. 13 (6): 060504. Bibcode:2008JBO....13f0504A. doi:10.1117/1.3041496. PMID 19123645. Archived (PDF) from the original on 9 August 2011.
  57. Svetlin A. Manavski; Giorgio Valle (2008). "स्मिथ-वाटरमैन अनुक्रम संरेखण के लिए कुशल हार्डवेयर त्वरक के रूप में CUDA संगत GPU कार्ड". BMC Bioinformatics. 9 (Suppl. 2): S10. doi:10.1186/1471-2105-9-s2-s10. PMC 2323659. PMID 18387198.
  58. Olejnik, M; Steuwer, M; Gorlatch, S; Heider, D (15 November 2014). "gCUP: rapid GPU-based HIV-1 co-receptor usage prediction for next-generation sequencing". Bioinformatics. 30 (22): 3272–3. doi:10.1093/bioinformatics/btu535. PMID 25123901.
  59. Wang, Guohui, et al. "Accelerating computer vision algorithms using OpenCL framework on the mobile GPU-a case study." 2013 IEEE International Conference on Acoustics, Speech and Signal Processing. IEEE, 2013.
  60. GPU computing in OR Archived 13 January 2015 at the Wayback Machine Vincent Boyer, Didier El Baz. "Recent Advances on GPU Computing in Operations Research". Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW), 2013 IEEE 27th International, on pages: 1778–1787
  61. Bukata, Libor; Sucha, Premysl; Hanzalek, Zdenek (2014). "CUDA प्लेटफ़ॉर्म के लिए डिज़ाइन किए गए समानांतर टैबू खोज का उपयोग करके संसाधन बाधित परियोजना शेड्यूलिंग समस्या का समाधान करना". Journal of Parallel and Distributed Computing. 77: 58–68. arXiv:1711.04556. doi:10.1016/j.jpdc.2014.11.005. S2CID 206391585.
  62. Bäumelt, Zdeněk; Dvořák, Jan; Šůcha, Přemysl; Hanzálek, Zdeněk (2016). "A Novel Approach for Nurse Rerostering based on a Parallel Algorithm". European Journal of Operational Research. 251 (2): 624–639. doi:10.1016/j.ejor.2015.11.022.
  63. CTU-IIG Archived 9 January 2016 at the Wayback Machine Czech Technical University in Prague, Industrial Informatics Group (2015).
  64. NRRPGpu Archived 9 January 2016 at the Wayback Machine Czech Technical University in Prague, Industrial Informatics Group (2015).
  65. Naju Mancheril. "PostgreSQL में GPU-आधारित सॉर्टिंग" (PDF). School of Computer Science – Carnegie Mellon University. Archived (PDF) from the original on 2 August 2011.
  66. Manavski, Svetlin A. "CUDA compatible GPU as an efficient hardware accelerator for AES cryptography Archived 7 May 2019 at the Wayback Machine." 2007 IEEE International Conference on Signal Processing and Communications. IEEE, 2007.
  67. Harrison, Owen; Waldron, John (2007). "AES Encryption Implementation and Analysis on Commodity Graphics Processing Units". Cryptographic Hardware and Embedded Systems - CHES 2007. Lecture Notes in Computer Science. Vol. 4727. p. 209. CiteSeerX 10.1.1.149.7643. doi:10.1007/978-3-540-74735-2_15. ISBN 978-3-540-74734-5.
  68. AES and modes of operations on SM4.0 compliant GPUs. Archived 21 August 2010 at the Wayback Machine Owen Harrison, John Waldron, Practical Symmetric Key Cryptography on Modern Graphics Hardware. In proceedings of USENIX Security 2008.
  69. Harrison, Owen; Waldron, John (2009). "Efficient Acceleration of Asymmetric Cryptography on Graphics Hardware". Progress in Cryptology – AFRICACRYPT 2009. Lecture Notes in Computer Science. Vol. 5580. p. 350. CiteSeerX 10.1.1.155.5448. doi:10.1007/978-3-642-02384-2_22. ISBN 978-3-642-02383-5.
  70. "Teraflop Troubles: The Power of Graphics Processing Units May Threaten the World's Password Security System". Georgia Tech Research Institute. Archived from the original on 30 December 2010. Retrieved 7 November 2010.
  71. "Want to deter hackers? Make your password longer". NBC News. 19 August 2010. Retrieved 7 November 2010.
  72. Lerner, Larry (9 April 2009). "Viewpoint: Mass GPUs, not CPUs for EDA simulations". EE Times. Retrieved 3 May 2009.
  73. "W2500 ADS Transient Convolution GT". accelerates signal integrity simulations on workstations that have Nvidia Compute Unified Device Architecture (CUDA)-based Graphics Processing Units (GPU)
  74. GrAVity: A Massively Parallel Antivirus Engine Archived 27 July 2010 at the Wayback Machine. Giorgos Vasiliadis and Sotiris Ioannidis, GrAVity: A Massively Parallel Antivirus Engine. In proceedings of RAID 2010.
  75. "Kaspersky Lab utilizes Nvidia technologies to enhance protection". Kaspersky Lab. 14 December 2009. Archived from the original on 19 June 2010. During internal testing, the Tesla S1070 demonstrated a 360-fold increase in the speed of the similarity-defining algorithm when compared to the popular Intel Core 2 Duo central processor running at a clock speed of 2.6 GHz.
  76. Gnort: High Performance Network Intrusion Detection Using Graphics Processors Archived 9 April 2011 at the Wayback Machine. Giorgos Vasiliadis et al., Gnort: High Performance Network Intrusion Detection Using Graphics Processors. In proceedings of RAID 2008.
  77. Regular Expression Matching on Graphics Hardware for Intrusion Detection Archived 27 July 2010 at the Wayback Machine. Giorgos Vasiliadis et al., Regular Expression Matching on Graphics Hardware for Intrusion Detection. In proceedings of RAID 2009.
  78. "जीपीयू-त्वरित अनुप्रयोग" (PDF). Archived (PDF) from the original on 25 March 2013. Retrieved 12 September 2013.