मल्टी-एजेंट सिस्टम के साथ GPU कर्नेलों को 38% तेज़ करना
हमारे मल्टी-एजेंट सिस्टम ने NVIDIA Blackwell 200 GPUs के लिए 235 CUDA कर्नेलों को स्वायत्त रूप से अनुकूलित किया और केवल 3 हफ्तों में आधाररेखाओं की तुलना में 38% ज्यामितीय माध्य गति-वृद्धि हासिल की।
पिछले कुछ महीनों में, हम एक मल्टी-एजेंट सिस्टम विकसित कर रहे हैं जो जटिल सॉफ़्टवेयर का निर्माण, रखरखाव और परिनियोजन स्वायत्त रूप से कर सकता है। इस काम के तहत, हम सिस्टम को कई डोमेन में परख रहे हैं—जैसे उससे शुरुआत से एक ब्राउज़र बनवाना और First Proof benchmark पर अनुसंधान-स्तर की गणितीय समस्या हल करवाना।
हाल ही में, हमने NVIDIA के साथ एक नई चुनौती पर काम शुरू किया: CUDA कर्नेलों को अनुकूलित करने के लिए मल्टी-एजेंट हार्नेस का उपयोग। ये कठिन तकनीकी समस्याएँ हैं, जिनका वास्तविक दुनिया में बड़ा प्रभाव पड़ता है: CUDA कर्नेल वही मुख्य सॉफ़्टवेयर हैं जो NVIDIA GPUs पर AI मॉडल प्रशिक्षण और अनुमिति को समर्थन देते हैं। तेज़ कर्नेलों का मतलब है बेहतर GPU उपयोग, कम ऊर्जा खपत, कम विलंबता और प्रति token कम लागत—जिससे प्रदाता एक साथ अधिक उपयोगकर्ताओं को बड़े, अधिक सक्षम मॉडल उपलब्ध करा सकते हैं।
हमारा मल्टी-एजेंट हार्नेस 235 समस्याओं पर तीन हफ्तों तक स्वायत्त रूप से चला। सिस्टम ने Blackwell GPU कर्नेलों को शुरुआत से बनाकर और assembly स्तर तक अनुकूलित करके 38% ज्यामितीय माध्य गति-वृद्धि हासिल की।
इस स्तर के प्रदर्शन सुधार आमतौर पर केवल बेहद अनुभवी कर्नेल इंजीनियरों के महीनों या वर्षों के काम से ही हासिल होते हैं। मल्टी-एजेंट सिस्टम ने यह कुछ ही हफ्तों में कर दिखाया और कर्नेल समस्याओं की उस लंबी शृंखला को भी हल किया, जिन पर मौजूदा तरीकों से काम करना व्यावहारिक नहीं था।
एजेंट सिस्टम की क्षमताओं के परीक्षण के रूप में कर्नेल ऑप्टिमाइज़ेशन
लंबे समय तक चलने वाले, मल्टी-एजेंट सिस्टम्स का मूल्यांकन करने के सबसे अच्छे तरीकों में से एक है उन्हें ऐसी ओपन-एंडेड ऑप्टिमाइज़ेशन समस्याएँ देना, जिनका सही उत्तर हमें भी पता न हो। कर्नेल ऑप्टिमाइज़ेशन की समस्याएँ इस कसौटी पर खरी उतरती हैं: वे ऐसे मापने योग्य लक्ष्य देती हैं, जिनके आधार पर सिस्टम क्रमिक रूप से ऑप्टिमाइज़ कर सकता है, बजाय इसके कि वह किसी साधारण, पहले से ज्ञात डिफ को लक्ष्य बनाए।
आज, इंजीनियर मॉडल्स को अलग-अलग गणितीय ऑपरेशनों में बाँटकर और हर एक को अलग से ट्यून करके कर्नेल्स का ऑप्टिमाइज़ेशन करते हैं। इससे समस्या संभालना आसान हो जाता है, लेकिन प्रदर्शन की काफी गुंजाइश छूट जाती है, क्योंकि टुकड़ों-टुकड़ों में किया गया ऑप्टिमाइज़ेशन पूरे सिस्टम में एक साथ ऑप्टिमाइज़ करने से मिलने वाले संभावित लाभों को नहीं पकड़ पाता। अब तक, GPU प्रदर्शन इन मैन्युअल सरलीकरणों से आगे पूरे समाधान-क्षेत्र का अन्वेषण न कर पाने की हमारी अक्षमता के कारण सीमित रहा है।
इस प्रयोग में, हम यह देखना चाहते थे कि क्या हमारा मल्टी-एजेंट सिस्टम इन सीमाओं से बाहर काम कर सकता है और अधिक व्यापक समाधान-क्षेत्र का अन्वेषण करके तेज़ कर्नेल्स तैयार कर सकता है।
समस्या जनरेशन और बेंचमार्किंग के लिए SOL-ExecBench
NVIDIA ने Deepseek, Qwen, Gemma, Kimi और Stable Diffusion जैसे 124 से अधिक उत्पादन-स्तर के ओपन-सोर्स मॉडलों से 235 ऑप्टिमाइज़ेशन समस्याएँ जनरेट करने के लिए SOL-ExecBench का उपयोग किया। सिंथेटिक डेटा या टॉय कर्नेल्स के बजाय, हर समस्या विभिन्न मॉडल आर्किटेक्चर्स—LLMs, diffusion, vision, audio, video और multi-modal hybrids—में प्रशिक्षण या अनुमिति वर्कलोड पर लागू एक वास्तविक दुनिया की बाधा है।


हमने 27 NVIDIA Blackwell 200 GPUs पर बहु-एजेंट कर्नेल समाधानों की बेंचमार्किंग के लिए भी SOL-ExecBench का उपयोग किया। SOL-ExecBench एक प्रभावी मूल्यांकनकर्ता है, जो कर्नेल प्रदर्शन की तुलना मौजूदा सॉफ़्टवेयर आधाररेखाओं और सैद्धांतिक हार्डवेयर प्रदर्शन सीमाओं से करता है। अगर एजेंट कैशिंग जैसी धोखाधड़ी वाली तरकीबें अपनाते हैं और B200 की समर्थित क्षमता से अधिक प्रदर्शन दिखाते हैं, तो पाइपलाइन उस परिणाम को अमान्य कर देती है।
हमने प्रयोग कैसे चलाया
मल्टी-एजेंट सिस्टम ने प्रदर्शन मेट्रिक्स के आधार पर स्वायत्त वर्कर के बीच काम बाँटने और उसे फिर से संतुलित करने वाले एक planner एजेंट को तैनात करके, एक ही रन में GPU कर्नेल ऑप्टिमाइज़ेशन की सभी 235 समस्याएँ हल कर लीं।
पूरा समन्वय प्रोटोकॉल एक ही Markdown फ़ाइल में था, जिसमें आउटपुट प्रारूप, नियम और परीक्षण निर्दिष्ट थे। मल्टी-एजेंट सिस्टम ने अपने रन के दौरान बेंचमार्किंग पाइपलाइन को कॉल करना खुद ही सीख लिया, जिससे एक ऐसा लूप बना जिसमें सिस्टम बिना किसी डेवलपर हस्तक्षेप के लगातार कर्नेल का परीक्षण, डीबग और ऑप्टिमाइज़ करता रहा।


मल्टी-एजेंट सिस्टम की क्षमताओं का बेहतर आकलन करने के लिए, हमने उससे GPU abstraction spectrum के दो विपरीत छोरों पर, दो अलग-अलग रन में, अपने समाधान दो भाषाओं में लिखने को कहा:
- CUDA C with इनलाइन PTX, जो एजेंट्स को registers और ISA-स्तर के instructions तक सीधी पहुँच देता है, ताकि यह परखा जा सके कि सिस्टम सबसे निचले स्तर पर हार्डवेयर के बारे में तर्क कर सकता है या नहीं।
- CuTe DSL, जो उच्च-स्तरीय composable abstractions प्रदान करता है और जिसकी सार्वजनिक प्रशिक्षण डेटा में मौजूदगी बहुत कम है, ताकि यह परखा जा सके कि सिस्टम केवल दिए गए दस्तावेज़ीकरण से नए API सीख सकता है या नहीं।
38% गति-वृद्धि, जिसमें 19% अनुकूलनों ने 2x से अधिक सुधार हासिल किया
हम मल्टी-एजेंट सिस्टम के प्रदर्शन को दो तरीकों से रिपोर्ट करते हैं:
- ज्यामितीय माध्य गति-वृद्धि बनाम PyTorch कोड, जिसे आधाररेखा के रूप में एकल एजेंट ने अनुकूलित किया था।
- Speed-of-Light (SOL) स्कोर, जो यह दिखाते हैं कि लघुगणकीय वक्र पर कोई समाधान सैद्धांतिक हार्डवेयर सीमाओं की तुलना में कितना अच्छा है। 0.5 का स्कोर अनुकूलित PyTorch आधाररेखा को दर्शाता है, और 1.0 प्रदर्शन की सीमा है।


हमारे मल्टी-एजेंट सिस्टम ने 235 में से 149 समस्याओं (63%) में सफलतापूर्वक आधाररेखाओं से बेहतर प्रदर्शन किया, जिसमें ज्यामितीय माध्य अनुपात 1.38x (38% ज्यामितीय माध्य गति-वृद्धि) रहा।


235 में से 45 समस्याओं (19%) में, मल्टी-एजेंट सिस्टम ने आधाररेखाओं की तुलना में 2x से अधिक अनुकूलन हासिल किया। हमारे सिस्टम द्वारा विकसित अंतिम समाधान आप इस सार्वजनिक रेपो में देख सकते हैं।


अलग-अलग समस्याओं के लिए अलग-अलग अनुकूलन रणनीतियाँ
विभिन्न प्रकार की समस्याओं में सिस्टम की अनुकूलन क्षमता दिखाने के लिए, हम तीन ऐसी समस्याओं को सामने रखते हैं जिनमें इसने स्वाभाविक रूप से अलग-अलग अनुकूलन रणनीतियाँ अपनाईं।
BF16 ग्रुप्ड क्वेरी अटेंशन विथ पेज्ड प्रीफिल
पेज्ड प्रीफिल के साथ ग्रुप्ड-क्वेरी अटेंशन, आधुनिक LLM अनुमिति स्टैक में प्रॉम्प्ट-स्टेज की एक सामान्य प्रक्रिया है। अच्छी तरह से अनुकूलित इम्प्लीमेंटेशन उसी GPU VRAM पर लंबे संदर्भ, अधिक समांतरता और बेहतर थ्रूपुट का समर्थन कर सकता है।
Agent ने Llama 3.1 8B के लिए SGLang अनुमिति से निकाली गई इस अटेंशन समस्या को अनुकूलित करने हेतु CUDA C++ का उपयोग किया। कर्नेल को बेहतर बनाते हुए Agent ने मेमोरी लोडिंग और गणना के लिए विशिष्ट हार्डवेयर निर्देशों का सफलतापूर्वक उपयोग किया, स्थायी कर्नेल के जरिए सुधारित अनुसूचीकरण जोड़ा, और इनपुट आकार के लिए गहराई से अनुकूलन किया।
हमने FlashInfer लाइब्रेरी में मानव-অনुकूलित आधाररेखा के साथ मल्टी-एजेंट सिस्टम के कस्टम कर्नेल की तुलना की। हमने पाया कि सिस्टम ने 0.9722 के SOL स्कोर के साथ हार्डवेयर सीमाओं के करीब पहुँचने वाला समाधान तैयार किया, जो आधाररेखा की तुलना में 84% ज्यामितीय माध्य गति-वृद्धि दर्शाता है।
हमने SGLang में मौजूदा कर्नेल को भी बदला और Llama 3.1 8B पर पहला token आने के समय (TTFT) में 3% गति-वृद्धि देखी। चूँकि सर्विंग कॉन्फ़िगरेशन के आधार पर यह अटेंशन समस्या प्रीफिल प्रक्रिया का 2-5% हिस्सा होती है, हम इसे एंड-टू-एंड स्तर पर एक उल्लेखनीय गति-वृद्धि मानते हैं।


Gating के साथ NVFP4 MoE Linear
यह समस्या Qwen3 जैसे Mixture-of-Experts मॉडल में पाए जाने वाले एक सामान्य two-kernel पैटर्न को दर्शाती है, जिसमें खास बात यह है कि input tensor और intermediate multiplication output को NVFP4 (4-bit floating point) में quantize किया गया है।
एजेंट ने quantization क्षेत्र को सही ढंग से मुख्य bottleneck के रूप में पहचाना और उसी के अनुसार scale calculation और rounding को fuse किया। Quantization के दौरान पहले scale करने और फिर rounding करने के बजाय, उसने पहले से गणना किए गए threshold buckets का उपयोग करके FP32 values को सीधे FP4 codes से map किया, जो इसलिए संभव है क्योंकि NVFP4 के केवल 16 संभावित values होते हैं। इसके बाद, उसने इन optimizations को बड़े परीक्षण मामलों पर लागू किया।
अंततः, एजेंट ने अनुकूलित PyTorch आधाररेखा को पीछे छोड़ दिया और 39% ज्यामितीय माध्य गति-वृद्धि तथा 0.58 SOL स्कोर हासिल किया।


BF16 मैट्रिक्स गुणन
मैट्रिक्स गुणन को अनुकूलित करना बेहद कठिन माना जाता है, क्योंकि इसके लिए अलग-अलग हार्डवेयर यूनिट्स और उनके अनुसूचीकरण की गहरी समझ चाहिए। पूरी तरह उच्च-प्रदर्शन वाले मैट्रिक्स गुणन कर्नेल (GEMMs) के लिए इनलाइन PTX (असेंबली भाषा जैसा), पाइपलाइनिंग, और कर्नेल के भीतर स्टेजिंग की आवश्यकता होती है। नतीजतन, तेज़ GEMMs लिखना ऐतिहासिक रूप से केवल बेहद अनुभवी कर्नेल एक्सपर्ट्स तक सीमित रहा है।
Cursor मल्टी-एजेंट सिस्टम ने शुरुआत से एक विशेषीकृत CUDA C++ GEMM कर्नेल जनरेट किया, जो NVIDIA cuBLAS लाइब्रेरी की बारीकी से ट्यून की हुई मानव आधाररेखा के बेहद करीब (86%) पहुंच गया। सिस्टम ने यह नतीजा Blackwell-विशिष्ट निर्देशों का स्वतंत्र रूप से उपयोग करना सीखकर, हार्डवेयर के अनुरूप मेमोरी रीड्स और राइट्स को अनुकूलित करके, और फिर सटीक शेप्स के लिए उसे और अधिक अनुकूलित करके हासिल किया।
और छोटे-M परीक्षण मामलों में, जो LLM अनुमिति के डीकोड चरण के लिए विशेष रूप से महत्वपूर्ण हैं, मल्टी-एजेंट सिस्टम के कर्नेल ने लाइब्रेरी की तुलना में 9% तक बेहतर प्रदर्शन किया। यह नतीजा संकेत देता है कि मल्टी-एजेंट सिस्टम जल्द ही सबसे कठिन कर्नेल समस्याओं पर भी डोमेन एक्सपर्ट्स से बेहतर प्रदर्शन कर सकते हैं।


सॉफ़्टवेयर बनाने के लिए एक मल्टी-एजेंट सिस्टम
हालाँकि मल्टी-एजेंट हार्नेस ने आधाररेखाओं की तुलना में 38% ज्यामितीय माध्य गति-वृद्धि दी, फिर भी माध्यिका SOL स्कोर केवल 0.56 था, जिससे आगे अनुकूलन की काफ़ी गुंजाइश बनी रही। हमारा मानना है कि अधिक compute के साथ मल्टी-एजेंट समाधानों में बहुत बड़ा सुधार किया जा सकता है, क्योंकि हमारे सैकड़ों समस्याएँ और एजेंट केवल 27 GPUs पर चल रहे थे। इससे मल्टी-एजेंट सिस्टम का पूरा लाभ उठाने की हमारी क्षमता सीमित हो गई। अधिक GPUs के साथ, यह सिस्टम और भी गहरे तथा अधिक नए समाधानों की खोज कर सकता था।
सॉफ़्टवेयर के सबसे महत्वाकांक्षी कार्य खुले-छोर वाले होते हैं, जिनका कोई स्पष्ट समाधान नहीं होता। एकल एजेंट सिस्टम यहाँ संघर्ष करते हैं, क्योंकि मॉडल उन संकीर्ण दायरे वाले कार्यों में सबसे अच्छे होते हैं जिन्हें वे प्रशिक्षण के दौरान पहले ही देख चुके होते हैं। हम कर्नेल अनुकूलन प्रयोग को इस बात के एक और सत्यापन के रूप में देखते हैं कि मल्टी-एजेंट आर्किटेक्चर जल्द ही सॉफ़्टवेयर बनाने का डिफ़ॉल्ट तरीका बन जाएँगे, क्योंकि वे उन नई समस्याओं से निपट सकते हैं जो प्रशिक्षण डेटा वितरण से बहुत बाहर होती हैं।
जिन तकनीकों पर हम यहाँ अनुसंधान कर रहे हैं, वे जल्द ही Cursor के मुख्य उत्पाद को आकार देंगी। यदि आप मल्टी-एजेंट समन्वय की कठिन समस्याओं पर काम करने में रुचि रखते हैं, तो Cursor टीम आपसे hiring@cursor.com पर सुनना पसंद करेगी।