28 पॉइंट द्वारा xguru 2023-09-12 | 6 टिप्पणियां | WhatsApp पर शेयर करें
  • 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 टिप्पणियां

 
ninebow 2023-09-12

वाह, शानदार लेख के लिए धन्यवाद!

 
nicewook 2023-09-12

दिलचस्पी से पढ़ा।

 
ragingwind 2023-09-12

वाह, शेयर खरीदते रहना चाहिए..

 
xguru 2023-09-12

2018 में मैंने थोड़ा Nvidia स्टॉक पहले से खरीदकर रखा था, और अब वह 1100% है। काश तब बहुत ज़्यादा खरीदा होता. सिसकी

 
laeyoung 2023-09-12

वाह..!

 
xguru 2023-09-12

16 x 12.5 x 2.5 x 2 करने पर ठीक 1000 आता है।