← नवीनतम पेपर
💻 computer science

Hunting CUDA Bugs at Scale with cuFuzz

यह शोध पत्र cuFuzz प्रस्तुत करता है, जो पहला व्यावहारिक CUDA-उन्मुख फज़र (fuzzer) है जो होल-प्रोग्राम फज़िंग, NVBit के माध्यम से डिवाइस-साइड कवरेज इंस्ट्रुमेंटेशन और डिकपल्ड सैनिटाइजेशन के माध्यम से फॉल्स पॉजिटिव और टूल असंगतता जैसी प्रमुख बाधाओं को दूर करता है, और 14 CUDA प्रोग्रामों में 43 पहले से अज्ञात बग्स की सफलतापूर्वक खोज करता है।

मूल लेखक: Mohamed Tarek Ibn ziad, Christos Kozyrakis

प्रकाशित 2026-03-16
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Mohamed Tarek Ibn ziad, Christos Kozyrakis

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

कल्पना कीजिए कि आपके पास एक विशाल, उच्च-गति वाला कारखाना है। एक तरफ, आपके पास मैनेजर का कार्यालय (CPU) है, जहाँ योजनाएँ बनाई जाती हैं और संसाधनों का आवंटन किया जाता है। दूसरी ओर, आपके पास असेंबली लाइन (GPU) है, जहाँ हजारों रोबोट एक साथ अविश्वसनीय गति से चीजें बनाने के लिए काम करते हैं।

वर्षों तक, लोगों ने सोचा कि असेंबली लाइन इतनी सरल और सुव्यवस्थित थी कि वह शायद ही कभी गलतियाँ करती थी। लेकिन जैसे-जैसे कारखाना अधिक जटिल होता गया, रोबतों ने सूक्ष्म, खतरनाक गलतियाँ करना शुरू कर दिया: गलत पुर्जे पकड़ना, एक-दूसरे के पैरों पर पैर रखना, या उन निर्देशों को पढ़ना जो अभी लिखे ही नहीं गए थे। ये त्रुटियाँ पकड़ना कठिन था क्योंकि ये केवल बहुत विशिष्ट, अराजक स्थितियों में होती थीं।

यह शोध पत्र cuFuzz पेश करता है, जो विशेष रूप से इस GPU कारखाने में छिपे हुए बग्स (bugs) को खोजने के लिए डिज़ाइन किया गया एक नया "सुरक्षा निरीक्षक" (safety inspector) है।

यह कैसे काम करता है, इसे सरल अवधारणाओं में यहाँ समझाया गया है:

1. समस्या: पुराने निरीक्षक क्यों विफल रहे

cuFuzz से पहले, सुरक्षा निरीक्षक रोबोटों की जाँच करने के दो तरीके आजमाते थे, लेकिन दोनों में बड़ी खामियां थीं:

  • "अलग-थलग रोबोट" की जाँच (Kernel-Level Fuzzing):
    कल्पना कीजिए कि एक निरीक्षक असेंबली लाइन से एक अकेले रोबोट को बाहर निकालता है, उसे यादृच्छिक (random) पुर्जे देता है, और देखता है कि क्या वह टूट जाता है।

    • खामी: वास्तविक कारखाने में, मैनेजर (CPU) रोबोट को पुर्जे सौंपने से पहले उनकी जाँच करता है। यदि पुर्जे खराब हैं, तो मैनेजर प्रक्रिया को रोक देता है। लेकिन अलग-थलग निरीक्षक को यह पता नहीं होता! वह "असंभव" परिदृश्य बनाता है (जैसे एक रोबोट को ऐसा पुर्जा देना जो अस्तित्व में ही नहीं है) और चिल्लाता है, "त्रुटि (ERROR)!" जब रोबोट क्रैश हो जाता है। ये गलत अलार्म (False Alarms) हैं।
    • छूटी हुई दरार: इसके विपरीत, कुछ बग्स इसलिए होते हैं क्योंकि रोबोट को पुर्जे सौंपने से पहले मैनेजर ने कोई गलती की थी। अलग-थलग निरीक्षक मैनेजर को कभी देख ही नहीं पाता, इसलिए वह इन बग्स को पूरी तरह से मिस कर देता है।
  • "ब्लाइंड स्पॉट" की समस्या (Lack of Device Coverage):
    मैनेजर के कार्यालय में एक नक्शा होता है जो दिखाता है कि किन कमरों में जाया गया है। लेकिन असेंबली लाइन एक विशाल, अंधेरे गोदाम की तरह है जिसके अपने गुप्त रास्ते हैं। पुराने निरीक्षक केवल मैनेजर के नक्शे को ही देख सकते थे। उन्हें इस बात का कोई अंदाजा नहीं था कि असेंबली लाइन पर रोबोट वास्तव में कौन से विशिष्ट रास्ते ले रहे हैं। इस नक्शे के बिना, निरीक्षक रोबोटों को नए, खतरनाक संयोजनों को आज़माने के लिए निर्देशित नहीं कर सकता था।

  • "टूल क्लैश" की समस्या (Tool Clash Problem):
    बग्स खोजने के लिए, आपको दो प्रकार के उपकरणों की आवश्यकता होती है: एक मैप मेकर (रास्ते ट्रैक करने के लिए) और एक सेफ्टी स्कैनर (क्रैश या मेमोरी लीक का पता लगाने के लिए)।

    • खामी: GPU की दुनिया में, ये दोनों उपकरण एक-दूसरे से नफरत करते हैं। यदि आप सेफ्टी स्कैनर चालू करते हैं, तो मैप मेकर टूट जाता है, और इसके विपरीत भी। इसलिए, निरीक्षकों को चुनना पड़ता था: या तो कारखाने का नक्शा बनाएँ (लेकिन बग्स मिस कर दें) या बग्स के लिए स्कैन करें (लेकिन उन्हें पता ही नहीं होगा कि कहाँ देखना है)।

2. समाधान: cuFuzz का आगमन

cuFuzz पहला ऐसा निरीक्षक है जो इन तीनों समस्याओं को एक साथ हल करता है। इसे एक सुपर-नििरीक्षक के रूप में सोचें जिसके पास एक विशेष टूलकिट है।

  • यह पूरे कारखाने की जाँच करता है (Whole-Program Fuzzing):
    रोबोटों को लाइन से बाहर निकालने के बजाय, cuFuzz पूरी प्रक्रिया को देखता है: मैनेजर की योजना बनाना, रोबोटों का निर्माण करना, और उनके बीच का हैंड-ऑफ (hand-off)।

    • लाभ: इसे पता है कि यदि मैनेजर कहता है "नहीं", तो रोबोट को खराब पुर्जा कभी नहीं मिलेगा। इससे गलत अलार्म (False Alarms) रुक जाते हैं। यह उन बग्स को भी पकड़ता है जहाँ मैनेजर की खराब योजना के कारण बाद में रोबोट क्रैश हो जाता है।
  • अंधेरे गोदाम को रोशन करता है (Device-Side Coverage):
    cuFuzz NVBit नामक एक विशेष उपकरण का उपयोग करता है (जो सूक्ष्म, अदृश्य ड्रोनों के झुंड की तरह है) जो वास्तविक समय में असेंबली लाइन के ऊपर उड़ता है।

    • लाभ: यह सटीक रूप से मानचित्रित करता है कि रोबोट GPU पर कौन से रास्ते ले रहे हैं। यह इस मानचित्र को मैनेजर के मानचित्र के साथ जोड़ता है, जिससे निरीक्षक को कारखाने की एक पूर्ण तस्वीर मिलती है। अब, यह रोबोटों को उन विशिष्ट, पेचीदा रास्तों को आज़माने के लिए निर्देशित कर सकता है जिनके टूटने की संभावना सबसे अधिक है।
  • उपकरणों को अलग करता है (Decoupled Sanitization):
    चूंकि मैप मेकर और सेफ्टी स्कैनर एक ही कमरे में काम नहीं कर सकते, इसलिए cuFฟuzz एक समानांतर प्रसंस्करण प्रणाली (parallel processing system) बनाता है।

    • लाभ: यह चीजों को तेजी से चलाने के लिए मुख्य लाइन पर मैप मेकर को चलाता है। इस बीच, यह सबसे दिलचस्प और पेचीदा इनपुट्स को एक अलग "सेफ्टी रूम" में भेज देता है जहाँ सेफ्टी स्कैनर बिना किसी बाधा के काम कर सकते हैं। इस तरह, इसे दोनों तरफ का लाभ मिलता है: गति और गहरा त्रुटि पता लगाने की क्षमता।

3. परिणाम: एक सुरक्षा क्रांति

टीम ने 14 अलग-अलग "कारखानों" (सॉफ्टवेयर प्रोग्रामों) पर cuFuzz का परीक्षण किया, जिनमें इमेज प्रोसेसिंग और AI के लिए उपयोग किए जाने वाले कुछ प्रमुख कंपनियों के प्रोग्राम भी शामिल थे।

  • स्कोरकार्ड: cuFuzz ने 43 बिल्कुल नए बग्स खोज निकाले जिनके बारे में किसी को पता नहीं था।
  • प्रभाव: इनमें से 19 व्यावसायिक लाइब्रेरीज़ में थे जिनका उपयोग वास्तविक व्यवसायों द्वारा किया जाता है। कुछ मेमोरी लीक थे (जैसे एक रोबोट पुर्जों को जमा करता रहता है जब तक कि गोदाम खाली न हो जाए), कुछ डेटा रेस (रोबोट एक-दूसरे के पैरों पर पैर रखना) थे, और कुछ क्रैश थे।
  • दक्षता (Efficiency): "परसिस्टेंट मोड" (हर टेस्ट के लिए कारखाने को बंद करने और फिर से शुरू करने के बजाय उसे लूप में चलते रहने) का उपयोग करके, cuFuzz बहुत तेज़ हो गया, और इसने रिकॉर्ड समय में बग्स खोज निकाले।

बड़ी तस्वीर (The Big Picture)

cuFuzz से पहले, GPU सॉफ्टवेयर का परीक्षण करना आंखों पर पट्टी बांधकर घास के ढेर में सुई खोजने जैसा था। आप कुछ सुइयां तो ढूंढ सकते थे, लेकिन आप ज्यादातर या तो घास (गलत अलार्म) पाएंगे या अंधेरे में छिपी सुइयों को मिस कर देंगे।

cuFuzz आपकी आंखों से पट्टी हटा देता है, आपको एक मेटल डिटेक्टर देता है, और आपको एक साथ पूरे कारखाने में चलने की अनुमति देता है। यह साबित करता है कि आधुनिक GPU की अराजक और सुपर-फास्ट दुनिया में भी, हम अपने सॉफ्टवेयर को सुरक्षित, विश्वसनीय और बग-मुक्त रखने के लिए उपकरण बना सकते हैं।

संक्षेप में: cuFuzz AI और ग्राफिक्स क्रांति के लिए अंतिम गुणवत्ता नियंत्रण प्रणाली है, जो यह सुनिश्चित करती है कि कल के शक्तिशाली कंप्यूटर आज की एक छोटी सी अनदेखी गलती के कारण क्रैश न हों।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →