DCC: Data-Centric Compilation of Machine Learning Kernels for Processing-In-Memory Architectures
यह शोध पत्र DCC प्रस्तुत करता है, जो प्रोसेसिंग-इन-मेमोरी (PIM) सिस्टम के लिए पहला डेटा-केंद्रित कंपाइलर है जो मेमोरी एक्सेस मिसमैच को दूर करने के लिए डेटा पुनर्व्यवस्था और कंप्यूट कोड को संयुक्त रूप से अनुकूलित करता है, जिससे विविध PIM आर्किटेक्चर में मशीन लर्निंग कर्नेल और लार्ज लैंग्वेज मॉडल इन्फरेंस में महत्वपूर्ण गति प्राप्त होती है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक विशाल पुस्तकालय (एक मशीन लर्निंग मॉडल) चला रहे हैं जहाँ आपको सवालों के जवाब देने के लिए विशिष्ट किताबें (डेटा) ढूँढनी हैं।
समस्या: दो अलग-अलग लाइब्रेरियन शैलियाँ
एक पारंपरिक कंप्यूटर में, आपके पास एक सुपर-फास्ट लाइब्रेरियन (GPU) है जो एक बड़े केंद्रीय कार्यालय में काम करता है। तेज़ी से काम करने के लिए, इस लाइब्रेरियन को किताबों को एक विशिष्ट तरीके से व्यवस्थित करने की आवश्यकता होती है: बुक 1, बुक 2 और बुक 3 को अलग-अलग शेल्फ पर होना चाहिए ताकि लाइब्रेरियन उन्हें एक ही समय में अलग-अलग गलियारों से उठा सके।
हालाँकि, आपके पास एक नया, सुपर-कुशल सहायक (PIM डिवाइस) भी है जो सीधे बुकशेल्फ़्स के पास काम करता है। यह सहायक पढ़ने में अविश्वसनीय रूप से तेज़ है, लेकिन यह केवल अपने विशिष्ट शेल्फ पर मौजूद किताबों तक ही पहुँच सकता है। यदि किताबें अलग-अलग गलियारों में बिखरी हुई हैं, तो सहायक को बार-बार दौड़ना पड़ेगा, जो धीमा होगा।
इस नए सहायक का उपयोग करने के लिए, आपको किताबों को फिर से व्यवस्थित करना होगा ताकि किताबें 1, 2 और 3 सहायक के लिए एक ही शेल्फ पर आ जाएँ, उन्हें अपना काम करने दें, और फिर किताबों को फिर से व्यवस्थित करना होगा ताकि उन्हें मुख्य लाइब्रेरियन के केंद्रीय कार्यालय प्रारूप में वापस रखा जा सके।
पुराना तरीका: हाथ से करना
पहले, प्रोग्रामर्स को इन किताबों को व्यवस्थित करने के सबसे अच्छे तरीके को मैन्युअल रूप से समझना पड़ता था। वे अनुमान लगाते थे: "क्या मुझे इस शेल्फ पर 10 किताबें रखनी चाहिए? या 20?" यदि उनका अनुमान गलत निकला, तो सहायक किताबों को पढ़ने के बजाय उन्हें इधर-उधर व्यवस्थित करने में अधिक समय बिता देता था। यह एक घड़ी की सुई चलते समय हाथ से पुस्तकालय को व्यवस्थित करने जैसा था—यह धीमा, त्रुटिपूर्ण और अलग-अलग पुस्तकालयों (अलग-अलग हार्डवेयर) के लिए पूरी तरह से अलग नियम आवश्यक थे।
समाधान: DCC (स्मार्ट लाइब्रेरियन का सहायक)
यह शोध पत्र DCC को पेश करता है, जो इस पुस्तकालय के लिए एक "स्मार्ट सिस्टम" के रूप में कार्य करता है। केवल यह बताने के बजाय कि सहायक को क्या पढ़ना है, DCC यह भी तय करता है कि किताबों को व्यवस्थित करने का सबसे अच्छा तरीका क्या है और सहायक को उन्हें पढ़ने के लिए बताने का सबसे अच्छा तरीका क्या है, वह भी एक साथ।
यहाँ बताया गया है कि DCC कैसे काम करता है, सरल रूपकों का उपयोग करते हुए:
यूनिवर्सल ट्रांसलेटर (मल्टी-लेयर एब्स्ट्रैक्शन):
विभिन्न पुस्तकालयों के अलग-अलग लेआउट होते हैं (कुछ में 4 गलियारे हैं, कुछ में 8)। DCC एक सार्वभौमिक भाषा बोलता है। इसे इससे फर्क नहीं पड़ता कि आप सैमसंग लाइब्रेरी का उपयोग कर रहे हैं या SK हिनिक्स (SK Hynix) लाइब्रेरी का; यह "बुक अरेंजमेंट नियमों" को एक ऐसे प्रारूप में अनुवादित करता है जिसे यह समझ सके, ताकि यह किसी भी हार्डवेयर के साथ काम कर सके।"क्या-होगा" सिम्युलेटर (डेटा-सेंट्रिक शेड्यूल जनरेटर):
अनुमान लगाने के बजाय, DCC अपने दिमाग में हजारों सिमुलेशन चलाता है। यह पूछता है: "क्या होगा यदि हम शेल्फ A पर 4 किताबें रखें? क्या होगा यदि हम 8 रखें?" यह पूरी प्रक्रिया को देखता है—शफलिंग (व्यवस्थित करने) का समय प्लस पढ़ने का समय।
- पुराना तरीका: "आइए पढ़ने की प्रक्रिया को सुपर फास्ट बनाते हैं!" (पढ़ने के समय को अनदेखा करते हुए, जबकि शफलिंग में बहुत समय लगता है)।
- DCC का तरीका: "यदि हम योजना में थोड़ा बदलाव करते हैं, तो हम शफलिंग के समय को आधा कर सकते हैं। असली विजेता यही है।" यह किताबों को इधर-उधर व्यवस्थित करने और उन्हें पढ़ने के बीच का सही संतुलन खोज लेता है।
स्पीड प्रेडिक्टर (कपल्ड परफॉरमेंस प्रेडिक्टर):
DCC एक अनुभवी कोच की तरह है जिसने हजारों मैच देखे हैं। इसे यह जानने के लिए हर एक सिमुलेशन चलाने की ज़रूरत नहीं है कि कौन सा जीतेगा। यह तुरंत सबसे तेज़ योजना का अनुमान लगाने के लिए एक "लर्निंग मॉडल" का उपयोग करता है। इसका मतलब है कि यह खराब विचारों का परीक्षण करने में समय बर्बाद नहीं करता है।ट्रैफ़िक कंट्रोलर (कोड ऑप्टिमाइज़र):
एक बार जब DCC सबसे अच्छी योजना चुन लेता है, तो यह ट्रैफ़िक को व्यवस्थित करता है। यह सुनिश्चित करता है कि जब सहायक किताबें उठाता है, तो वह उन्हें सटीक बैचों में उठाए (जैसे किताबों का पूरा ढेर एक साथ उठाना) ताकि अगली किताब का इंतज़ार करने में कोई समय बर्बाद न हो।
परिणाम: कितनी तेज़?
इस पेपर ने वास्तविक दुनिया के कार्यों पर इस सिस्टम का परीक्षण किया, जैसे कि लार्ज लैंग्वेज मॉडल्स (वह AI जो टेक्स्ट लिखता है या सवालों के जवाब देता है) चलाना।
- स्पीड बूस्ट: एक प्रकार के हार्डवेयर (AttAcc) पर, DCC ने AI को (केवल GPU की तुलना में) 13 गुना तेज़ बना दिया। दूसरे प्रकार (HBM-PIM) पर, यह 7.7 गुना तेज़ था।
- रियल-वर्ल्ड टेस्ट: AI (जैसे GPT-3 या LLaMA-2) के साथ एक पूर्ण बातचीत चलाने पर, DCC ने औसतन पूरे प्रोसेस को 4.5 गुना तेज़ कर दिया।
- "जादुई" ट्रिक: सबसे बड़ा आश्चर्य यह था कि पुराने तरीकों ने केवल "पढ़ने" वाले हिस्से को तेज़ बनाने पर ध्यान केंद्रित किया। DCC ने महसूस किया कि "शफलिंग" वाला हिस्सा वास्तव में बाधा (bottleneck) था। शफलिंग और रीडिंग दोनों को एक साथ ठीक करके, इसने भारी गति हासिल की।
सारांश में
DCC को एक व्यस्त शहर के अंतिम ट्रैफिक कंट्रोलर के रूप में सोचें। पहले, ट्रैफिक लाइटें केवल इस आधार पर सेट की जाती थीं कि कारें कितनी तेज़ चल सकती हैं, जो चौराहों पर लगने वाले जाम को अनदेखा करती थीं। DCC पूरे मानचित्र को देखता है, यह समझता है कि जाम ही समस्या है, और पूरे शहर को बहुत तेज़ी से चलाने के लिए ट्रैफिक लाइट के समय और सड़क के लेआउट को एक साथ बदल देता है।
यह पेपर दावा करता है कि यह इन नए मेमोरी डिवाइसेस पर AI कार्यों के लिए इस "संयुक्त अनुकूलन" (joint optimization) को करने वाला पहला सिस्टम है, जो इसे व्यावहारिक और भविष्य के AI के लिए अविश्वसनीय रूप से तेज़ बनाता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।