सीखें कि AI एजेंटों के साथ GPU त्वरण के लिए अपाचे स्पार्क उपयोगकर्ता-परिभाषित कार्यों को कैसे फिर से लिखना है
NVIDIA cuDF कौशल GPU त्वरण के लिए स्पार्क उपयोगकर्ता-परिभाषित कार्यों को फिर से लिखने के लिए AI एजेंटों का उपयोग करते हैं, CPU फॉलबैक से बचते हैं और 22x + द्वारा नौकरियों को बढ़ावा देते हैं।
मुख्य जानकारी
- NVIDIA ने Apache Spark के लिए क्यूडीएफ कौशल पेश किया, एआई-एजेंट-निर्देशित वर्कफ़्लो जो टीमों को स्पार्क उपयोगकर्ता द्वारा परिभाषित कार्यों को GPU - त्वरित समकक्षों में फिर से लिखने में मदद करते हैं, जिसमें 20 गुना से अधिक की गति होती है।
- Custom Spark UDFs GPU त्वरण लाभों को मिटा सकता है क्योंकि वे डेटा को GPU स्तंभात्मक प्रारूप से CPU पंक्तिवार निष्पादन में स्थानांतरित करने के लिए मजबूर करते हैं, ट्रांसफर ओवरहेड जोड़ते हैं और समानांतर कंप्यूटिंग प्रदर्शन खो देते हैं।
- टीमें तीन पुनर्लेखन पथों के माध्यम से यूडीएफ को तेज कर सकती हैंः सरल तर्क के लिए स्पार्क अभिव्यक्ति भाषा, सामान्य मध्यम जटिल मामलों के लिए cuDF APIs , और सबसे जटिल या प्रदर्शन-महत्वपूर्ण कार्य के लिए CUDA कर्नेल।
- cuDF कौशल पैकेज यूडीएफ पुनर्लेखन को परीक्षण, रूपांतरण, बेंचमार्किंग और अनुकूलन लूप के साथ एक दोहराए जाने वाले एजेंट वर्कफ़्लो में बदल देता है, जो परियोजना टेम्पलेट्स और GPU programming सर्वोत्तम प्रथाओं द्वारा समर्थित हैं।
NVIDIA ने Apache Spark के लिए cuDF कौशल पेश किया है, एआई-एजेंट कौशल का एक सेट जो मिनटों में उपयोगकर्ता द्वारा परिभाषित कार्यों को GPU - त्वरित समकक्षों में फिर से लिखकर टीमों का मार्गदर्शन करता है, जिसमें Apache Spark नौकरियों में 22x + स्पीडअप की सूचना दी जाती है। इन कौशलों का उद्देश्य डेटा इंजीनियर और प्लेटफ़ॉर्म टीमें हैं जो GPUs पर Apache Spark पाइपलाइन चलाती हैं और उन्हें कस्टम बिजनेस लॉजिक को सीपीयू पर वापस मजबूर करने से रोकने की आवश्यकता होती है।
कस्टम स्पार्क तर्क क्यों GPU त्वरण मिटा सकते हैं
एंटरप्राइज़ एप्लिकेशन अधिक मांग बन गए हैं, और एजेंटिक AI ने बड़े पैमाने पर उद्यम डेटा की आवश्यकता को बढ़ा दिया है, लगातार जटिल प्रश्नों के साथ-साथ तेजी से बड़े datasets में काम करते हुए। यह लागत में आनुपातिक वृद्धि के बिना डेटा थ्रूपुट के लिए बार उठाता है। NVIDIA cuDF इस चुनौती का समाधान करता है डेटा एनालिटिक्स के लिए GPUs के विशाल समानांतरवाद और उच्च- bandwidth मेमोरी का उपयोग करके। Apache Spark के लिए cuDF प्लगइन उस त्वरण को Apache Spark, प्रसंस्करण और विश्लेषण के लिए एक अग्रणी मंच लाता है, जिसका उद्देश्य प्रमुख कार्यभार में स्वामित्व के परिणामों की कुल लागत में सुधार करना है।
शेष बाधा अक्सर कस्टम कोड होती है। स्पार्क का घोषणात्मक programming इंटरफ़ेस अलग करता है कि एक क्वेरी को कैसे निष्पादित किया जाना चाहिए और सिस्टम को इसे कैसे निष्पादन करना चाहिए। यह अलगाव cuDF प्लगइन को पारदर्शी रूप से GPU समानांतर क्षमताओं का उपयोग करके पंक्ति-वार संचालन को समान रूप से संरेखित करने की अनुमति देता है, बिना उपयोगकर्ता कोड में परिवर्तन की आवश्यकता के।
उपयोगकर्ता-परिभाषित फ़ंक्शंस उस अमूर्तता को तोड़ते हैं। वे अंतर्निहित कार्यक्षमता का विस्तार करने के लिए उपयोग की जाने वाली कस्टम दिनचर्याएं हैं, जो उन्हें bespoke व्यवसाय तर्क के लिए उपयोगी बनाती है। लेकिन उनमें मनमाने ढंग से यूजर कोड होता है जिसके बारे में सिस्टम सामान्य तरीके से कारण या समानांतर नहीं कर सकता है। निष्पादन के दौरान, GPU त्वरक को डेटा को स्तंभबद्ध प्रारूप से पंक्तिवार प्रारूप में परिवर्तित करना होगा, वापस CPU पर गिरना होगा, और पंक्ति दर पंक्ति फ़ंक्शन निष्पादित करना होगा।
उस बैकअप की दो मुख्य लागतें हैं. पहला, यह एक राउंड-ट्रिप डेटा ट्रांसफर ओवरहेड पेश करता है। दूसरा, फ़ंक्शन कंप्यूटिंग स्पीड अप को छोड़ देता है यदि इसे GPU -एक्सेलेरेटेड प्रिमिटिव्स का उपयोग करके लिखा गया होता। अन्यथा त्वरित क्वेरी में, एक एकल उपयोगकर्ता द्वारा परिभाषित फंक्शन इसलिए पाइपलाइन को GPUs पर ले जाने के लाभ को मिटा सकता है।
स्पार्क पाइपलाइनों के लिए तीन पुनर्लेखन पथ
एक छोटे, लक्षित कोड परिवर्तन के साथ, कई उपयोगकर्ता-परिभाषित फ़ंक्शंस को सही आदिम का उपयोग करके GPU -acceleratable रूप में फिर से लिखा जा सकता है। पुनर्लेखन त्वरक फॉलबैक ओवरहेड को हटा देता है और NVIDIA के अनुसार 20x से अधिक की गति प्रदान कर सकता है ।
जटिलता और नियंत्रण के क्रम में तीन मुख्य दृष्टिकोण हैंः
- स्पार्क अभिव्यक्ति भाषा: कम जटिलता और उच्चतम स्तर की अमूर्तता। यह सरल संबंधपरक तर्क के लिए सबसे अच्छा है, जैसे कि छोटे या इनलाइन किए गए फ़ंक्शन।
- cuDF APIs : मध्यम जटिलता, निष्पादन पर अधिक लचीलेपन और नियंत्रण के साथ। यह कई सामान्य मामलों के लिए सबसे अच्छा है, जिसमें मध्यम रूप से जटिल तर्क जैसे स्ट्रिंग पार्सिंग और नेस्टेड प्रकार शामिल हैं।
- CUDA कर्नेल: उच्च जटिलता, अधिकतम लचीलेपन और कर्नल-स्तरीय नियंत्रण के साथ। यह सबसे जटिल या प्रदर्शन-महत्वपूर्ण तर्क के लिए सर्वश्रेष्ठ है।
एक सरल स्काला उपयोगकर्ता-परिभाषित फ़ंक्शन जो तापमान को सेल्सियस से फारेनहाइट में परिवर्तित करता है, इस विचार को दर्शाता है।
सरल मामलों के लिए, सबसे सीधा मार्ग उपयोगकर्ता-परिभाषित फ़ंक्शन को समकक्ष स्पार्क अभिव्यक्ति से बदलना है। इससे स्पार्क एक्सप्रेशन ट्री में तर्क दिखाई देता है। क्वेरी योजना के दौरान, cuDF प्लगइन उन अभिव्यक्तियों को संबंधित GPU कार्यान्वयनों के साथ प्रतिस्थापित कर सकता है, डेटा और निष्पादन पर रखकर GPU.
जब उच्च-स्तरीय अभिव्यक्तियाँ अपर्याप्त या अवांछनीय होती हैं, तो फ़ंक्शन इसके बजाय रैपिड्सयूडीएफ इंटरफ़ेस का उपयोग करके सीधे GPU कॉलम पर संचालित कर सकता है, जो कि क्यूडीएफ प्लगइन द्वारा प्रदान किया गया एक अनुबंध है। इस अनुबंध के लिए केवल एक विधि की आवश्यकता होती है, evaluateColumnar. cuDF प्लगइन्स RapidsUDF इंटरफेस के उदाहरणों को पहचानता है और GPU -निवासी स्तंभवेक्टर को Columnar का मूल्यांकन करने के लिए पास करता है। फंक्शन तब समानांतर में स्तंभ को संसाधित करने के लिये क्यूडीएफ़ संचालन के लिए Java API से ऑपरेशन बनाता है।
अत्यधिक जटिल तर्क के लिए जो मौजूदा क्यूडीएफ संचालन से कुशलतापूर्वक नहीं बनाया जा सकता है, एक रैपिड्सयूडीएफ Java Native Interface के माध्यम से कस्टम CUDA कर्नेल को आह्वान कर सकता है। NVIDIA नोट करता है कि ऐसे रूपांतरणों के उदाहरण स्पार्क उपयोगकर्ता-परिभाषित कार्यों के लिए cuDF उदाहरणों में पाए जा सकते हैं।
एजेंट कौशल एक दोहराने योग्य कार्यप्रवाह में rewrites बारी
प्रदर्शन लाभों के बावजूद, उपयोगकर्ता-परिभाषित कार्यों को फिर से लिखने में महत्वपूर्ण इंजीनियरिंग प्रयास की आवश्यकता हो सकती है। यह सावधानीपूर्वक API चयन, सिमेंटिक सत्यापन और प्रदर्शन माप की मांग करता है। वेक्टर programming में कम अनुभव वाले चिकित्सकों के लिए Columnar APIs भी अपरिचित हो सकता है।
उस कार्य का अधिकांश भाग कोडिंग एजेंटों के लिए अच्छी तरह से अनुकूल है। उचित गार्डरेल के साथ, एक एजेंट अपरिचित APIs की खोज कर सकता है, उम्मीदवार पुनर्लेखन लागू कर सकता हैं और निष्पादन योग्य परीक्षण और प्रदर्शन माप निर्धारित करते समय जल्दी से पुनरावृत्ति कर सकते हैं कि क्या प्रत्येक परिवर्तन स्वीकार्य है या नहीं।
Apache Spark के लिए cuDF कौशल रीराइट को चार केंद्रित फीडबैक लूप में विघटित करते हैंः परीक्षण, रूपांतरण, बेंचमार्किंग और अनुकूलन। प्रत्येक कौशल अगले चरण पर जाने से पहले प्रदर्शन करने वाले कार्य और आवश्यक साक्ष्य दोनों को परिभाषित करता है।
विश्वसनीय एजेंट निष्पादन एक विश्वसनीय विकास वातावरण के साथ शुरू होता है। कौशल एक पूर्ण परियोजना टेम्पलेट प्रदान करते हैं जिसमें एंड-टू-एंड विकास के लिए आवश्यक cuDF और स्पार्क विशिष्ट मचान शामिल होते हैं। इसमें परीक्षण और बेंचमार्क हार्नेस, आउटपुट सत्यापन के लिए एन्कोडेड रूटीन और बिल्ड कॉन्फ़िगरेशन शामिल हैं। उस ज्ञान को कोड में एनकोडिंग करके, एजेंट बार-बार विशेष बुनियादी ढांचे का पुनर्निर्माण करने के बजाय फ़ंक्शन पर ध्यान केंद्रित कर सकता है।
कौशल में क्यूडीएफ के साथ GPU programming के लिए सर्वोत्तम प्रथाएं भी शामिल हैं, जिसमें मेमोरी प्रबंधन और कॉन्फ़िगरेशन शामिल है। इनका उद्देश्य कठोर चेकलिस्ट की बजाय एक सलाहकार संदर्भ के रूप में है। एजेंट आसपास के संदर्भ के आधार पर विभिन्न कार्यान्वयनों का पता लगाने और मापी गई शुद्धता और प्रदर्शन के अनुसार एक दृष्टिकोण चुनने के लिए स्वतंत्र रहता है।
उत्पादन के आंकड़े क्या बताते हैं
एक प्रमुख उपभोक्ता technology company ने उत्पादन डेटा पाइपलाइनों में उपयोग किए जाने वाले 30+ उपयोगकर्ता-परिभाषित कार्यों को GPU - त्वरित कार्यान्वयन में परिवर्तित करने के लिए इस वर्कफ़्लो का इस्तेमाल किया। रीराइट्स ने मूल CPU उपयोगकर्ता-निर्धारित फ़ंक्शंस के व्यवहार को संरक्षित करते हुए अन्यथा GPU - त्वरित कार्यभार से महंगे फॉलबैक को हटा दिया।
एक उदाहरण में, NVIDIA की रिपोर्ट है कि cuDF के साथ उत्पादन CPU आधारित उपयोगकर्ता-परिभाषित फ़ंक्शन को फिर से लिखना ऑपरेटर का समय 274.55 से घटाकर 12.78 घंटे कर दिया गया था, जो 600 अरब पंक्ति कार्यभार पर 22 गुना तेजी थी। यह विशेष फ़ंक्शंस 3,000+ नौकरियों को प्रभावित कर रहा था।
रिपोर्ट किए गए परिणाम JUST एक-कार्यात्मक बेंचमार्क नहीं है। स्पार्क टीमों के लिए मूल्य यह है कि GPU त्वरण अक्सर कस्टम तर्क की जेब से सीमित होता है, मुख्य पाइपलाइन द्वारा नहीं। एजेंट कौशल को पुनर्लेखन प्रक्रिया को अधिक दोहराए जाने योग्य बनाने के लिए डिज़ाइन किया गया है, इसलिए प्रैक्टिशनर सटीकता बनाए रखते हुए दिनों या हफ्तों के बजाय घंटों के क्रम में पुनरावृत्ति कर सकते हैं।
NVIDIA का कहना है कि Apache Spark के लिए cuDF कौशल GitHub पर उपलब्ध हैं और इसे सीधे या एनपीएक्स स्किल इंस्टॉलर के माध्यम से स्थापित किया जा सकता है। कंपनी एक डेटा + AI Summit सत्र की ओर भी इशारा करती है और स्पार्क पाइपलाइनों में GPU त्वरण का मूल्यांकन करने वाली टीमों के लिए शुरू-शुरू मार्गदर्शिका के लिए Apache Spark के लिए एक क्यूडीएफ प्लगइन।

Comments (0)