CUDA Academy · पाठ

डिवाइस से होस्ट स्थानांतरण

परिणाम वापस CPU पर डाउनलोड करें।

पाठ 2, कुल 4 में से13 चरण

डिवाइस से होस्ट स्थानांतरण, CoddyKit पर CUDA Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह CUDA Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। CUDA Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

परिणाम वापस लाना

आपके कर्नेल ने अभी डिवाइस बफ़र में परिणाम भर दिए हैं, लेकिन CPU सीधे GPU मेमोरी नहीं पढ़ सकता। आपको परिणामों को वापस डाउनलोड करना होगा। 📥

डाउनलोड की दिशा

डेटा वापस लाने के लिए cudaMemcpyDeviceToHost का उपयोग करें। अब स्रोत डिवाइस मेमोरी है और गंतव्य होस्ट की RAM।

cudaMemcpy(h_c, d_c, bytes, cudaMemcpyDeviceToHost);

गंतव्य अब भी पहले

नियम कभी नहीं बदलता: पहले गंतव्य तर्क और फिर स्रोत। डाउनलोड करते समय होस्ट पॉइंटर पहले आता है।

cudaMemcpy(h_dst, d_src, bytes, cudaMemcpyDeviceToHost);

होस्ट बफ़र मौजूद होना चाहिए

गंतव्य के लिए वास्तविक CPU मेमोरी पहले से उपलब्ध होनी चाहिए। वापस कॉपी करने से पहले malloc या new से होस्ट संग्रहण आवंटित करें।

float* h_c = (float*)malloc(bytes);

कर्नेल के पूरा होने की प्रतीक्षा करें

ब्लॉकिंग cudaMemcpy डिफ़ॉल्ट स्ट्रीम में पिछले कार्य की प्रतीक्षा करता है, इसलिए परिणाम पढ़े जाने से पहले कर्नेल पूरा हो जाता है।

myKernel<<<blocks, threads>>>(d_c, n);
cudaMemcpy(h_c, d_c, bytes, cudaMemcpyDeviceToHost);

उतनी ही बाइटों की संख्या

जितनी बाइट आपने भेजी और गणना की हैं, ठीक उतनी ही डाउनलोड करें। असमान आकार से अधूरे या गलत परिणाम मिलते हैं।

size_t bytes = n * sizeof(float);

अब आप इसे पढ़ सकते हैं

कॉपी लौटने के बाद मान सामान्य CPU मेमोरी में मौजूद होते हैं। आप उन्हें किसी भी होस्ट ऐरे की तरह प्रिंट, जाँच या सहेज सकते हैं।

printf("%f\n", h_c[0]);

आना-जाना

एक पूरा GPU कार्य आना-जाना है: इनपुट भेजें, कर्नेल लॉन्च करें और फिर आउटपुट डाउनलोड करें। हर चरण में cudaMemcpy का उपयोग होता है।

भरोसा करने से पहले सत्यापित करें

डाउनलोड करने के बाद GPU परिणाम की तुलना CPU के त्वरित संदर्भ-परिणाम से करें। सत्यापन बग फैलने से पहले उन्हें पकड़ लेता है। ✅

जो आवंटित किया है उसे मुक्त करें

परिणाम वापस आने के बाद दोनों ओर की मेमोरी मुक्त करें: डिवाइस बफ़र के लिए cudaFree और होस्ट बफ़र के लिए free का उपयोग करें, ताकि मेमोरी लीक न हो।

cudaFree(d_c);
free(h_c);

डाउनलोड में भी समय लगता है

वापसी का रास्ता भी उसी धीमी बस से होकर जाता है, इसलिए केवल वही परिणाम होस्ट पर कॉपी करें जिनकी आपको वास्तव में आवश्यकता है।

त्वरित जाँच

आपके कर्नेल ने परिणाम डिवाइस बफ़र d_c में लिखे हैं। आप उन्हें CPU पर कैसे पढ़ेंगे?

पुनरावलोकन

आपने cudaMemcpyDeviceToHost से वापसी यात्रा सीखी: होस्ट संग्रहण आवंटित करें, पहले होस्ट पॉइंटर रखें, कर्नेल की प्रतीक्षा करें, फिर सत्यापित करके मेमोरी मुक्त करें। 🎉

शुरुआत निःशुल्क

एआई शिक्षक के साथ C++ सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

अक्सर पूछे जाने वाले प्रश्न

क्या “डिवाइस से होस्ट स्थानांतरण” पाठ निःशुल्क है?

हाँ—“डिवाइस से होस्ट स्थानांतरण” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और CUDA Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। CUDA Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“डिवाइस से होस्ट स्थानांतरण” में मैं क्या सीखूँगा?

परिणाम वापस CPU पर डाउनलोड करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ CUDA Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या CUDA Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर CUDA Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“डिवाइस से होस्ट स्थानांतरण” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस CUDA Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर CUDA Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. होस्ट से डिवाइस स्थानांतरण
  2. डिवाइस से होस्ट स्थानांतरण
  3. कॉपी दिशा एनम
  4. PCIe स्थानांतरण अवरोध
← CUDA Academy पर वापस जाएँ