CUDA प्रोग्राम का जीवनचक्र
मेमोरी आवंटित करें, कॉपी करें, लॉन्च करें, वापस कॉपी करें और मुक्त करें।
CUDA प्रोग्राम का जीवनचक्र, CoddyKit पर CUDA Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह CUDA Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। CUDA Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
दोहराती हुई लय
लगभग हर CUDA प्रोग्राम इसी पाँच चरणों वाले क्रम का पालन करता है। एक बार इसकी लय समझ लेने पर आप किसी भी GPU कोड को पढ़ सकेंगे। 🕺
चरण 1: मेमोरी आवंटित करें
सबसे पहले अपने इनपुट और आउटपुट के लिए डिवाइस मेमोरी cudaMalloc से आरक्षित करें, क्योंकि GPU सीधे होस्ट बफ़र का उपयोग नहीं कर सकता।
cudaMalloc(&d_a, bytes);
cudaMalloc(&d_b, bytes);चरण 2: डेटा कॉपी करें
इसके बाद cudaMemcpy से अपने इनपुट डेटा को होस्ट से डिवाइस पर अपलोड करें। अब GPU के पास काम करने के लिए डेटा की अपनी प्रति है।
cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);चरण 3: कर्नेल लॉन्च करें
अब अपने कर्नेल को अनेक थ्रेड में लॉन्च करें। यहीं डिवाइस पर वास्तविक समानांतर कार्य होता है। 🚀
myKernel<<<blocks, threads>>>(d_a, d_b, n);चरण 4: डेटा वापस कॉपी करें
गणना पूरी होने पर परिणामों को डिवाइस से होस्ट पर डाउनलोड करें, ताकि CPU उन्हें पढ़ और उपयोग कर सके।
cudaMemcpy(h_b, d_b, bytes, cudaMemcpyDeviceToHost);चरण 5: मेमोरी मुक्त करें
अंत में cudaFree से हर डिवाइस बफ़र को मुक्त करें। ऐसा न करने पर GPU मेमोरी लीक हो जाती है, जिसका उपयोग दूसरे कार्य कर सकते थे।
cudaFree(d_a);
cudaFree(d_b);सिंक करना न भूलें
लॉन्च असमकालिक होते हैं, इसलिए परिणाम पढ़ने से पहले cudaDeviceSynchronize कॉल करें, ताकि यह सुनिश्चित हो सके कि GPU ने वास्तव में कार्य पूरा कर लिया है।
cudaDeviceSynchronize();कॉपी करने में समय लगता है
कॉपी वाले चरण धीमी PCIe बस से होकर गुजरते हैं, इसलिए डेटा स्थानांतरण अक्सर वास्तविक बाधा होता है, स्वयं कर्नेल नहीं।
बफ़र का पुनः उपयोग करें
एक बार मेमोरी आवंटित करके कई लॉन्च में बफ़र का पुनः उपयोग करना, लूप के हर चक्र में नई मेमोरी आवंटित करने से बेहतर है।
पैटर्न की सममिति
सममिति पर ध्यान दें: हर cudaMalloc की जोड़ी cudaFree के साथ बनती है, और अंदर की हर कॉपी अंततः बाहर की एक कॉपी से जुड़ती है।
एक ही वाक्य में पूरा जीवनचक्र
इसे मंत्र की तरह बोलें: मेमोरी आवंटित करें, कॉपी करें, लॉन्च करें, वापस कॉपी करें, मुक्त करें। यही एक पंक्ति लगभग हर कर्नेल प्रोग्राम का ढाँचा है।
त्वरित जाँच
आइए, मानक CUDA प्रोग्राम के जीवनचक्र की जाँच करें।
पुनरावलोकन
आपने CUDA के पाँच चरणों वाला जीवनचक्र सीखा: मेमोरी आवंटित करना, डेटा अंदर कॉपी करना, लॉन्च करना, वापस कॉपी करना और मुक्त करना—साथ ही परिणाम पढ़ने से पहले सिंक करना। 🎉
एआई शिक्षक के साथ C++ सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “CUDA प्रोग्राम का जीवनचक्र” पाठ निःशुल्क है?
हाँ—“CUDA प्रोग्राम का जीवनचक्र” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और CUDA Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। CUDA Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“CUDA प्रोग्राम का जीवनचक्र” में मैं क्या सीखूँगा?
मेमोरी आवंटित करें, कॉपी करें, लॉन्च करें, वापस कॉपी करें और मुक्त करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ CUDA Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या CUDA Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर CUDA Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“CUDA प्रोग्राम का जीवनचक्र” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस CUDA Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर CUDA Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- __global__ फ़ंक्शन क्वालिफ़ायर
- __device__ और __host__ फ़ंक्शन
- अलग-अलग एड्रेस स्पेस
- CUDA प्रोग्राम का जीवनचक्र