3 पॉइंट द्वारा GN⁺ 2024-03-17 | 1 टिप्पणियां | WhatsApp पर शेयर करें

नई मशीन लर्निंग हार्डवेयर आर्किटेक्चर

  • इस repository में ML हार्डवेयर आर्किटेक्चर का source code शामिल है, जो पारंपरिक inner product ऑपरेशन के समान performance हासिल करते हुए भी लगभग आधे multiplication ऑपरेशनों की ही आवश्यकता रखता है।
  • low-bitwidth addition का उपयोग करके लगभग आधे multiplications को बदलने वाले एक वैकल्पिक inner product algorithm को चलाकर, ML accelerator की theoretical throughput और computational efficiency limits को बढ़ाता है।
  • अधिक जानकारी IEEE Transactions on Computers जर्नल में प्रकाशित पेपर में देखी जा सकती है।

नया algorithm और हार्डवेयर आर्किटेक्चर

  • Free-pipeline Fast Inner Product (FFIP) नामक एक नया algorithm और हार्डवेयर आर्किटेक्चर प्रस्तुत किया गया है।
  • यह 1968 में Winograd द्वारा प्रस्तावित fast inner product algorithm (FIP) को बेहतर बनाता है।
  • FIP, convolutional layers पर लागू होने वाले Winograd minimal filtering algorithm से असंबंधित है, और उन सभी ML model layers पर लागू हो सकता है जिन्हें मुख्य रूप से matrix multiplication में विभाजित किया जा सकता है।
  • ML accelerator में पहली बार FIP को implement किया गया है, और FIP की clock frequency तथा उससे मिलने वाले throughput को बेहतर बनाने वाला FFIP algorithm और generalized architecture प्रस्तुत किया गया है।
  • FIP और FFIP algorithms तथा architectures के लिए ML-विशिष्ट optimizations का योगदान किया गया है।
  • FFIP को मौजूदा fixed-point systolic array ML accelerators में सहज रूप से integrate किया जा सकता है, जिससे आधे multiply-accumulate (MAC) units के साथ समान throughput हासिल किया जा सके, या एक तय hardware budget में अधिक बड़ा maximum systolic array size लागू किया जा सके।
  • 8~16-bit fixed-point inputs का उपयोग करने वाले non-sparse ML models के लिए FFIP implementation, समान प्रकार के computing platform पर state-of-the-art solutions की तुलना में अधिक throughput और computational efficiency हासिल करता है।

source code की संरचना

  • compiler: इसमें एक compiler शामिल है जो Python model descriptions को accelerator commands में parse करता है, और इसमें PCIe driver के साथ interface code भी शामिल है जो accelerator पर model execution शुरू करता है, परिणाम और performance counters पढ़ता है, तथा परिणामों की correctness test करता है।
  • rtl: इसमें synthesizable SystemVerilog RTL शामिल है।
  • sim: इसमें testing के लिए simulation environment सेट करने वाली scripts शामिल हैं।
  • tests: इसमें Cocotb का उपयोग करके simulation में accelerator को verify करने वाले UVM-आधारित testbench source code शामिल हैं।
  • utils: इसमें project में उपयोग किए गए अतिरिक्त Python packages और scripts शामिल हैं, जिन्हें सामान्य development utilities और सहायता के लिए लेखक ने बनाया है।

GN⁺ की राय

  • यह लेख ML हार्डवेयर आर्किटेक्चर में एक अभिनव प्रगति का परिचय देता है, विशेष रूप से ऐसे नए algorithm और architecture के बारे में बताता है जो multiplication ऑपरेशनों को कम करते हुए भी performance बनाए रखते हैं। यह ML operations की efficiency को काफी बढ़ा सकने वाली एक महत्वपूर्ण प्रगति है।
  • FFIP algorithm, मौजूदा ML accelerator design में एक नया आयाम जोड़ता है और hardware resources का अधिक कुशल उपयोग करने का तरीका प्रदान करता है। यह energy efficiency और cost efficiency को महत्व देने वाले आधुनिक computing environment में बहुत महत्वपूर्ण है।
  • हालांकि, इस तकनीक को व्यापक रूप से अपनाए जाने के लिए मौजूदा ML accelerators के साथ compatibility, developers की नई architecture के प्रति समझ, और वास्तविक hardware में implementation के दौरान performance तथा cost से जुड़ी समस्याओं पर विचार करना होगा।
  • समान प्रकार की क्षमताएं देने वाले अन्य projects या products में Google का TPU (Tensor Processing Unit) और NVIDIA के CUDA cores शामिल हैं, जो पहले से बाजार में सिद्ध ML accelerator solutions हैं।
  • किसी नई technology या open source को अपनाते समय मौजूदा systems के साथ compatibility, performance improvement के मुकाबले cost increase, और development तथा maintenance की complexity पर विचार करना चाहिए। FFIP को चुनने के लाभों में throughput और computational efficiency में वृद्धि शामिल है, जबकि संभावित कमियों में नई system के लिए developers की learning curve और शुरुआती implementation cost शामिल हो सकती है।

1 टिप्पणियां

 
GN⁺ 2024-03-17
Hacker News राय
  • यह तकनीक शानदार लगती है, लेकिन यह पहले से accelerators में लागू क्यों नहीं की गई, यह जानने की जिज्ञासा है—क्या यह बस भुला दिया गया algorithm है, या accelerator बनाने में इसकी कोई लागत या अन्य प्रभाव पड़ते हैं।
  • यह पेपर hardware में matrix multiplication pipeline को synthesize करने की बात करता है, और FPGA या ASIC जैसे hardware में उपयोगी हो सकता है। CPU या GPU में multiplication और addition आम तौर पर समान समय लेते हैं, लेकिन multiplication units अधिक transistors घेरते हैं, इसलिए circuit complexity कम करने से speed और parallel throughput बढ़ सकते हैं तथा power और routing complexity घट सकती है।
  • matrix multiplication में multiplication हटाने का एक और तरीका विभिन्न semiring का उपयोग करना है। उदाहरण के लिए, Tropical Semiring multiplication की जगह addition और addition की जगह minimum value (या maximum value) का उपयोग करता है। यह अब भी matrix multiplication ही है, लेकिन binary operations बदल दिए जाते हैं। Tropical Algebra क्षेत्र का शोध optimization problems और neural network optimization research में उपयोग होता है, और यह इस समय सक्रिय तथा समृद्ध है।
  • Log Semiring का उपयोग करना भी multiplication को कुशलतापूर्वक हटाने का एक तरीका है। जब probabilities की chain को गुणा करना होता है (जैसे: Markov chain), तब संख्याएँ बहुत छोटी हो जाती हैं और floating point precision खो देता है। संख्याओं को log scale में बदलने पर multiplication addition बन जाता है, और addition x + log1p(exp(y - x)) बन जाता है।
  • multiplication और addition में से किसका उपयोग करना है, यह तय करना सिर्फ multiplication का उपयोग करने से धीमा हो सकता है, इसलिए यह तरीका वास्तव में काम करता है, यह आश्चर्यजनक है। खासकर तब जब parallel में बहुत बड़े पैमाने पर काम हो रहा हो।
  • यह तथ्य बहुत दिलचस्प है कि इस प्रक्रिया का आविष्कार 1968 में हुआ था और अब तक इसका इस उद्देश्य के लिए उपयोग नहीं किया गया।
  • 2018 में मैंने इसी तरह की अवधारणा आजमाई थी, लेकिन PhD applications सभी अस्वीकृत हो गईं, इसलिए छोड़ दिया। यहाँ की अवधारणा एक बाहरी network के ज़रिए backpropagation की नकल करने की कोशिश करती है, और दावा करती है कि शायद दिमाग वास्तव में ऐसा ही करता है।
  • यदि matrix multiplication के sub-cubic algorithm की गणितीय theory में रुचि है, तो आप यहाँ से शुरू कर सकते हैं। अनुमान है कि ऐसा कोई संख्या ( n ) मौजूद है जिसके लिए सभी ( n \times n ) matrices को ( O(n^{2+j}) ) steps में गुणा किया जा सकता है (अब यह ( 2+j = w = 2.3728596 ) या ( j > 0.3728596 ) के लिए सिद्ध हो चुका है)।
  • यह readme इस बात को समझाने में बहुत कमजोर है कि सुधार वास्तव में क्या है या multiplication को आधा कैसे किया जाता है। Big O runtime क्या है, या क्या यह ज्ञात सर्वोत्तम सीमा को बदलता है, यह भी स्पष्ट नहीं है। diagrams भ्रमित करते हैं और यह नहीं बताते कि यह approach तेज़ और अच्छी क्यों है। नतीजतन PDF पर क्लिक करने का भी मन नहीं करता। project की विश्वसनीयता बढ़ाने के लिए, वास्तव में क्या हो रहा है इसका ईमानदार, स्पष्ट विवरण और illustrations देना चाहिए।