Mojo Academy · पाठ

क्रमशः Matmul बनाना

सरल लूप से वास्तविक कर्नेल तक।

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

क्रमशः Matmul बनाना, CoddyKit पर Mojo Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Mojo Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Mojo Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Matmul क्या गणना करता है

मैट्रिक्स गुणन, या matmul, M × K मैट्रिक्स को K × N मैट्रिक्स के साथ मिलाकर M × N परिणाम बनाता है। यही AI गणित का केंद्र है।

डॉट प्रोडक्ट का नियम

प्रत्येक आउटपुट सेल एक डॉट प्रोडक्ट होता है: A की एक पंक्ति में आगे बढ़ते हुए और B के एक कॉलम में नीचे जाते हुए, मानों को गुणा करके जोड़ते जाइए।

तीन नेस्टेड लूप

सरल संस्करण i, j और k पर तीन लूप चलाता है। बाहरी दो लूप आउटपुट सेल चुनते हैं और भीतरी लूप गुणनों का योग करता है।

for i in range(M):
    for j in range(N):
        for k in range(K):
            C[i, j] += A[i, k] * B[k, j]

हर सेल को शून्य से शुरू करें

जोड़ना शुरू करने से पहले प्रत्येक परिणाम सेल को शून्य पर सेट करें। अन्यथा पुराने या अवांछित मान आपके योग को दूषित कर देंगे।

C[i, j] = 0.0

योग संचित करें

भीतरी k लूप एक चलता हुआ संचायक बनाए रखता है। प्रत्येक चरण में C को छूने के बजाय स्थानीय चर में जोड़ना अक्सर तेज़ होता है।

var acc: Float32 = 0.0
for k in range(K):
    acc += A[i, k] * B[k, j]
C[i, j] = acc

गति के लिए fn का उपयोग करें

fn और टाइप किए गए आर्ग्युमेंट के साथ कर्नेल लिखें। कठोर प्रकार Mojo को बिना गतिशील अतिरिक्त लागत के सघन मशीन कोड संकलित करने देते हैं।

fn matmul(A: Matrix, B: Matrix, C: Matrix):
    pass

सरल संस्करण धीमा क्यों है

मूल तीन-लूप वाला तरीका सही गणना करता है, लेकिन B को कॉलम के अनुसार पढ़ता है और मेमोरी में उछलता रहता है। खराब स्थानीयता कैश और समय दोनों व्यर्थ करती है।

लूप का क्रम महत्वपूर्ण है

i, k, j क्रम में बदलने पर भीतरी लूप मेमोरी में सीधी पंक्तियों के साथ चलता है। बेहतर पहुँच पैटर्न matmul को काफ़ी तेज़ कर सकते हैं।

for i in range(M):
    for k in range(K):
        for j in range(N):
            C[i, j] += A[i, k] * B[k, j]

भीतरी लूप ही लक्ष्य है

लगभग पूरा समय सबसे भीतर वाले लूप में लगता है। यही सक्रिय भीतरी लूप वह स्थान है जहाँ वेक्टरकरण और अनुकूलन सबसे अधिक लाभ देते हैं।

शुद्धता पहले

सरल संस्करण को सही बनाइए और उसका आउटपुट सुरक्षित रखिए। तेज़ कर्नेल से तुलना करने के लिए यही आपका संदर्भ बनेगा।

वास्तविक कर्नेल तक का मार्ग

इसके बाद आप SIMD, टाइलिंग और समानांतरता जोड़ते हैं। प्रत्येक चरण वही परिणाम बनाए रखता है, लेकिन हार्डवेयर की अधिकतम गति की ओर थ्रूपुट बढ़ाता है।

त्वरित जाँच

व्यवहार में पाठ्यपुस्तक वाला तीन-लूप matmul अक्सर धीमा क्यों होता है?

पुनरावलोकन

Matmul तीन लूपों के माध्यम से प्रत्येक आउटपुट सेल के लिए एक डॉट प्रोडक्ट का योग करता है; सेल को शून्य से शुरू करें, स्थानीय रूप से संचय करें और कैश के लिए लूप क्रम का ध्यान रखें। 🔢

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

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

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

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

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

क्या “क्रमशः Matmul बनाना” पाठ निःशुल्क है?

हाँ — Mojo Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “क्रमशः Matmul बनाना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Mojo Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“क्रमशः Matmul बनाना” में मैं क्या सीखूँगा?

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

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

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

“क्रमशः Matmul बनाना” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. Mojo में टेंसर का मॉडल बनाना
  2. क्रमशः Matmul बनाना
  3. आंतरिक गुणनफल का अनुकूलन
  4. संख्यात्मक शुद्धता सत्यापित करना
← Mojo Academy पर वापस जाएँ