GPU मेमोरी के पॉइंटर
डिवाइस पॉइंटर होस्ट चर में रहते हैं।
GPU मेमोरी के पॉइंटर, CoddyKit पर CUDA Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह CUDA Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। CUDA Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
CPU पर रहने वाला पॉइंटर
cudaMalloc आपको एक सामान्य C++ पॉइंटर वेरिएबल देता है। यह होस्ट मेमोरी में रहती है, लेकिन इसके अंदर का पता GPU मेमोरी की ओर संकेत करता है। 🔗
पता डिवाइस को दर्शाता है
डिवाइस पॉइंटर में एक ऐसी संख्या होती है जो केवल GPU के पता-स्थान में मान्य होती है। CPU के लिए यह वास्तविक RAM नहीं, बल्कि केवल एक पूर्णांक है।
float* d_data; // host variable, device addressd_ नामकरण की आदत
प्रोग्रामर डिवाइस पॉइंटर के आगे d_ और होस्ट पॉइंटर के आगे h_ लगाते हैं। केवल नाम ही आपको याद दिलाता है कि प्रत्येक किस ओर से संबंधित है।
float* h_data;
float* d_data;होस्ट पर डिरेफ़रेंस न करें
CPU कोड में *d_data लिखना एक जाल है। होस्ट सीधे GPU मेमोरी को छू नहीं सकता, इसलिए इससे क्रैश हो सकता है या निरर्थक डेटा पढ़ा जा सकता है।
कर्नेल इसे स्वतंत्र रूप से डिरेफ़रेंस करते हैं
कर्नेल के अंदर वही डिवाइस पॉइंटर पूरी तरह मान्य होता है। वहाँ d_data[i] आपकी अपेक्षा के अनुसार वास्तविक GPU मेमोरी को पढ़ता और लिखता है।
__global__ void k(float* d) {
d[0] = 1.0f;
}इसे कर्नेल में पास करें
आप डिवाइस पॉइंटर को कर्नेल में एक आर्ग्युमेंट के रूप में देते हैं। फिर GPU आपके डेटा को खोजने के लिए उस पते का उपयोग करता है।
myKernel<<<grid, block>>>(d_data);दो पॉइंटर, दो स्थान
होस्ट और डिवाइस पॉइंटर को सख्ती से अलग रखें। होस्ट पॉइंटर GPU पर अर्थहीन होता है और डिवाइस पॉइंटर CPU पर अर्थहीन होता है।
cudaMemcpy अंतर को पाटता है
दोनों के बीच डेटा पहुँचाने के लिए उसे कॉपी करें। cudaMemcpy दोनों पॉइंटर लेता है और आपकी ओर से बाइट को इस अंतर के पार ले जाता है।
पॉइंटर अंकगणित अब भी काम करता है
आप होस्ट पर किसी डिवाइस पॉइंटर में ऑफ़सेट जोड़ सकते हैं, जैसे d_data + n, ताकि वह किसी खंड की ओर संकेत करे। बस वहाँ से उसे डिरेफ़रेंस न करें।
float* d_tail = d_data + 100;उन्हें मिला देना सूक्ष्म समस्या है
कंपाइलर आपको दोनों को लेकर भ्रमित होने से नहीं रोकेगा। कई CUDA बग केवल ऐसे होस्ट पॉइंटर के कारण होते हैं जिसे डिवाइस पॉइंटर की जगह दे दिया गया हो।
अनुशासन डीबगिंग से बेहतर है
स्पष्ट नामकरण और निश्चित परंपरा घंटों का समय बचाते हैं। अपनी d_ और h_ योजना पहले ही तय करें और उसे कभी न तोड़ें। 🧹
त्वरित जाँच
आइए जाँचें कि डिवाइस पॉइंटर को सुरक्षित रूप से कहाँ डिरेफ़रेंस किया जा सकता है।
पुनरावृत्ति
आपने सीखा कि डिवाइस पॉइंटर होस्ट वेरिएबल में रहता है, लेकिन GPU मेमोरी को संबोधित करता है: कर्नेल के अंदर उपयोग योग्य, पर सीधे होस्ट अभिगम के लिए वर्जित। 🎉
एआई शिक्षक के साथ C++ सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “GPU मेमोरी के पॉइंटर” पाठ निःशुल्क है?
हाँ—“GPU मेमोरी के पॉइंटर” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और CUDA Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। CUDA Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“GPU मेमोरी के पॉइंटर” में मैं क्या सीखूँगा?
डिवाइस पॉइंटर होस्ट चर में रहते हैं। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ CUDA Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या CUDA Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर CUDA Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“GPU मेमोरी के पॉइंटर” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस CUDA Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर CUDA Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- cudaMalloc और cudaFree
- GPU मेमोरी के पॉइंटर
- आरंभिकीकरण के लिए cudaMemset
- लीक और डबल-फ्री से बचें