10 पॉइंट द्वारा GN⁺ 2025-03-24 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • GPU, CPU की तुलना में 10~100 गुना अधिक शक्तिशाली हैं, लेकिन dynamic workloads को संभालने में कठिनाई होती है और parallel programming tools की कमी के कारण सामान्य कार्यों में उनकी performance का पूरा उपयोग नहीं हो पाता
  • अतीत में Connection Machine, Cell, Larrabee जैसे parallel computer designs थे, लेकिन programming model की जटिलता आदि के कारण वे असफल रहे
  • आधुनिक GPU में memory management की समस्याओं और जटिल execution model के कारण performance optimization कठिन है, और queue-आधारित कुशल data delivery structure की आवश्यकता है
  • AI accelerators और parallel core clusters जैसी नई architectures, GPU की सीमाओं को पार करने की क्षमता रखती हैं
  • parallel computers का विकास अभी भी अधूरा है, और सरल व कुशल execution model तथा programming tools में सुधार की ज़रूरत है

GPU की शक्तिशाली performance और सीमाएँ

  • GPU, CPU की तुलना में लगभग 10~100 गुना अधिक शक्तिशाली हैं (काम के प्रकार पर निर्भर)
  • real-time graphics rendering और machine learning में इस performance का अच्छा उपयोग हो रहा है
  • लेकिन GPU performance का सामान्य workloads में पर्याप्त उपयोग नहीं हो पा रहा

GPU की सीमाओं के कारण

  • कमज़ोर execution model
    • GPU अनुमानित बड़े data sets (जैसे dense matrix multiplication) में मजबूत हैं, लेकिन dynamic workloads में performance गिर जाती है
  • अपर्याप्त language और tools
    • parallel computers के लिए programming करना अपने आप में बहुत कठिन है

बढ़ती जटिलता

  • नवीनतम GPU में जटिलता तेज़ी से बढ़ रही है
  • mesh shaders, work graphs जैसी नई सुविधाएँ जोड़ी गई हैं, लेकिन कुछ बुनियादी कार्य अब भी समर्थित नहीं हैं

जटिल GPU memory efficiency समस्या

  • लेखक Vello नाम का एक उन्नत 2D vector graphics renderer विकसित कर रहे हैं
    • CPU scene description (SVG format) अपलोड करता है → compute shader उसे process करता है और image बनाता है
  • समस्या: memory management की कठिनाई
    • intermediate results को स्टोर करने के लिए buffer size का अनुमान लगाना कठिन है
    • buffer overflow होने पर GPU से CPU तक readback operation performance को गिरा देता है

प्रस्तावित समाधान

  • GPU के अंदर queue के माध्यम से results पास करने की व्यवस्था बेहतर की जाए
    • 2009 के GRAMPS paper में ऐसा model प्रस्तावित किया गया था
    • Brook project में भी इसी तरह का approach आज़माया गया था

अतीत के parallel computer designs

  • Connection Machine (1985)

    • hypercube network से जुड़े 64k processors वाला parallel computer
    • हर processor की performance कम थी, लेकिन बड़े पैमाने की parallel processing संभव थी
    • parallel algorithms के शोध में बड़ा योगदान
  • Cell (2006, PS3)

    • PS3 में शामिल parallel computer (लगभग 87.4 million units shipped)
    • 8 parallel cores स्वतंत्र रूप से computation कर सकते थे
    • programming model की जटिलता इसकी असफलता का कारण बनी
  • Larrabee (2008)

    • x86-आधारित parallel computer के रूप में विकसित किया गया
    • असफलता के कारण: power consumption और software support की कमी
    • बाद में यह Xeon Phi और AVX-512 instructions तक पहुँचा

बदलते workloads

  • games में भी compute workloads का हिस्सा बढ़ रहा है
    • Starfield में कुल execution time का लगभग 50% compute पर जाता है
    • Nanite renderer छोटे triangles की rasterization भी compute से करता है

आगे की विकास दिशा

  • 1. core clusters का विस्तार (Cell की वापसी)

    • आधुनिक high-end CPU designs में 100 billion से अधिक transistors शामिल हैं
    • कम power वाले सरल RISC cores के सैकड़ों~हज़ारों वाले chips बनाए जा सकते हैं
    • AI accelerators पहले से ही इसी तरह की architecture अपना रहे हैं
  • 2. GPU पर Vulkan commands का execution

    • GPU पर सीधे Vulkan commands चलाने के लिए support दिया जाए
    • फिलहाल कुछ Vulkan extensions में यह सीमित रूप से लागू है
  • 3. Work Graph

    • program को nodes (kernels) और edges (queues) से बनाया जाता है
    • यह parallel में चलता है, लेकिन निम्न सीमाएँ मौजूद हैं
      • join operations कठिन हैं
      • elements के ordering की गारंटी नहीं है
      • variable-size elements समर्थित नहीं हैं
  • 4. CPU के साथ fusion evolution

    • high-performance CPU designs के parallel processing के लिए optimized होने की संभावना है
    • parallel computation और SIMD (single instruction multiple data) processing performance में सुधार हो रहा है
  • 5. संभव है hardware पहले से तैयार हो

    • कुछ GPU में ऐसे command processors शामिल हैं जो user code चला सकते हैं
    • यदि command processor पूरी तरह खोल दिया जाए, तो performance सुधार की संभावना है

जटिलता की समस्या

  • GPU architecture अत्यधिक जटिल है
    • parallel computer + special hardware + command processing structure का मिश्रण
    • विभिन्न API और driver compatibility समस्याएँ
  • इसके विपरीत, CPU सरल instruction set पर आधारित रहते हुए performance बढ़ाते रहे हैं

निष्कर्ष

  • parallel computers का विकास अभी भी अधूरा है
  • graphics और AI कार्यों से आगे बढ़कर सामान्य कार्यों के लिए GPU को optimize करने हेतु निम्न चीज़ें आवश्यक हैं
    • सरल execution model
    • programming की सहजता
    • कम power consumption
  • Vello जैसे उन्नत 2D renderer के काम में parallel computers की performance का पूरा लाभ लिया जा सकेगा
  • GPU की performance limits को पार करने के लिए नई parallel computer architecture की आवश्यकता है

1 टिप्पणियां

 
GN⁺ 2025-03-24
Hacker News राय
  • "मेरा मानना है कि दो प्रमुख कारक इसे रोकते हैं"

    • राय को वैज्ञानिक रूप देने के लिए प्रोत्साहन मौजूद हैं
    • Cell प्रोसेसर पर काम करने के अनुभव में बहुत अधिक micromanagement की ज़रूरत पड़ी
    • आधुनिक सिस्टम memory protection, isolation और stability को ध्यान में रखकर डिज़ाइन किए जाते हैं
    • अगर लोगों को Amiga पर कोड लिखने दिया जाए, तो एक नई सराहना पैदा होगी
  • 2025 में programming model अक्षम है

    • runtime पर shader source/bytecode को compile करना पड़ता है
    • NUMA/discrete सेटअप में CPU और GPU के बीच data structure को manipulate करना कठिन है
    • CPU-GPU और GPU कार्यों के बीच data access synchronization की ज़रूरत होती है
    • standardize न किए गए hardware के कारण उलझाऊ API को संभालना पड़ता है
    • विभिन्न configurations के संयोजनों को संभालना पड़ता है
  • "सैकड़ों छोटे CPU को एक ही chip में डालने" वाली कंपनी में काम करने का अनुभव

    • programming model इतना अजीब है कि यह असफल होगा
    • अगली पीढ़ी नई architecture नहीं, बल्कि अतिरिक्त features वाले GPU होंगे
  • GPU, CPU से 10~100 गुना अधिक शक्तिशाली हैं

    • कई कामों को अधिक performance की ज़रूरत नहीं होती
    • GUI 20 साल से अधिक समय से user input के प्रति responsive रहा है
    • GPU programming को सरल बनाना चाहिए
  • M4 Mac mini सुपरकंप्यूटर बनाने पर राय

    • Apple M3 Ultra GPU और Neural Engine instruction set का reverse engineering
    • यह प्रति सेकंड 50 ट्रिलियन से अधिक operations कर सकता है
  • parallel computer की समस्याएँ

    • development उद्देश्यों के लिए बहुत से लोगों को डिवाइस अपनाने होंगे
    • CPU से GPU पर कोड port करना एक बड़ा काम है
    • AMD और अन्य कंपनियाँ GPU को CPU के और करीब लाने के विचार तलाश रही हैं
  • यह स्पष्ट नहीं है कि 2D renderer को GPU की ज़रूरत क्यों है

    • 3D renderer को मदद की ज़रूरत होती है
    • Vulkan renderer के नीचे का स्तर है
    • Rust 3D में renderer design के friction points मौजूद हैं
  • Larabee का बहुत ज़िक्र है, लेकिन Xeon Phis का नहीं

    • CPU design एकल-कोर performance और power efficiency को optimize करने की दिशा में बँट रहा है
    • अगर E cores बढ़ते रहे, तो parallelism का उपयोग करने वाले algorithms जीत सकते हैं
  • GPU के उच्च throughput को संभव बनाने वाले समझौते

    • Apple Silicon में unified memory system है
    • GPU programming API memory को ऐसे संभालने पर मजबूर करती हैं मानो वह unified न हो