हर किसी के पास ग्राफिक्स कार्ड GPU के रूप में अपने डेस्कटॉप पर बड़े पैमाने पर समानांतर सुपर कंप्यूटर है।
- GPU समुदाय के बराबर "हैलो वर्ल्ड" क्या है?
- मुख्य GPU विक्रेताओं के लिए GPU प्रोग्रामिंग शुरू करने के लिए मैं क्या करूं, मैं कहां जाऊं?
-Adam
हर किसी के पास ग्राफिक्स कार्ड GPU के रूप में अपने डेस्कटॉप पर बड़े पैमाने पर समानांतर सुपर कंप्यूटर है।
-Adam
जवाबों:
NVIDia द्वारा CUDA देखें, IMO यह GPU प्रोग्रामिंग करने का सबसे आसान मंच है। पढ़ने के लिए शांत सामग्री के टन हैं।
http://www.nvidia.com/object/cuda_home.html
नमस्कार दुनिया GPU का उपयोग करके किसी भी प्रकार की गणना करने के लिए होगी।
उम्मीद है की वो मदद करदे।
मुझे लगता है कि अन्य लोगों ने आपके दूसरे प्रश्न का उत्तर दिया है। CUDA के "हैलो वर्ल्ड" के पहले के रूप में, मुझे नहीं लगता कि एक सेट मानक है, लेकिन व्यक्तिगत रूप से, मैं एक समानांतर योजक की सिफारिश करूंगा (यानी एक प्रोग्राम जो एन पूर्णांक बनाता है)।
यदि आप NVIDIA एसडीके में "कमी" उदाहरण देखते हैं, तो सतही सरल कार्य को कई CUDA विचारों जैसे कि coalesced readds, मेमोरी बैंक संघर्षों और लूप अनरोलिंग को प्रदर्शित करने के लिए बढ़ाया जा सकता है।
अधिक जानकारी के लिए इस प्रस्तुति को देखें:
http://www.gpgpu.org/sc2007/SC07_CUDA_5_Optimization_Harris.pdf
एटीआई स्ट्रीम कम्प्यूटिंग एसडीके पर एक नज़र डालें । यह स्टैनफोर्ड में विकसित BrookGPU पर आधारित है ।
भविष्य में OpenCL का उपयोग करके सभी GPU के काम को मानकीकृत किया जाएगा । यह एक Apple-प्रायोजित पहल है जो ग्राफिक्स कार्ड विक्रेता तटस्थ होगी।
ओपनसीएल एक क्रॉस-प्लेटफ़ॉर्म लाइब्रेरी बनाने में एक प्रयास है, जो अन्य चीज़ों, जीपीयू में प्रोग्रामिंग कोड के लिए उपयुक्त है। यह किसी को यह जानने के बिना कि यह किस GPU पर चलेगा, कोड को लिखने की अनुमति देता है, जिससे विशेष रूप से कई प्रकार के GPU को लक्षित किए बिना GPU की शक्ति का उपयोग करना आसान हो जाता है। मुझे संदेह है कि यह मूल GPU कोड के रूप में (या मूल निवासी के रूप में GPU निर्माता अनुमति नहीं देगा) लेकिन ट्रेडऑफ़ कुछ अनुप्रयोगों के लिए इसके लायक हो सकता है।
यह अभी भी अपने शुरुआती चरणों में है (इस उत्तर के रूप में 1.1), लेकिन उद्योग में कुछ कर्षण प्राप्त किया है - उदाहरण के लिए यह मूल रूप से OS X 10.5 और इसके बाद के संस्करण पर समर्थित है।
CUDA के साथ शुरू करने के लिए एक उत्कृष्ट ढांचा है। यह आपको सी में GPGPU गुठली लिखने देता है। संकलक आपके कोड से GPU माइक्रोकोड का उत्पादन करेगा और सीपीयू पर चलने वाली हर चीज को आपके नियमित संकलक को भेज देगा। यह केवल और केवल 8-सीरीज कार्ड या बेहतर पर काम करता है। आप CUDA ज़ोन की जांच करके देख सकते हैं कि इसके साथ क्या किया जा सकता है। CUDA SDK में कुछ महान डेमो हैं । एसडीके के साथ आने वाला प्रलेखन वास्तव में कोड लिखने के लिए एक बहुत अच्छा शुरुआती बिंदु है। यह आपको एक मैट्रिक्स गुणा कर्नेल लिखने के माध्यम से चलेगा, जो शुरू करने के लिए एक शानदार जगह है।
CUDA या OpenCL में आए बिना, GPU प्रोग्रामिंग में आने का एक और आसान तरीका है, इसे OpenACC के माध्यम से करना ।
OpenACC, #pragma acc kernels
GPU की तरह काम भेजने के लिए संकलक निर्देशों (जैसे ) के साथ OpenMP की तरह काम करता है । उदाहरण के लिए, यदि आपके पास एक बड़ा लूप है (केवल बड़े लोग वास्तव में लाभ उठाते हैं):
int i;
float a = 2.0;
float b[10000];
#pragma acc kernels
for (i = 0; i < 10000; ++i) b[i] = 1.0f;
#pragma acc kernels
for (i = 0; i < 10000; ++i) {
b[i] = b[i] * a;
}
संपादित करें: दुर्भाग्य से, केवल पीजीआई कंपाइलर अभी OpenACC का समर्थन करता है, NVIDIA GPU कार्ड के लिए।
यदि आप MATLAB का उपयोग करते हैं, तो तकनीकी कंप्यूटिंग (मैट्रिक्स संगणना और भारी गणित / संख्या क्रंचिंग) के लिए GPU का उपयोग करना बहुत सरल हो जाता है। मुझे गेमिंग के बाहर GPU कार्ड के उपयोग के लिए यह उपयोगी लगता है। नीचे दिए गए लिंक का प्रयोग करें: