ब्लॉक संख्या को ऊपर की ओर पूर्णांकित करें
पूरे कवरेज के लिए (n + threads - 1) / threads।
ब्लॉक संख्या को ऊपर की ओर पूर्णांकित करें, CoddyKit पर CUDA Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह CUDA Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। CUDA Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
कितने ब्लॉक
प्रति ब्लॉक थ्रेड की संख्या तय करने के बाद आपको यह निर्धारित करना होता है कि कितने ब्लॉक लॉन्च किए जाएँ, ताकि सारणी के हर तत्व को एक थ्रेड मिले।
साधारण भाग देने से डेटा छूट जाता है
पूर्णांक भाग देने पर परिणाम नीचे की ओर पूर्णांकित होता है। 1000 तत्वों और 256 थ्रेड के साथ n / threads केवल 3 ब्लॉक देता है, जो सिर्फ 768 तत्वों को शामिल करता है और बाकी को छोड़ देता है।
आपको ऊपर की ओर पूर्णांकित करना होगा
जब संख्या का विभाजन ठीक-ठीक न हो, तो आपको एक और आंशिक ब्लॉक जोड़ना होगा। लक्ष्य सीलिंग भाग है, फ्लोर भाग नहीं।
ऊपर की ओर पूर्णांकित करने की तरकीब
भाग देने से पहले थ्रेड की संख्या में से एक घटाकर जोड़िए। यह छोटा-सा बदलाव किसी भी शेषफल को अगले पूरे ब्लॉक तक पहुँचा देता है और दशमलव गणना की आवश्यकता नहीं पड़ती।
int blocks = (n + threads - 1) / threads;यह क्यों काम करता है
यदि n पूरी तरह विभाजित हो जाता है, तो अतिरिक्त थ्रेड की संख्या में से एक घटाकर जोड़ने पर भागफल बढ़ाने के लिए पर्याप्त नहीं होता। यदि कोई शेषफल हो, तो यह एक और ब्लॉक जोड़ देता है।
हल किया हुआ उदाहरण
1000 तत्वों और 256 थ्रेड के लिए: 1000 में 255 जोड़ने पर 1255 मिलता है, जिसे 256 से भाग देने पर 4 आता है। आपको 4 ब्लॉक और पूर्ण कवरेज मिलती है।
int blocks = (1000 + 256 - 1) / 256; // 4 blocksसमान रूप से विभाजित होने वाला मामला
512 आइटम और 256 थ्रेड के लिए: 512 में 255 जोड़ने पर 767 मिलता है, और 256 से भाग देने पर 2 आता है। जब संख्या पूरी तरह विभाजित हो जाती है, तब कोई व्यर्थ अतिरिक्त ब्लॉक नहीं होता।
आप आवश्यकता से थोड़े अधिक लॉन्च करते हैं
अंतिम ब्लॉक आमतौर पर केवल आंशिक रूप से भरा होता है, इसलिए कुछ थ्रेड के लिए कोई तत्व नहीं होता। यह ठीक है, क्योंकि आपकी सीमा-जाँच उन्हें संभाल लेती है।
इसे लॉन्च में शामिल करें
ब्लॉक की संख्या की गणना करें, फिर पूरे ग्रिड में कार्य फैलाने के लिए दोनों संख्याएँ तीन कोणीय कोष्ठकों में पास करें।
int threads = 256;
int blocks = (n + threads - 1) / threads;
add<<<blocks, threads>>>(a, b, out, n);इसे सुरक्षा-जाँच के साथ जोड़ें
ऊपर की ओर पूर्णांक बनाना और if (i < n) जाँच मिलकर काम करते हैं। एक सभी तत्वों को शामिल करना सुनिश्चित करता है, जबकि दूसरा अतिरिक्त थ्रेड को सुरक्षित रखता है।
एक छोटा पुनःप्रयोग योग्य सहायक
कई प्रोजेक्ट इसे एक छोटे फ़ंक्शन में रखते हैं, ताकि ऊपर की ओर पूर्णांक बनाने का तर्क एक ही स्थान पर रहे और उसमें कभी गलत टाइपिंग न हो। ✨
inline int ceilDiv(int n, int d) { return (n + d - 1) / d; }त्वरित जाँच
आवश्यक ब्लॉकों की संख्या गिनें।
पुनरावृत्ति
आपने (n + threads - 1) / threads से ग्रिड का आकार तय करना सीखा। यह सीलिंग-डिविज़न युक्ति हर तत्व को शामिल करती है, भले ही संख्या पूरी तरह विभाजित न हो। 🎯
एआई शिक्षक के साथ C++ सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “ब्लॉक संख्या को ऊपर की ओर पूर्णांकित करें” पाठ निःशुल्क है?
हाँ—“ब्लॉक संख्या को ऊपर की ओर पूर्णांकित करें” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और CUDA Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। CUDA Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“ब्लॉक संख्या को ऊपर की ओर पूर्णांकित करें” में मैं क्या सीखूँगा?
पूरे कवरेज के लिए (n + threads - 1) / threads। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ CUDA Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या CUDA Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर CUDA Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“ब्लॉक संख्या को ऊपर की ओर पूर्णांकित करें” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस CUDA Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर CUDA Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- क्लासिक इंडेक्स सूत्र
- सीमा से बाहर जाने से बचाएँ
- ब्लॉक संख्या को ऊपर की ओर पूर्णांकित करें
- ग्रिड-स्ट्राइड लूप