TileFuse: A Fused Mixed-Precision Kernel Library for Efficient Quantized LLM Inference on AMD NPUs
यह शोध पत्र TileFuse को प्रस्तुत करता है, जो AMD XDNA2 NPUs के लिए एक क्लोज-टू-मेटल (close-to-metal) मिक्सड-प्रिसिजन कर्नेल लाइब्रेरी है जो अनपैकिंग, डीक्वांटाइजेशन और मैट्रिक्स ऑपरेशन्स को फ्यूज करती है ताकि लोकप्रिय AWQ-शैली के क्वांटाइज्ड LLM इन्फरेंस के लिए कुशल, नेटिव सपोर्ट सक्षम किया जा सके, जिससे क्लाइंट एज डिवाइसेस पर मौजूदा बेसलाइन्स की तुलना में महत्वपूर्ण प्रदर्शन और ऊर्जा दक्षता लाभ प्राप्त होते हैं।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आपके गैरेज में एक बिल्कुल नया, सुपर-फास्ट डिलीवरी ट्रक (NPU) खड़ा है, लेकिन आपके पास जो एकमात्र रास्ता दिखाने वाला नक्शा (सॉफ्टवेयर) है, वह आपको एक धीमी, पुरानी साइकिल चलाने का तरीका बताता है। आप ट्रक की गति का उपयोग नहीं कर सकते क्योंकि नक्शे को इसकी लेन में नेविगेट करना नहीं पता है।
यही समस्या आज के नए लैपटॉप चिप्स पर आधुनिक AI चैटबॉट्स (LLMs) चलाने के साथ है। इन चिप्स में शक्तिशाली "AI इंजन" (NPUs) होते हैं जिन्हें बैटरी बचाने और तेज़ चलने के लिए डिज़ाइन किया गया है, लेकिन सॉफ्टवेयर आमतौर पर AI को इंजन के अनुकूल ढलने के बजाय, इंजन को AI के आकार में फिट होने के लिए मजबूर करता है।
TileFuse उपकरणों का एक नया सेट है जो इसे ठीक करता है। यह एक कस्टम, हाई-स्पीड हाईवे बनाने जैसा है जो विशेष रूप से ट्रक के लिए बनाया गया है, जिससे वह डेटा को फिर से पैक करने के लिए रुके बिना, कंप्रेस्ड (संक्षिप्त) डेटा के भारी भार को ले जा सके।
यहाँ यह पेपर इस समाधान को सरल उपमाओं (analogies) का उपयोग करके कैसे समझाता है:
1. समस्या: "रीपैकिंग" (पुनः पैकिंग) की बाधा
आमतौर पर, इन नए चिप्स पर AI चलाने के लिए, आपको AI के "कंप्रेस्ड" वेट्स (जो एक छोटे सूटकेस में कसकर पैक की गई किताबों की तरह हैं) को एक भारी फॉर्मेट में अनपैक करना पड़ता है (जैसे किताबों को बाहर निकालकर मेज पर फैला देना) ताकि चिप उन्हें पढ़ सके।
- पुराना तरीका: चिप सूटकेस को पढ़ता है, किताबों को अनपैक करता है, उन्हें एक अलग सूटकेस में वापस रखता है, और फिर पढ़ना शुरू करता है। इससे समय और ऊर्जा दोनों बर्बाद होते हैं।
- TileFuse का तरीका: चिप सूटकेस को पढ़ता है, उसे खोलता है, और किताबों को जबकि वे अभी भी अनपैक हो रही होती हैं, तभी पढ़ना शुरू कर देता है। यह सब एक ही सुचारू गति में होता है।
2. समाधान: "फ्यूज्ड" (जुड़े हुए) कर्नेल्स
लेखकों ने TileFuse नामक एक लाइब्रेरी बनाई है। एक "कर्नेल" को चिप के लिए एक विशिष्ट निर्देश पुस्तिका (instruction manual) के रूप में समझें।
- फ्यूजन (Fusion): तीन अलग-अलग श्रमिकों (एक अनपैक करने के लिए, एक बदलने के लिए, और एक गणना करने के लिए) के बजाय, TileFuse उन्हें एक "सुपर-वर्कर" में मिला देता है। यह वर्कर कंप्रेस्ड डेटा को पकड़ता है, उसे ऑन-द-फ्लाई (चलते-चलते) बदलता है, और सारा गणित एक ही बार में कर देता है।
- परिणाम: यह एक ऐसे शेफ की तरह है जो केवल सब्जियां काटता ही नहीं; वह एक ही निरंतर गति में उन्हें काटता है, मसाले लगाता है और पकाता भी है। पेपर का दावा है कि यह कुछ कार्यों के लिए पुराने तरीकों की तुलना में "अनपैकिंग" वाले हिस्से को 2.8 गुना तेज़ बना देता है।
3. "इंटरलीव्ड" (Interleaved) लेआउट: वेयरहाउस का प्रबंधन
बड़े AI मॉडल में संख्याओं की विशाल सूचियाँ (weights) होती हैं। चिप के मेमोरी सिस्टम की एक सीमा होती है कि वह अगला डेटा प्राप्त करने के लिए कितनी दूर तक पहुँच सकता है। यदि डेटा बिखरा हुआ और अव्यवस्थित तरीके से संग्रहीत है, तो चिप को अगला टुकड़ा लेने के लिए लंबी और धीमी यात्रा करनी पड़ती है।
- उपमा: कल्पना कीजिए कि एक वेयरहाउस है जहाँ बक्से बेतरतीब ढंग से रखे गए हैं। एक फोर्कलिफ्ट को अगला बक्सा लेने के लिए 50 फीट तक ड्राइव करना पड़ता है।
- TileFuse का समाधान: वे वेयरहाउस को पुनर्गठित करते हैं (जिसे "Interleaved Pre-tiling" कहा जाता है) ताकि फोर्कलिफ्ट को जिस अगले बॉक्स की आवश्यकता है, वह ठीक उसके बगल में हो। यह चिप को एक ही सुचारू स्वीप में डेटा के बड़े हिस्से को पकड़ने की अनुमति देता है, जिससे पहले न समा पाने वाले बहुत बड़े AI मॉडल (32,000 आइटम तक चौड़े) को भी सपोर्ट मिलता है।
4. "GEMV" की समस्या: ट्रैफिक जाम
AI चैटबॉट्स दो चरणों में काम करते हैं:
- प्रीफिलिंग (Prefilling): एक लंबे प्रॉम्प्ट को एक साथ पढ़ना (जैसे पूरी किताब पढ़ना)। यह तेज़ और आसान है।
- टोकन जनरेशन (Token Generation): एक बार में एक शब्द लिखना (जैसे एक वाक्य लिखना)। यह धीमा और कठिन है।
- समस्या: जब एक-एक शब्द लिखने की बात आती है, तो चिप का "ट्रक" अक्सर खाली बैठा रहता क्योंकि वह भारी भार उठाने के लिए डिज़ाइन किया गया है, छोटे भार के लिए नहीं। यह एक सेमी-ट्रक का उपयोग करके एक अकेला पत्र डिलीवर करने जैसा है; इंजन चल रहा है, लेकिन ट्रक खाली है।
- समाधान: TileFuse ने इस चरण के लिए ट्रैफिक फ्लो को फिर से डिज़ाइन किया है। डेटा को केवल हाईवे की एक लेन में भेजने के बजाय, यह काम को चिप की सभी 32 लेन में एक साथ वितरित करता है। यह पूरे इंजन को व्यस्त रखता है, भले ही "लोड" छोटा हो।
5. वास्तविक दुनिया के परिणाम
टीम ने वास्तविक AMD लैपटॉप (Ryzen AI) पर इसका परीक्षण किया और इसकी तुलना लैपटॉप के मानक ग्राफिक्स कार्ड (iGPU) से की।
- गति: लंबे प्रॉम्प्ट को पढ़ने (prefilling) के लिए, TileFuse के साथ NPU ग्राफिक्स कार्ड की तुलना में 2 गुना तेज़ था।
- बैटरी: क्योंकि NPU अधिक कुशल है, इसने उसी काम को करने के लिए 64% कम ऊर्जा का उपयोग किया।
- चुनौती: एक-एक शब्द लिखने (token generation) के दौरान, NPU कभी-कभी ग्राफिक्स कार्ड से धीमा था। ऐसा इसलिए है क्योंकि इतने छोटे, त्वरित कार्यों के लिए NPU को कॉन्फ़िगर करने का "सेटअप समय" बहुत लंबा है।
- हाइब्रिड समाधान: पेपर एक "दोनों दुनियाओं का सर्वश्रेष्ठ" दृष्टिकोण सुझाता है: भारी काम (लंबे प्रॉम्प्ट पढ़ने) के लिए NPU का उपयोग करें और त्वरित कार्यों (शब्द लिखने) के लिए ग्राफिक्स कार्ड का उपयोग करें। यह संयोजन सबसे अच्छी गति और बैटरी लाइफ देता है।
सारांश
TileFuse एक सेतु (bridge) है। यह उन लोकप्रिय, कंप्रेस्ड AI फॉर्मेट्स को लेता है जिनका डेवलपर्स पहले से ही उपयोग कर रहे हैं (जैसे AWQ) और उन्हें बिना AI मॉडल बदले, AMD के नए AI चिप्स पर नेटिव रूप से चलाने में सक्षम बनाता है। अनपैकिंग और गणितीय चरणों को फ्यूज करके, डेटा को सटीक रूप से व्यवस्थित करके, और चिप की सभी लेनों की पूरी शक्ति का उपयोग करके, यह लैपटॉप पर AI चलाना काफी तेज़ और अधिक ऊर्जा-कुशल बनाता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।