Hardware accelerators, especially those designed for tensor processing, have become ubiquitous in today's computing landscape. However, even with significant efforts in building compilers, programming these tensor accelerators remains challenging, leaving much of their potential underutilized. Recently, large language models (LLMs), trained on large amounts of code, have shown significant promise in code generation and optimization tasks, but generating low-resource languages, such as specialized tensor accelerator code still poses a significant challenge. We tackle this challenge with Autocomp, an approach that empowers accelerator programmers to leverage domain knowledge and hardware feedback to optimize code via an automated LLM-driven search. We accomplish this by: 1) formulating each optimization pass as a structured two-phase prompt, divided into planning and code generation phases, 2) inserting domain knowledge during planning via a concise and adaptable optimization menu, and 3) integrating correctness and performance metrics from hardware as feedback at each search iteration. Across three distinct hardware platforms, we demonstrate that Autocomp-optimized code runs 5.6x faster than the vendor-provided library (Gemmini), outperforms expert-level hand-tuned code by 1.9x (AWS Trainium), and achieves 3.8x higher performance than a machine learning-based cost model for GPUs (NVIDIA L40S). Additionally, we demonstrate that optimization schedules generated from Autocomp can be reused across similar tensor operations, improving speedups by up to 24% under a fixed sample budget.
academic- पेपर ID: 2505.18574
- शीर्षक: Autocomp: A Powerful and Portable Code Optimizer for Tensor Accelerators
- लेखक: Charles Hong, Sahil Bhatia, Alvin Cheung, Yakun Sophia Shao (UC Berkeley)
- वर्गीकरण: cs.PL cs.AI cs.AR cs.LG
- प्रकाशन स्थिति: प्रीप्रिंट। समीक्षा के अधीन।
- पेपर लिंक: https://arxiv.org/abs/2505.18574
हार्डवेयर एक्सेलेरेटर, विशेषकर टेंसर प्रसंस्करण के लिए डिज़ाइन किए गए, आज के कंप्यूटिंग वातावरण में सर्वव्यापी हैं। हालांकि, कंपाइलर निर्माण में भारी प्रयास के बावजूद, इन टेंसर एक्सेलेरेटर को प्रोग्राम करना अभी भी चुनौतीपूर्ण है, जिससे इसकी क्षमता का अधिकांश भाग अपूर्ण रहता है। यह पेपर Autocomp प्रस्तावित करता है, जो LLM-संचालित स्वचालित खोज के माध्यम से कोड को अनुकूलित करने की एक विधि है, जो एक्सेलेरेटर प्रोग्रामर को डोमेन ज्ञान और हार्डवेयर प्रतिक्रिया का लाभ उठाने में सक्षम बनाती है। यह विधि तीन मुख्य तकनीकों के माध्यम से कार्यान्वित की जाती है: 1) प्रत्येक अनुकूलन प्रक्रिया को संरचित दो-चरणीय प्रॉम्प्ट में तैयार करना, जिसे योजना और कोड पीढ़ी चरणों में विभाजित किया जाता है; 2) योजना अवधि के दौरान संक्षिप्त और अनुकूलनीय अनुकूलन मेनू के माध्यम से डोमेन ज्ञान को शामिल करना; 3) प्रत्येक खोज पुनरावृत्ति में हार्डवेयर से सही्ता और प्रदर्शन मेट्रिक्स को प्रतिक्रिया के रूप में एकीकृत करना।
टेंसर एक्सेलेरेटर प्रोग्रामिंग की मुख्य चुनौतियों में शामिल हैं:
- प्रोग्रामिंग जटिलता: सामान्य CPU प्रोग्रामिंग के विपरीत, टेंसर एक्सेलेरेटर को डेटा आंदोलन, कॉन्फ़िगरेशन स्थिति और ऑपरेशन शेड्यूलिंग के स्पष्ट प्रबंधन की आवश्यकता होती है
- कंपाइलर अनुकूलन लागत: नए हार्डवेयर प्लेटफॉर्म के लिए पारंपरिक कंपाइलर को अनुकूलित करने के लिए भारी इंजीनियरिंग कार्य की आवश्यकता होती है, सॉफ्टवेयर विकास लागत नए हार्डवेयर विकास लागत का 40-50% है
- अनुकूलन शेड्यूलिंग समस्या: यह निर्धारित करने की संयोजक विस्फोट समस्या कि कौन से अनुकूलन लागू करें और किस क्रम में
- कम संसाधन भाषा चुनौतियां: विशेष एक्सेलेरेटर के निर्देश सेट आर्किटेक्चर (ISA) और DSL LLM प्रशिक्षण कॉर्पस में अपर्याप्त रूप से प्रतिनिधित्व किए जाते हैं
- पारंपरिक कंपाइलर: XLA, TVM, Triton आदि केवल कुछ हार्डवेयर बैकएंड का समर्थन करते हैं, मुख्य रूप से CPU और GPU
- DSL दृष्टिकोण: Halide, Exo आदि टेंसर गणना के लिए आदिम प्रदान करते हैं, लेकिन अनुकूलन का बोझ अभी भी प्रोग्रामर पर है
- डेटा-संचालित विधियां: प्रशिक्षण के लिए बड़ी मात्रा में प्रदर्शन डेटा की आवश्यकता होती है, जो डोमेन-विशिष्ट हार्डवेयर एक्सेलेरेटर के लिए अत्यंत दुर्लभ है
- सीधा LLM अनुप्रयोग: कम संसाधन एक्सेलेरेटर भाषाओं के लिए, शून्य-शॉट कोड पीढ़ी अत्यधिक अविश्वसनीय है
- कम संसाधन टेंसर एक्सेलेरेटर कोड अनुकूलन के लिए पहली LLM-संचालित विधि: Autocomp फ्रेमवर्क प्रस्तावित करना, जो विशेष हार्डवेयर एक्सेलेरेटर के लिए विशेष रूप से डिज़ाइन किया गया है
- अत्यधिक पोर्टेबल अनुकूलन फ्रेमवर्क: प्रॉम्प्ट को संशोधित करके नए हार्डवेयर प्लेटफॉर्म के लिए अनुकूलन, इंजीनियरिंग लागत में भारी कमी
- उत्कृष्ट प्रदर्शन: तीन विभिन्न हार्डवेयर प्लेटफॉर्म पर मौजूदा विधियों से महत्वपूर्ण रूप से बेहतर
- शेड्यूलिंग पुनः उपयोग तंत्र: यह प्रमाणित करना कि अनुकूलन शेड्यूलिंग समान टेंसर ऑपरेशन के बीच पुनः उपयोग की जा सकती है, नमूना दक्षता में सुधार
इनपुट: अनुकूलित टेंसर एक्सेलेरेटर कोड
आउटपुट: कार्यात्मक रूप से समतुल्य लेकिन प्रदर्शन-अनुकूलित कोड
बाधाएं: शब्दार्थ समतुल्यता बनाए रखना, हार्डवेयर सत्यापन के माध्यम से सही्ता सुनिश्चित करना
प्रॉम्प्ट संरचना में शामिल हैं:
- एक्सेलेरेटर ISA विवरण: निर्देश शब्दार्थ, मेमोरी पता विनियम, हार्डवेयर संरचना विवरण
- वर्तमान कोड: अनुकूलित किए जाने वाले कोड
- प्रदर्शन प्रतिक्रिया: विलंबता (चक्र संख्या), मेमोरी उपयोग दर आदि मेट्रिक्स
- अनुकूलन मेनू: पूर्वनिर्धारित उच्च-स्तरीय अनुकूलन विकल्प (जैसे लूप टाइलिंग, पुनः क्रमबद्धता, संलयन आदि)
- खोज पुनरावृत्ति जानकारी: वर्तमान पुनरावृत्ति संख्या, अनुकूलन चयन को निर्देशित करने के लिए
प्रॉम्प्ट संरचना में शामिल हैं:
- एक्सेलेरेटर ISA विवरण: चरण 1 के समान
- वर्तमान कोड: चरण 1 के समान
- उत्पन्न योजना: चरण 1 आउटपुट की विशिष्ट अनुकूलन योजना
- संदर्भ सीखने के उदाहरण: जटिल अनुकूलन (जैसे टाइलिंग) के लिए कोड उदाहरण
- कार्यान्वयन निर्देश: योजना लागू करने और अनुकूलित कोड आउटपुट करने के लिए प्राकृतिक भाषा निर्देश
- चौड़ाई B=6 की बीम खोज, कई अनुकूलन प्रक्षेपवक्र को समानांतर में अन्वेषण करना
- सही्ता फिल्टरिंग: कार्यात्मक परीक्षण सूट के माध्यम से उम्मीदवार कोड को सत्यापित करना
- प्रदर्शन छनन: केवल माता-पिता नोड से बेहतर प्रदर्शन वाले उम्मीदवारों को रखना
- पुनरावृत्तिमूलक अनुकूलन: निश्चित बजट T पुनरावृत्तियों की खोज प्रक्रिया
- अनुकूलन मेनू ड्रॉपआउट: प्रत्येक योजना के समय यादृच्छिक रूप से मेनू विकल्पों का हिस्सा हटाना (70% संभावना)
- LLM एकीकरण: कई LLM के बीच अनुरोध वितरित करके प्रतिक्रिया विविधता बढ़ाना
- वास्तविक समय प्रदर्शन मेट्रिक्स (विलंबता, मेमोरी उपयोग दर) अगले अनुकूलन चयन को निर्देशित करते हैं
- चक्र-सटीक सिमुलेशन या चिप-स्तरीय प्रदर्शन माप
- उच्च-गुणवत्ता वाली शेड्यूलिंग अनुक्रम रिकॉर्ड करना
- समान टेंसर ऑपरेशन (समान पहलू अनुपात या साझा आयाम) के लिए ज्ञात शेड्यूलिंग पुनः उपयोग करना
- आगे के अनुकूलन के लिए हल्के-फुल्के खोज के बाद
- Gemmini: ओपन-सोर्स एक्सेलेरेटर जनरेटर, सिस्टोलिक ऐरे और वेक्टर-शैली टेंसर एक्सेलेरेटर का समर्थन करता है
- AWS Trainium: वाणिज्यिक उच्च-प्रदर्शन टेंसर एक्सेलेरेटर, Neuron Kernel Interface (NKI) का उपयोग करता है
- NVIDIA L40S GPU: आधुनिक डेटा सेंटर GPU, समर्पित Tensor Core शामिल है
- Gemmini: ResNet-50 के GEMM और कनवल्शन, TinyMPC मॉडल भविष्य कहनेवाला नियंत्रण
- Trainium: ट्यूटोरियल-स्तरीय और उन्नत गहन शिक्षण ऑपरेटर (RMSNorm, LayerNorm, GEMM, Mamba आदि)
- GPU: KernelBench Level 1 बेंचमार्क परीक्षण
- उच्च-स्तरीय सॉफ्टवेयर लाइब्रेरी: Gemmini सॉफ्टवेयर लाइब्रेरी, PyTorch NeuronX, PyTorch
- अनुकूलित कम-स्तरीय कोड: Exo अनुकूलित, nki-samples ट्यूटोरियल कोड
- हस्तनिर्मित अनुकूलित कोड: विशेषज्ञ-स्तरीय मैनुअल ट्यूनिंग कार्यान्वयन
- ML लागत मॉडल: TVM MetaSchedule (GPU)
- हार्डवेयर FSM: Gemmini हार्डवेयर परिमित स्थिति मशीन (संदर्भ ऊपरी सीमा)
- GEMM बेंचमार्क: Gemmini सॉफ्टवेयर लाइब्रेरी की तुलना में 5.6× सुधार, विशेषज्ञ हस्तनिर्मित अनुकूलित कोड से 1.4× बेहतर
- कनवल्शन बेंचमार्क: सॉफ्टवेयर लाइब्रेरी की तुलना में 2.6× सुधार, हस्तनिर्मित अनुकूलन से 1.1× बेहतर
- सूक्ष्म-दानेदार रैखिक बीजगणित: अनुकूलित कोड से 2.7× बेहतर, यहां तक कि विशेषज्ञ-अनुकूलित हार्डवेयर FSM कार्यान्वयन से 1.6× बेहतर (आगे की पास)
- ट्यूटोरियल कार्यभार: हस्तनिर्मित अनुकूलित कोड से 1.36× बेहतर (ज्यामितीय माध्य), PyTorch NeuronX संकलित कोड से 13.52× बेहतर
- उन्नत कार्यभार: विशेषज्ञ-स्तरीय अनुकूलित कोड से 1.9× बेहतर (ज्यामितीय माध्य), 1D गहन कनवल्शन में 17.37× तक सुधार
- KernelBench बेंचमार्क: PyTorch से 2.05× बेहतर (ज्यामितीय माध्य), TVM MetaSchedule से 3.8× बेहतर
- सभी बेंचमार्क में PyTorch से बेहतर, जबकि TVM केवल 2 बेंचमार्क में PyTorch से बेहतर है
विभिन्न घटकों के महत्व को सत्यापित करने के लिए विस्तृत विलोपन प्रयोग:
- एक्सेलेरेटर ISA: हटाने के बाद प्रदर्शन में उल्लेखनीय गिरावट, लेकिन अभी भी सुधार प्राप्त कर सकता है
- अनुकूलन मेनू: पूरी तरह आवश्यक, हटाने के बाद अनुकूलन प्रदर्शन पूरी तरह खराब हो जाता है
- मेनू ड्रॉपआउट: प्रदर्शन को महत्वपूर्ण रूप से प्रभावित करता है, मॉडल को सीमित मेनू विकल्पों की ओर पूर्वाग्रह से रोकता है
- LLM एकीकरण: महत्वपूर्ण विविधता प्रदान करता है, एकल मॉडल कम प्रदर्शन करता है
- हार्डवेयर प्रदर्शन प्रतिक्रिया: सहायक लेकिन प्रभाव सीमित है, क्योंकि अनुकूलन मेनू पहले से ही प्रासंगिक मेट्रिक्स शामिल करता है
- 100 नमूना बजट के तहत: शेड्यूलिंग पुनः उपयोग 4.6× त्वरण प्राप्त करता है, पुनः उपयोग के बिना केवल 3.7×
- 200 नमूना बजट के तहत: शेड्यूलिंग पुनः उपयोग 5.0× त्वरण प्राप्त करता है, पुनः उपयोग के बिना केवल 4.2×
- शेड्यूलिंग की सामान्यीकरणशीलता को प्रमाणित करता है, समान बेंचमार्क के लिए खोज लागत को प्रभावी ढंग से कम करता है
- प्रदर्शन मॉडल: Timeloop, MAESTRO उच्च-स्तरीय हार्डवेयर आर्किटेक्चर मॉडल का उपयोग करते हैं
- स्वचालित विधियां: मशीन लर्निंग, रैखिक प्रोग्रामिंग, ब्लैक-बॉक्स अनुकूलन, सुदृढ़ शिक्षा
- सीमाएं: मौजूदा अमूर्तता कार्यान्वयन-विशिष्ट और निर्देश-स्तरीय अनुकूलन को अनदेखा करती है
- अनुप्रयोग की सीमा: विकास खोज, पुनः प्राप्ति-संवर्धित पीढ़ी, पुनरावृत्तिमूलक अनुकूलन, मॉडल पश्च-प्रशिक्षण
- सिस्टम-स्तरीय अनुकूलन: CUDA, SIMD आंतरिक कार्य
- अनुसंधान अंतराल: विशेष हार्डवेयर (गैर-CPU/GPU) के लिए LLM कोड अनुकूलन कार्य की कमी
- LLM-संचालित अनुकूलन की प्रभावशीलता: Autocomp कई हार्डवेयर प्लेटफॉर्म पर पारंपरिक विधियों से महत्वपूर्ण रूप से बेहतर है
- अत्यधिक उच्च पोर्टेबिलिटी: केवल प्रॉम्प्ट को संशोधित करके नए हार्डवेयर के लिए अनुकूलन, इंजीनियरिंग लागत अत्यंत कम है
- शेड्यूलिंग पुनः उपयोग का मूल्य: अनुकूलन शेड्यूलिंग अच्छी सामान्यीकरणशीलता प्रदर्शित करती है, नमूना दक्षता में महत्वपूर्ण सुधार कर सकती है
- दो-चरणीय डिज़ाइन की आवश्यकता: योजना और कार्यान्वयन चरणों को अलग करना जटिल अनुकूलन कार्यों की सफलता दर में सुधार करता है
- डोमेन ज्ञान का महत्व: अनुकूलन मेनू द्वारा प्रदान किया गया डोमेन विशेषज्ञता प्रदर्शन के लिए महत्वपूर्ण है
- हार्डवेयर प्रतिक्रिया का मूल्य: वास्तविक समय प्रदर्शन मेट्रिक्स अनुकूलन दिशा चयन को प्रभावी ढंग से निर्देशित करते हैं
- LLM क्षमता पर निर्भरता: विधि प्रदर्शन अंतर्निहित LLM की कोड पीढ़ी और तर्क क्षमता तक सीमित है
- खोज लागत: कई LLM कॉल और हार्डवेयर सिमुलेशन की आवश्यकता है, कम्प्यूटेशनल लागत अधिक है
- डोमेन विशिष्टता: अनुकूलन मेनू को विभिन्न हार्डवेयर प्लेटफॉर्म के लिए हस्तनिर्मित करने की आवश्यकता है
- मूल्यांकन सीमा: मुख्य रूप से टेंसर गणना कार्यभार पर केंद्रित, अन्य प्रकार की गणना की प्रयोज्यता अज्ञात है
- स्वचालित मेनू पीढ़ी: अनुकूलन मेनू को स्वचालित रूप से निर्माण करने की विधि का अनुसंधान
- क्रॉस-प्लेटफॉर्म शेड्यूलिंग माइग्रेशन: विभिन्न हार्डवेयर प्लेटफॉर्म के बीच शेड्यूलिंग ज्ञान स्थानांतरण की खोज
- लागत दक्षता अनुकूलन: खोज प्रक्रिया में LLM कॉल और हार्डवेयर सिमुलेशन की संख्या को कम करना
- व्यापक अनुप्रयोग: गैर-टेंसर गणना के अन्य विशेष एक्सेलेरेटर तक विस्तार
- मजबूत नवाचार: कम संसाधन टेंसर एक्सेलेरेटर कोड अनुकूलन के लिए LLM का पहली बार अनुप्रयोग, तकनीकी मार्ग नवीन है
- उच्च व्यावहारिक मूल्य: वास्तविक इंजीनियरिंग दर्द बिंदु को हल करता है, नए हार्डवेयर की सॉफ्टवेयर विकास लागत में भारी कमी
- व्यापक प्रयोग: तीन विभिन्न हार्डवेयर प्लेटफॉर्म पर व्यापक मूल्यांकन, परिणाम प्रेरक हैं
- विधि सामान्यता: फ्रेमवर्क डिज़ाइन अच्छी स्केलेबिलिटी और पोर्टेबिलिटी प्रदान करता है
- उत्कृष्ट प्रदर्शन: कई बेंचमार्क में मौजूदा सर्वोत्तम विधियों से महत्वपूर्ण रूप से बेहतर
- कम्प्यूटेशनल लागत: बड़ी संख्या में LLM कॉल और हार्डवेयर सिमुलेशन की आवश्यकता है, व्यावहारिक अनुप्रयोग को सीमित कर सकता है
- मानव डिज़ाइन निर्भरता: अनुकूलन मेनू अभी भी विशेषज्ञ ज्ञान हस्तनिर्मित डिज़ाइन की आवश्यकता है, स्वचालन की डिग्री सीमित है
- मूल्यांकन सीमा: विशिष्ट प्रकार की टेंसर गणना पर मुख्य रूप से केंद्रित, सामान्यीकरणशीलता सत्यापन की आवश्यकता है
- सैद्धांतिक विश्लेषण की कमी: विधि अभिसरण और इष्टतमता के लिए सैद्धांतिक गारंटी की कमी
- शैक्षणिक मूल्य: विशेष हार्डवेयर संकलन अनुकूलन क्षेत्र में LLM के अनुप्रयोग को शुरू करता है, महत्वपूर्ण शैक्षणिक महत्व है
- औद्योगिक प्रभाव: नए हार्डवेयर की सॉफ्टवेयर स्टैक विकास लागत को महत्वपूर्ण रूप से कम करने की संभावना है, महत्वपूर्ण औद्योगिक मूल्य है
- पुनरुत्पादनशीलता: लेखक कार्यान्वयन और प्रॉम्प्ट को ओपन-सोर्स करने का वचन देते हैं, बाद के अनुसंधान को सुविधाजनक बनाता है
- प्रेरणा: अन्य विशेष हार्डवेयर के संकलन अनुकूलन के लिए नया तकनीकी मार्ग प्रदान करता है
- नए हार्डवेयर प्रोटोटाइप विकास: नए डिज़ाइन किए गए टेंसर एक्सेलेरेटर के लिए तेजी से अनुकूलित कोड उत्पन्न करना
- DSL कंपाइलर निर्माण: पारंपरिक कंपाइलर के पूरक या विकल्प के रूप में
- प्रदर्शन ट्यूनिंग उपकरण: डेवलपर्स को मौजूदा एक्सेलेरेटर कोड अनुकूलन में सहायता करना
- अनुसंधान और शिक्षण: एक्सेलेरेटर प्रोग्रामिंग और अनुकूलन के लिए स्वचालित उपकरण प्रदान करना
पेपर संबंधित कार्यों की बड़ी संख्या का हवाला देता है, मुख्य रूप से शामिल हैं:
- हार्डवेयर एक्सेलेरेटर डिज़ाइन (Gemmini, TPU, Trainium आदि)
- कंपाइलर और DSL (XLA, TVM, Halide, Exo आदि)
- LLM कोड पीढ़ी (CodeGen, Codex आदि)
- स्वचालित अनुकूलन विधियां (सुदृढ़ शिक्षा, विकास एल्गोरिदम आदि)
समग्र मूल्यांकन: यह एक उच्च-गुणवत्ता वाला अनुसंधान पेपर है, जो LLM के विशेष हार्डवेयर संकलन अनुकूलन में अनुप्रयोग के इस उदीयमान अंतःविषय क्षेत्र में महत्वपूर्ण योगदान देता है। विधि नवीन है, प्रायोगिक मूल्यांकन व्यापक है, और व्यावहारिक मूल्य महत्वपूर्ण है। हालांकि कम्प्यूटेशनल लागत और स्वचालन की डिग्री के संदर्भ में सुधार की गुंजाइश है, लेकिन यह क्षेत्र के विकास के लिए नई दिशा खोलता है, जिसका महत्वपूर्ण शैक्षणिक और औद्योगिक मूल्य है।