होस्ट से डिवाइस स्थानांतरण
इनपुट डेटा GPU पर अपलोड करें।
होस्ट से डिवाइस स्थानांतरण, CoddyKit पर CUDA Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह CUDA Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। CUDA Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
दो मेमोरी, एक लक्ष्य
आपका डेटा होस्ट RAM में शुरू होता है, लेकिन GPU केवल उन्हीं संख्याओं पर काम कर सकता है जो उसकी अपनी डिवाइस मेमोरी में रहती हैं। पहले आपको इसे वहाँ ले जाना होगा। 🚚
cudaMemcpy से मिलिए
cudaMemcpy फ़ंक्शन आपके डिलीवरी ट्रक जैसा है: यह होस्ट या डिवाइस के एक पते से दूसरे पते तक बाइट का एक ब्लॉक कॉपी करता है।
cudaMemcpy(dst, src, bytes, kind);अपलोड की दिशा
GPU पर इनपुट डेटा भेजने के लिए cudaMemcpyHostToDevice का उपयोग करें। स्रोत होस्ट की RAM है और गंतव्य डिवाइस की मेमोरी।
cudaMemcpy(d_a, h_a, n*sizeof(float), cudaMemcpyHostToDevice);तर्कों का क्रम महत्वपूर्ण है
memcpy की तरह, पहले गंतव्य आता है और फिर स्रोत। गलती से इन्हें बदल दें, तो आपका GPU बफ़र खाली रह जाएगा। 😬
cudaMemcpy(d_dst, h_src, bytes, cudaMemcpyHostToDevice);तत्व नहीं, बाइट गिनें
आकार वाला तर्क बाइट में मापा जाता है, इसलिए sizeof की सहायता से तत्वों की संख्या को प्रकार के आकार से गुणा करें।
size_t bytes = n * sizeof(float);कॉपी करने से पहले आवंटित करें
डिवाइस पॉइंटर को पहले से वास्तविक GPU मेमोरी की ओर संकेत करना चाहिए। उसमें डेटा भेजने से पहले हमेशा गंतव्य के लिए cudaMalloc करें।
cudaMalloc(&d_a, bytes);
cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);एक समकालिक प्रतीक्षा
साधारण cudaMemcpy ब्लॉकिंग होता है: आपका CPU थ्रेड तब तक रुकता है, जब तक हर बाइट सुरक्षित रूप से GPU पर नहीं पहुँच जाती।
अब अपना कर्नेल लॉन्च करें
पहले डेटा भेजें और फिर गणना करें। इनपुट डिवाइस पर पहुँच जाने के बाद आपका कर्नेल उसे पढ़कर वास्तविक कार्य शुरू कर सकता है।
cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);
myKernel<<<blocks, threads>>>(d_a, n);आकार समान होने चाहिए
सुनिश्चित करें कि भेजी जा रही बाइटों की संख्या आपके आवंटित बफ़र में समा जाए। आरक्षित स्थान से अधिक कॉपी करना एक सामान्य ओवरफ़्लो बग है।
रिटर्न कोड जाँचें
cudaMemcpy एक cudaError_t लौटाता है। उसकी जाँच करें, ताकि गलत पॉइंटर या आकार आपके रन को दूषित करने के बजाय स्पष्ट रूप से विफल हो।
cudaError_t err = cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);कॉपी निःशुल्क नहीं होती
हर बार डेटा भेजने पर वह धीमी PCIe बस से होकर जाता है, इसलिए केवल वही डेटा कॉपी करें जिसकी आपको वास्तव में डिवाइस पर आवश्यकता है।
त्वरित जाँच
आप CPU RAM से GPU पर एक इनपुट ऐरे भेजना चाहते हैं। कौन-सा कॉल सही है?
पुनरावलोकन
आपने cudaMemcpyHostToDevice से डेटा भेजना सीखा: डिवाइस बफ़र आवंटित करें, पहले गंतव्य रखें, आकार बाइट में दें और लॉन्च करने से पहले कॉपी करें। 🎉
एआई शिक्षक के साथ C++ सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “होस्ट से डिवाइस स्थानांतरण” पाठ निःशुल्क है?
हाँ—“होस्ट से डिवाइस स्थानांतरण” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और CUDA Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। CUDA Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“होस्ट से डिवाइस स्थानांतरण” में मैं क्या सीखूँगा?
इनपुट डेटा GPU पर अपलोड करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ CUDA Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या CUDA Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर CUDA Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“होस्ट से डिवाइस स्थानांतरण” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस CUDA Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर CUDA Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- होस्ट से डिवाइस स्थानांतरण
- डिवाइस से होस्ट स्थानांतरण
- कॉपी दिशा एनम
- PCIe स्थानांतरण अवरोध