यह AMD के लिए बहुत दिनों से इंतजार किया जा रहा पल हो सकता है।
हाल ही में, Wafer AI ने AMD MI355X पर तैनात किया है किमी K3। परिणामस्वरूप, जिस मॉडल को शुरू में दो सर्वर पर 16 NVIDIA B200 कार्ड की आवश्यकता होती थी, उसे अब एक AMD सर्वर पर केवल 8 MI355X कार्ड के साथ स्थापित किया जा सकता है।

अधिक महत्वपूर्ण बात यह है कि यह केवल मॉडल को अंदर डालने तक सीमित नहीं है।
1024 टोकन इनपुट और 400 टोकन आउटपुट के परीक्षण में, MI355X ने 952 टोकन/सेकंड की कुल थ्रूपुट और एकल उपयोगकर्ता जेनरेशन स्पीड 118 टोकन/सेकंड प्राप्त की।
एकल नोड के आधार पर, इसकी थ्रूपुट B200 समाधान की तुलना में लगभग 3.8 गुना है, और इसकी कीमत-प्रदर्शन क्षमता B200 और B300 से अधिक है।
और सबसे आश्चर्यजनक बात यह है कि ROCm ने इस बार खासा उलझन नहीं डाली।
मॉडल बहुत बड़ा है, अब विस्मृति गणना क्षमता से अधिक महत्वपूर्ण हो गई है
किमी K3 में 2.8 ट्रिलियन पैरामीटर हैं, जिनके मॉडल वेट्स के लिए 1.5 TB से अधिक GPU मेमोरी की आवश्यकता होती है, और यह लाखों Token के संदर्भ के लिए KV Cache को शामिल नहीं करता।
8 कार्ड B200 सर्वर, जिसमें प्रत्येक कार्ड में 192 GB वीएमएम है, कुल क्षमता लगभग 1.5 TB है। इसका मतलब है कि मॉडल वेट्स को पूरी तरह से रखना भी कठिन है, और KV कैश के लिए स्थान छोड़ना तो और भी असंभव है। इसलिए, B200 को दो सर्वर, 16 GPU का उपयोग करना पड़ता है।
B300 प्रति कार्ड 288 GB वीडियो मेमोरी रखता है, जिससे मॉडल को एक ही नोड में रखा जा सकता है। आश्चर्यजनक रूप से, AMD MI355X भी 288 GB वीडियो मेमोरी रखता है, और 8 MI355X कार्ड मिलाकर लगभग 2.3 TB बनाते हैं, जिसके लिए केवल एक सर्वर काफी है।
यह केवल एक मशीन कम उपयोग करने की बात नहीं है। मॉडल को नोड्स के बीच चलाने के बाद, प्रत्येक टोकन उत्पन्न करने के लिए नेटवर्क के माध्यम से डेटा सिंक्रनाइज़ करने की आवश्यकता हो सकती है। भले ही आप RoCE v2 नेटवर्क का उपयोग कर रहे हों, जिसकी गति लगभग 195 Gb/s है, नोड्स के बीच संचार अभी भी डिकोडिंग को धीमा कर देता है।
MI355X बड़े वीएमएम के साथ, पूरा मॉडल एक ही नोड में रखता है।

अंतिम परिणाम के अनुसार, 8 MI355X की शीर्ष कुल थ्रूपुट 952 टोकन/सेकंड है, जिसमें एकल रास्ते की उत्पादन गति 118 टोकन/सेकंड है।
तुलना के लिए, 16 B200 के डुअल-नोड डिप्लॉयमेंट की कुल थ्रूपुट 498 टोकन/सेकंड है, जो एकल नोड पर लगभग 249 टोकन/सेकंड के बराबर है।
अर्थात, MI355X की एकल नोड थ्रूपुट, B200 के डुअल नोड डिप्लॉयमेंट की औसत एकल नोड थ्रूपुट की लगभग 3.8 गुना है। एकल उपयोगकर्ता जनरेशन रेट के मामले में, MI355X की 118 Token/s, B200 की 90 Token/s से अधिक है।
B300 अभी भी सबसे उच्च प्रदर्शन वाला विकल्प है। 8 B300 के नोड की कुल थ्रूपुट 1568 टोकन/सेकंड है, जिसमें एकल लेने की गति 172 टोकन/सेकंड है, और कुल थ्रूपुट लगभग MI355X की 1.65 गुना है।

लेकिन कीमत ने निष्कर्ष बदल दिया। वेफर की गणना MI355X के लिए प्रति कार्ड प्रति घंटा 2.5 डॉलर, B200 के लिए 4.25 डॉलर और B300 के लिए 6 डॉलर के आधार पर की गई है।
इस कीमता मान्यता के अनुसार, MI355X प्रति डॉलर लगभग 48 टोकन/सेकंड की शीर्ष थ्रूपुट प्रदान कर सकता है; B200 लगभग 7 टोकन/सेकंड; B300 लगभग 33 टोकन/सेकंड।
B300 तेज़ है, लेकिन MI355X की इकाई लागत कुशलता अधिक है। बड़े पैमाने पर ओपन मॉडल चलाने वाले डेटासेंटर्स के लिए, यह केवल प्रदर्शन के शीर्षक के लिए प्रतिस्पर्धा करने से अधिक महत्वपूर्ण हो सकता है।
अधिक आश्चर्यजनक बात यह है कि ROCm को लगभग सीधे उपयोग किया जा सकता है
लंबे समय से, AMD डेटा सेंटर GPU की सबसे बड़ी समस्या अक्सर हार्डवेयर नहीं, बल्कि सॉफ्टवेयर रही है।
एक ही मॉडल CUDA पर सीधे चल सकता है, लेकिन ROCm पर, आपको फ्रेमवर्क बदलना पड़ सकता है, ऑपरेटर जोड़ने पड़ सकते हैं, यहां तक कि निचले स्तर के कर्नेल को पुनः लिखना पड़ सकता है।
लेकिन किमी K3 की स्थिति अलग है।
AMD ने इसके लिए लॉन्च के साथ समान समर्थन प्रदान किया है। वेफर ने कहा कि मॉडल को मूल रूप से MI355X पर सीधे चलाया जा सकता है, और आगे का कार्य मुख्य रूप से कुछ संगतता समस्याओं और प्रदर्शन अनुकूलन पर केंद्रित होगा।
अनुमानित डिकोडिंग चरण में एक समस्या उत्पन्न हुई। किमी K3 खुद MTP या EAGLE के लिए ड्राफ्ट मॉडल पैरामीटर प्रदान नहीं करता है, इसलिए Wafer ने एक बाहरी ब्लॉक डिफ्यूजन ड्राफ्ट मॉडल का उपयोग किया।
यह योजना CUDA पर सीधे चलती है, लेकिन ROCm वातावरण में, पहला वास्तविक अनुरोध स्केड्यूलर को त्रुटि देता है। कारण यह है कि ROCm शाखा में top_k_renorm_prob नामक एक फ़ंक्शन की परिभाषा नहीं है।
इस फ़ंक्शन का कार्य जटिल नहीं है: संभाव्यता वितरण से उच्चतम k मान चुनें, अन्य संभाव्यताओं को शून्य कर दें, और बचाए गए संभाव्यताओं को पुनः सामान्यीकृत करें।
वेफर ने इस लॉजिक को पूरा करने के लिए एक सामान्य PyTorch फ़ंक्शन का उपयोग किया, जिससे GPU कर्नेल को हाथ से लिखने या अनुमानित डिकोडिंग सिस्टम को पुनः डिज़ाइन करने की आवश्यकता नहीं पड़ी।
After the fix, speculative decoding improved single-stream performance by approximately 2.2x, single-stream performance under moderate concurrency by approximately 1.7x, and peak total throughput by approximately 18%.

更重要的是,系统能够在更高并发下达到峰值吞吐量。
पहला अक्षर बहुत धीमा था, अंत में केवल चार शून्य जोड़े गए
बेशक, थ्रूपुट केवल इन्फरेंस सेवा का एक हिस्सा नहीं है। वास्तविक उपयोगकर्ताओं के लिए, अनुभव को प्रत्यक्ष रूप से प्रभावित करने वाला एक और महत्वपूर्ण मापदंड TTFT है, जो अनुरोध भेजने और पहले टोकन को देखने के बीच का प्रतीक्षा समय है।
इस पर, MI355X का प्रारंभिक प्रदर्शन अच्छा नहीं था। लगभग 172,000 टोकन के शुरुआती प्री-फिलिंग कार्य के लिए, MI355X को लगभग 51 सेकंड लगे, जबकि B300 को केवल लगभग 23 सेकंड लगे।
मिलियन टोकन कॉन्टेक्स्ट के साथ मॉडल में, प्रीफिलिंग टास्क बहुत बड़ा हो सकता है। यदि लंबे कॉन्टेक्स्ट को संभालते समय, हर बार उपयोगकर्ता को कुछ दशकों या उससे अधिक प्रतीक्षा करनी पड़ती है, तो इतनी उच्च डिकोडिंग स्पीड भी अनुभव में उत्पन्न समस्याओं को पूरा नहीं कर सकती।
वेफर ने अंततः पाया कि प्रदर्शन का अंतर लगभग पूरी तरह से एक ध्यान कर्नेल से आता है। किमी K3 के 8-वे टेंसर पैरेलल कॉन्फ़िगरेशन में, प्रत्येक GPU को 12 ध्यान शीर्ष मिलेंगे। जबकि AMD AITER में तेज़ MLA प्रीफिलिंग कर्नल केवल 4, 8 या 16 के गुणज आकारों का समर्थन करता है।
12 हेड्स मेल नहीं खा रहे थे, इसलिए सिस्टम ने धीमी सामान्य Triton लागू करने को वापस कर दिया।
समाधान सरल है: 12 ध्यान शीर्षों को शून्य से 16 तक पूरा करें, मौजूदा हाई-स्पीड कर्नेल का उपयोग करें, गणना पूरी होने के बाद वास्तविक रूप से आवश्यक 12 शीर्षों को प्राप्त करें। मॉडल आर्किटेक्चर में कोई बदलाव नहीं किया गया है, और कोई नया असेम्बली कर्नेल नहीं लिखा गया है, केवल चार शून्य जोड़े गए हैं।
अनुकूलन के बाद, AITER MLA कोर की स्थिर प्री-फिलिंग गति लगभग 13,000 टोकन/सेकंड हो गई, जबकि मूल Triton फॉलबैक पथ केवल लगभग 4,000–7,000 टोकन/सेकंड था, जिससे ठंडी प्री-फिलिंग समय लगभग दो से तीन गुना कम हो गया।
This optimization does not change the final decoding throughput, but significantly reduces the time users wait for the first character to appear.
यह यह भी दर्शाता है कि AMD और NVIDIA के बीच दिखने वाला बड़ा सॉफ्टवेयर अंतर कभी-कभी नीचे की स्तर की क्षमता की कमी नहीं होती, बल्कि मौजूदा हाई-स्पीड कोर्स अभी तक किसी नए मॉडल आकार को कवर नहीं करते हैं।
CUDA की गढ़ अभी भी मौजूद है, लेकिन अब खाई दिखाई दे रही है
एक परीक्षण अवश्य ही साबित नहीं कर सकता कि AMD ने NVIDIA को पूरी तरह से पीछे छोड़ दिया है।
B200 को वीडियो मेमोरी की कमी के कारण नोड के बीच चलाना पड़ रहा है; B300 की निरपेक्ष प्रदर्शन क्षमता अभी भी अग्रणी है; ROCm के टूलचेन, फ्रेमवर्क समर्थन और डेवलपर इकोसिस्टम अभी भी CUDA की तुलना में कमजोर हैं।
लेकिन ओपन मॉडल जल्द ही ट्रिलियन पैरामीटर युग में प्रवेश कर रहे हैं। जब मॉडल इतना बड़ा हो जाए कि एक सर्वर में नहीं रखा जा सके, तो वीडियो मेमोरी क्षमता केवल पैरामीटर टेबल पर एक संख्या नहीं रह जाती, बल्कि यह संचार लागत, डिप्लॉयमेंट जटिलता और अंतिम थ्रूपुट को सीधे प्रभावित करती है।
AMD की एकल GPU पर अधिक HBM देने की रणनीति, एक व्यावहारिक सिस्टम लाभ बन रही है।
अगर AMD ROCm की स्थिरता में सुधार करता है, हाई-स्पीड कोर के आकार समर्थन को विस्तारित करता है, और नए मॉडल के लिए त्वरित दिन-प्रथम समर्थन प्रदान करता है, तो डेटासेंटर को इन GPU पर गंभीरता से विचार करना चाहिए। कीमत कम है, VRAM अधिक है, प्रदर्शन पर्याप्त है, और सॉफ़्टवेयर के लिए कई महीनों का इंतजार नहीं करना पड़ता।
आप इसके बारे में क्या सोचते हैं?
रेफरेंस लिंक:
https://x.com/wafer_ai/status/2083628389903315406
https://x.com/ChiragAsarpota/status/2083864019870634151
यह लेख वेचेन ग्रुप "मशीन सिंह" (ID: almosthuman2014) से आया है, लेखक: LLM पर ध्यान देने वाले
