कुबरनेट्स में GPU विफलताएं: बिना अंतहीन Pending के डिवाइस विफलताओं का प्रबंधन
Meta
NVIDIA
2024 में, Llama 3 405B प्रशिक्षित करने वाले मेटा के 16,384 H100 के क्लस्टर में 419 रुकावटें आईं, जिनमें से 58.7% GPU के कारण थीं। कुबरनेट्स अक्सर ऐसी विफलताओं को उसी मृत डिवाइस पर कंटेनरों को पुनः आरंभ करके संभालता है, जिससे अंतहीन Pending स्थितियाँ उत्पन्न होती हैं। यह लेख बताता है कि कुबरनेट्स 1.36 में नई डायनामिक रिसोर्स एलोकेशन (DRA) सुविधाएँ अंततः एक समाधान प्रदान करती हैं, जिसका VK Cloud प्रबंधित क्लस्टर पर लाइव डेमो दिया गया है।
यह लेख मेटा द्वारा Llama 3 405B को प्रशिक्षित करने के अनुभव पर प्रकाश डालता है, जहाँ 16,384 H100 GPU के क्लस्टर में 419 रुकावटें आईं, जिनमें से 58.7% GPU से संबंधित थीं। यह बताता है कि Kubernetes पारंपरिक रूप से डिवाइस की विफलता को स्टेटलेस सेवा की विफलता की तरह मानता है, उसी खराब GPU पर पुनः आरंभ करने का प्रयास करता है, जिससे क्रैश लूप होता है। इस समस्या को हल करने के लिए, Kubernetes 1.36 कई तंत्र पेश करता है: DRA (डायनेमिक रिसोर्स एलोकेशन) 1.34 से स्थिर है, जो साधारण काउंटर के बजाय ऑब्जेक्ट-आधारित मॉडल प्रदान करता है; बैकअप डिवाइसों के लिए प्राथमिकता सूची (firstAvailable); पॉड स्टेटस में डिवाइस स्वास्थ्य स्थिति; डिवाइस टेंट और टॉलरेशन; और डिवाइस बाइंडिंग शर्तें, आदि। लेखक VK Cloud Managed Kubernetes 1.36 पर GPU नोड के साथ एक परीक्षण स्टैंड बनाता है और PCIe डिवाइस को हॉट-रिमूव करके GPU विफलता का अनुकरण करता है। वे दिखाते हैं कि नोड डिवाइस को अस्वस्थ रिपोर्ट करता है और आवंटन योग्य संख्या घट जाती है, लेकिन पॉड मृत GPU पर पुनः आरंभ होता रहता है, बिना किसी पुनर्निर्धारण के। लेख निष्कर्ष में बताता है कि Kubernetes CrashLoopBackOff पॉड्स के लिए कोई अंतर्निहित डी-शेड्यूलिंग क्यों प्रदान नहीं करता है, और नोड हेल्थ कंट्रोलर जैसे DIY पैटर्न का उल्लेख करता है जो पूरे नोड को मार देते हैं, जो एक कुंद उपकरण है।
स्रोत: Habr — хаб ML —
मूल
