Thrust Reduce, Scan और Sort
एक कॉल में उच्च-स्तरीय मूलभूत क्रियाएँ
Thrust Reduce, Scan और Sort, CoddyKit पर CUDA Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह CUDA Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। CUDA Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
कठिन algorithms, एक पंक्ति में
Reductions, scans और sorts को हाथ से तेज़ लिखना कठिन है। Thrust एक ही function call के माध्यम से इनके tuned versions देता है। 🎁
Reduce एक मान में समेटता है
thrust::reduce हर element को एकल परिणाम में जोड़ता है, जैसे किसी array का योग निकालना, और यह सब अंदर ही अंदर parallel रूप से होता है।
int total = thrust::reduce(d.begin(), d.end());कस्टम reduction operators
Reduce में default रूप से addition होता है, लेकिन आप init value और binary op पास करके product, max या कोई भी associative गणना कर सकते हैं।
int m = thrust::reduce(d.begin(), d.end(),
0, thrust::maximum<int>());Scan चलता हुआ योग बनाए रखता है
scan, जिसे prefix sum भी कहते हैं, हर position पर अब तक का running total देता है। यह compaction, sorting और stream allocation की रीढ़ है।
Inclusive बनाम exclusive
inclusive_scan अपने योग में वर्तमान element को शामिल करता है; exclusive_scan नहीं करता। सही विकल्प चुनने से off-by-one bug से बचा जा सकता है।
thrust::inclusive_scan(d.begin(), d.end(),
out.begin());Scan को parallel बनाना आसान नहीं है
Prefix sum देखने में sequential लगता है, फिर भी Thrust इसे एक clever tree algorithm के साथ parallel रूप से चलाता है, जिसे आपको स्वयं लिखने की आवश्यकता नहीं होती।
यहीं पर sort कीजिए
thrust::sort device_vector को वहीं पर क्रमबद्ध करता है। यह तेज़ GPU radix या merge sort का उपयोग करता है और बड़े data पर CPU sort से कहीं तेज़ है।
thrust::sort(d.begin(), d.end());Key के आधार पर sort
sort_by_key एक array को sort करता है और दूसरे values array को उसी के अनुसार पुनः क्रमित करता है। इससे records अपनी keys के साथ aligned रहते हैं।
thrust::sort_by_key(keys.begin(),
keys.end(), values.begin());Primitives को संयोजित कीजिए
वास्तविक pipelines में इन्हें क्रम से जोड़ा जाता है: transform फिर reduce, या sort फिर scan। हर चरण एक tuned call है, इसलिए आपका ध्यान logic पर रहता है।
Fused transform_reduce
transform_reduce एक ही pass में mapping और summing करता है। इससे temporary array के बिना dot product या sum of squares जैसी गणनाएँ की जा सकती हैं।
float ss = thrust::transform_reduce(
d.begin(), d.end(), sq, 0.0f, thrust::plus<float>());Library को अपना काम करने दीजिए
इन primitives को NVIDIA ने बहुत अधिक optimized किया है। पहले इन्हें आज़माना आमतौर पर custom kernel से बेहतर होता है और कई घंटे का काम बचाता है।
त्वरित जाँच
याद कीजिए कि prefix sum क्या परिणाम देता है।
पुनरावलोकन
आपने reduce से data को एक मान में समेटा, scan से running totals बनाए, sort से arrays को क्रमबद्ध किया और transform_reduce से चरणों को जोड़ा। 🏁
एआई शिक्षक के साथ C++ सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “Thrust Reduce, Scan और Sort” पाठ निःशुल्क है?
हाँ—“Thrust Reduce, Scan और Sort” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और CUDA Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। CUDA Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Thrust Reduce, Scan और Sort” में मैं क्या सीखूँगा?
एक कॉल में उच्च-स्तरीय मूलभूत क्रियाएँ आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ CUDA Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या CUDA Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर CUDA Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“Thrust Reduce, Scan और Sort” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस CUDA Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर CUDA Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- cuBLAS GEMM सही तरीके से
- Thrust वेक्टर और रूपांतरण
- Thrust Reduce, Scan और Sort
- डीप लर्निंग के लिए cuDNN