- Nvidia ने 10 साल में GPU performance को 1000 गुना बढ़ाने में मदद करने वाले 4 factors
- Chief Scientist Bill Dally ने IEEE Hot Chips 2023 keynote में इसे एक स्लाइड से समझाया
Number Representation: 16 गुना
- "कुल मिलाकर हमें सबसे बड़ा फायदा number representation के बेहतर होने से मिला"
- ये संख्याएँ neural network के मुख्य parameters को दर्शाती हैं
- इनमें एक parameter weights है, और दूसरा activations
- weights: मॉडल के neurons के बीच connection strength
- activations: neuron में weights लागू किए गए inputs के योग को गुणा कर यह तय करना कि वह activate होगा या नहीं, और अगली layer तक जानकारी पहुँचाना
- P100 से पहले के Nvidia GPU इन weights को single precision floating-point संख्याओं से व्यक्त करते थे
- IEEE 754 standard से परिभाषित ये संख्याएँ 32bit लंबी होती हैं, जिनमें 23 bits fraction को दर्शाते हैं, 8 bits exponent के रूप में काम करते हैं, और 1 bit sign के लिए उपयोग होता है
- लेकिन machine learning researchers ने पाया कि कई गणनाओं में कम सटीक संख्याओं का उपयोग करना संभव है, और फिर भी neural network सही उत्तर दे सकता है
- इस तरह कम bits को process करने पर machine learning की मुख्य गणनाएँ (multiply और accumulate) करने वाला logic और छोटा व अधिक efficient बनाया जा सकता है
- multiplication के लिए ज़रूरी energy, bits की संख्या के वर्ग के अनुपात में होती है
- इसलिए Nvidia ने P100 में FP16 का उपयोग कर उस संख्या को आधा कर दिया। Google ने bfloat16 नाम का अपना संस्करण भी पेश किया
- दोनों के बीच अंतर precision देने वाले fraction bits और range देने वाले exponent bits की सापेक्ष संख्या का है
- bfloat16 में FP32 जितने ही exponent bits होते हैं, इसलिए दोनों formats के बीच conversion आसान है
- आज का नवीनतम GPU H100, ChatGPT और अन्य LLM जैसे बड़े transformer neural network के कुछ हिस्सों को चलाने के लिए 8-bit संख्याओं का उपयोग कर सकता है
- लेकिन Nvidia ने पाया कि यह हर स्थिति पर लागू होने वाला one-size-fits-all solution नहीं है
- उदाहरण के लिए, Nvidia की Hopper GPU architecture वास्तव में गणना के लिए दो अलग FP8 formats का उपयोग करती है
- एक में precision थोड़ी अधिक है, और दूसरे में range थोड़ी अधिक है
- Nvidia का खास रहस्य है यह जानना कि कब कौन-सा format इस्तेमाल करना है
- Dally और उनकी टीम के पास कम bits से अधिक AI निकालने के लिए कई दिलचस्प ideas हैं
- और यह स्पष्ट है कि floating-point system आदर्श नहीं है
- मुख्य समस्याओं में से एक यह है कि floating-point precision संख्या बड़ी हो या छोटी, काफ़ी एकसमान रहती है
- लेकिन neural network के parameters बड़े numbers का उपयोग नहीं करते और 0 के आसपास clustered रहते हैं
- इसलिए Nvidia के R&D का फोकस ऐसे efficient तरीके खोजना है जो 0 के करीब संख्याओं को अधिक सटीकता से व्यक्त कर सकें
Complex Instructions: 12.5 गुना
- "instructions को fetch और decode करने का overhead, साधारण arithmetic operation करने की तुलना में कई गुना अधिक होता है"
- उदाहरण के लिए, एक multiplication में overhead, operation के लिए लगने वाले 1.5 picojoules की तुलना में 20 गुना तक हो सकता है
- आदेशों की श्रृंखला के बजाय एक ही instruction से बड़ी गणना करने के लिए GPU को design करके Nvidia ने बड़ा लाभ पाया
- overhead अभी भी रहता है, लेकिन complex instructions का उपयोग करने पर अधिक math के ज़रिए लागत को amortize किया जा सकता है
- उदाहरण के लिए, complex instruction IMMA (integer matrix multiply and accumulate, integer matrix multiplication और accumulation) का overhead math energy cost का केवल 16% है
Moore’s Law: 2.5 गुना
- Moore’s Law की प्रगति बनाए रखने में अरबों डॉलर का निवेश, अत्यंत जटिल engineering, और बहुत-सी अंतरराष्ट्रीय अनिश्चितताएँ शामिल हैं
- लेकिन यह भी Nvidia के GPU performance बढ़ने का एक हिस्सा है
- Nvidia लगातार सबसे उन्नत manufacturing technology का उपयोग करता आया है
- H100, TSMC की N5 (5nm) process पर बनाया गया है, और chip foundry ने 2022 के अंत में ही अगली पीढ़ी की N3 का शुरुआती production शुरू किया था
Sparsity: 2 गुना
- training के बाद neural network में कई ऐसे neurons बचे रह जाते हैं जो शुरुआत से होने ही नहीं चाहिए थे
- कुछ neural networks में "आधे से अधिक neurons हटाने पर भी accuracy नहीं घट सकती"
- इन neurons के weight values 0 होते हैं या लगभग 0 के करीब होते हैं, इसलिए वे output में योगदान नहीं देते, और उन्हें गणना में शामिल करना सिर्फ समय और energy की बर्बादी है
- computation load कम करने के लिए इन networks को "sparse" बनाना एक पेचीदा काम है
- लेकिन H100 के पूर्ववर्ती A100 के साथ Nvidia ने structured sparsity नाम की सुविधा पेश की
- यह hardware 4 संभावित pruning events में से 2 को अनिवार्य रूप से होने देता है, जिससे नई और छोटी matrix computation संभव हो सकती है
- "sparsity की समस्या अभी खत्म नहीं हुई है" "हमें activations के साथ कुछ करना होगा, और weights में भी हम अधिक sparsity ला सकते हैं"
6 टिप्पणियां
वाह, शानदार लेख के लिए धन्यवाद!
दिलचस्पी से पढ़ा।
वाह, शेयर खरीदते रहना चाहिए..
2018 में मैंने थोड़ा Nvidia स्टॉक पहले से खरीदकर रखा था, और अब वह 1100% है। काश तब बहुत ज़्यादा खरीदा होता. सिसकी
वाह..!
16 x 12.5 x 2.5 x 2 करने पर ठीक 1000 आता है।