Google के Tensor Processing Unit को समझना
(considerthebulldog.com)- TPU एक Google domain-specific accelerator है, जो deep learning के लिए सचमुच ज़रूरी गणनाओं को ही रखता है और बाकी को साहसपूर्वक हटा देता है
- इसकी शुरुआत 2013 में data center विस्तार की सीमाओं के कारण हुई, और 12 साल में यह 7वीं पीढ़ी ‘Ironwood’ तक विकसित हो गया
- semiconductor performance के अपने-आप बेहतर होते जाने का दौर खत्म होने के साथ, इंतज़ार करने के बजाय खुद design करने की रणनीति एक अहम विकल्प बन गई
- TPU कोई एक chip नहीं, बल्कि hardware, compiler, network और operating software का co-design system है
- हर नई पीढ़ी के साथ performance competition से ज़्यादा power, deployment और operating cost (TCO) design के केंद्र में आ गए
- TPU की प्रतिस्पर्धात्मक बढ़त किसी एक तकनीक में नहीं, बल्कि 10 साल से अधिक समय में जमा हुए design और operations experience के योग में है
Something New
- TPU कोई गुप्त हथियार नहीं, बल्कि लंबे समय तक चली public research और internal iteration से निखरा हुआ परिणाम है
- Google ने data center को लगातार बड़ा करने के बजाय, गणना करने के तरीके को मूल रूप से बदलने का रास्ता चुना
- 2013 के आसपास data center capacity को दोगुना करने का दबाव और समय की पाबंदी, 15 महीनों में TPU के जन्म तक जा पहुँची
- अप्रैल 2025 में Google Cloud Next पर 7वीं पीढ़ी के TPU Ironwood की घोषणा हुई, जिसमें 9,216 chips/pod, 42.5 Exaflops और 10MW के आँकड़े दिए गए
- GPU deep learning के लिए बनाए गए डिवाइस नहीं थे, और TPU को शुरुआत से ही neural network computation को ध्यान में रखकर design किया गया
- इस विकल्प से केवल compute performance ही नहीं, बल्कि power efficiency और operational stability में भी संरचनात्मक बढ़त मिली
- यह “संयोग” नहीं, बल्कि constraints, trade-offs और co-design की बार-बार की गई प्रक्रिया से जमा हुआ परिणाम है
Slowing Down
- Moore’s Law और Dennard Scaling के कमज़ोर पड़ने से पहले केवल नए CPU का इंतज़ार करने भर से program तेज़ हो जाते थे, लेकिन अब वह आधार टूट चुका है
- transistor की संख्या बढ़ती रही, लेकिन power और heat की सीमाएँ performance improvement को रोकने लगीं
- साथ ही neural network को बड़े data और बड़े model चाहिए, जिससे compute demand विस्फोटक रूप से बढ़ी
- इसी वजह से “हर काम थोड़ा-थोड़ा अच्छा करने वाली chip” के बजाय “एक काम बेहद अच्छी तरह करने वाली chip” की ज़रूरत बढ़ी
- neural network computation का केंद्र matrix multiplication आधारित repetitive operations होना, specialized design को संभव बनाता है
The Inference Chip
- पहली TPU ने training नहीं, बल्कि inference, यानी पहले से train किए गए model को चलाने पर ध्यान दिया
- TPUv1 ने cache, branch prediction और multithreading को हटाकर control cost को न्यूनतम किया
- इसके बजाय बड़े matrix multiplication को लगातार प्रोसेस करने वाले Systolic Array (MXU) पर सारे resources केंद्रित किए गए
- execution के दौरान निर्णय लेने के बजाय, यह compile समय पर तय किए गए execution order का पालन करती है
- नतीजतन, समान power पर यह GPU और CPU की तुलना में कहीं अधिक inference work संभाल सकती थी
The Training Chip
- training को inference की तुलना में कहीं अधिक compute और विस्तृत numeric representation range की ज़रूरत होती है
- TPUv2 से inference-only architecture से आगे बढ़कर training के लिए flexibility जोड़ी गई
- मुख्य बदलाव matrix (MXU), vector (VPU) और control (Scalar Unit) की भूमिकाओं का विभाजन था
- execution flow को XLA compiler पहले से compute और decide करता है, और chip उसे वैसे ही execute करती है
- कई TPU को एक डिवाइस की तरह काम कराने के लिए dedicated high-speed interconnect (ICI) भी साथ में design किया गया
Scaling Up
- system बड़ा होने के साथ सवाल “यह कितना तेज़ है” से बदलकर “इसे कितनी देर तक और कितनी कम लागत में चलाया जा सकता है?” हो गया
- इसके लिए compute units के पास बड़ी on-chip memory (CMEM) रखी गई, ताकि धीमी DRAM access कम हो
- recommendation systems जैसे sparse data वाले workloads के लिए SparseCore जैसे dedicated units भी जोड़े गए
- chip के अंदर और chip के बीच communication को अलग करके wiring complexity और bottleneck को संरचनात्मक रूप से कम किया गया
- performance numbers से ज़्यादा operational efficiency पूरे design को निर्धारित करने लगी
Island Hopping
- हज़ारों TPU वाले environment में failure कोई अपवाद नहीं, बल्कि एक मूल धारणा है
- लक्ष्य ऐसा system है जो रुके नहीं, यानी partial failure को absorb कर सके
- काम कई TPU में बाँटकर चलाया जाता है, लेकिन उसे एक ही program की तरह दिखने और manage होने दिया जाता है
- समस्या आने पर पूरे system को रोकने के बजाय तेज़ reallocation और restart चुना जाता है
- यह जटिल प्रक्रिया ज़्यादातर operating software अपने-आप संभालता है
Datacenter Network विस्तार
- जब TPU का एक group पर्याप्त नहीं रहता, तो कई groups को जोड़ना पड़ता है
- सामान्य network की सीमाओं के कारण optical switching (OCS) अपनाया गया
- इससे पूरे data center को एक विशाल compute resource की तरह संगठित करना संभव हुआ
- मौजूदा execution model को बढ़ाने वाला तरीका और पूरी तरह नया asynchronous execution model (Pathways) साथ-साथ मौजूद हैं
- अब बड़े model और ज़्यादा जटिल communication patterns को संभालना संभव हो गया
Ceci n’est pas une TPU
- नवीनतम TPU संख्याओं के हिसाब से भले ही अत्यंत प्रभावशाली हों, लेकिन मुख्य सिद्धांत शुरुआती दौर जैसे ही हैं
- ज़रूरी computation पर ध्यान देना और अनावश्यक complexity को हटाना अब भी दिशा का आधार है
- केवल hardware specs के आधार पर इस system की नकल नहीं की जा सकती
- compiler (XLA), dedicated interconnect (ICI), optical switching (OCS) और operations scheduler को साथ काम करना पड़ता है
- TPU एक बार की invention नहीं, बल्कि सैकड़ों साधारण निर्णयों के जमा होते जाने का परिणाम है
ज़रूर याद रखने योग्य कुछ मुख्य तकनीकें
- Systolic Array (MXU): matrix multiplication को उच्च दक्षता से संभालने वाला TPU का दिल
- XLA compiler: execution order को पहले से calculate करके control cost हटाता है
- BF16: training के लिए आवश्यक range बनाए रखते हुए hardware cost घटाने वाला numeric format
- ICI / OCS: chip, rack और data center को एक साथ बाँधने वाली dedicated communication architecture
- TCO-केंद्रित design: instant performance के बजाय long-term operating cost को optimize करने वाली सोच
3 टिप्पणियां
Hacker News टिप्पणियाँ
मेरी एक निजी इच्छा है
कृपया TPU इतना व्यापक रूप से commercial हो जाए कि कंपनियों को GPU इस्तेमाल करने की ज़रूरत ही न पड़े।
ताकि Nvidia फिर से personal consumer GPUs पर ध्यान दे.....
मूल लेख तकनीकी रूप से बहुत गहरा है, इसलिए उसे ज्यों का त्यों संक्षेप में बताने पर वह सिर्फ तकनीकी शब्दों की सूची बनकर रह जाएगा। इसलिए मैंने इसे थोड़ा इस तरह व्यवस्थित किया है कि विकास की स्थिति को समझना आसान हो। जिन लोगों को तकनीकी विवरण जानने हैं, वे चित्रों के साथ समझाने वाले मूल लेख को देखें।