VRAM (Video RAM) भौतिक रूप से अलग memory chips हैं जो GPU board पर soldered होते हैं, आपके सिस्टम की मुख्य RAM से अलग। यह अलग से क्यों मौजूद है इसका कारण bandwidth है — एक GPU और इसकी VRAM के बीच का connection एक CPU और सिस्टम RAM के बीच के connection से बहुत अधिक wider है। एक NVIDIA H100 अपने HBM3 (High Bandwidth Memory) stack के लिए 3.3 TB/s से अधिक memory bandwidth प्राप्त करता है, जबकि एक सामान्य DDR5 सिस्टम 50-80 GB/s manage कर सकता है। AI inference के लिए, जहाँ bottleneck हर token उत्पन्न होने के लिए memory से अरबों weight parameters पढ़ना है, यह bandwidth अंतर ही कारण है कि एक GPU पर एक मॉडल चलाना एक CPU पर चलाने की तुलना में नाटकीय रूप से तेज़ है — तब भी जब CPU के पास भरपूर सिस्टम RAM हो।
एक मॉडल के लिए VRAM आवश्यकताओं की गणना कुछ gotchas के साथ सीधी अंकगणित है। मूल formula: parameters की संख्या को आपके precision format के लिए bytes per parameter से गुणा करें। FP16 में एक 7B मॉडल (2 bytes per parameter) को केवल weights के लिए 14GB चाहिए। लेकिन weights ही सब कुछ नहीं हैं जो VRAM में रहता है। Inference के दौरान, आपको KV cache के लिए भी जगह चाहिए — attention computations से stored key-value pairs जो context length के साथ बढ़ते हैं। एक 4,096-token context पर चलने वाले एक 7B मॉडल के लिए, KV cache 1-2GB जोड़ सकता है। इसे 128K tokens तक बढ़ाएँ और अकेले KV cache 20-40GB consume कर सकता है। यही कारण है कि long-context मॉडलों को उनके parameter count के सुझाव से significantly अधिक VRAM चाहिए, और शक्तिशाली hardware पर भी context window limits क्यों मौजूद हैं।
Training inference की तुलना में कहीं अधिक VRAM-hungry है। मॉडल weights store करने के अलावा, training को optimizer states store करने की आवश्यकता होती है (Adam हर parameter की दो अतिरिक्त copies रखता है — यह वहीं weight size का 3x है), gradients (एक और 1x), और activations (backpropagation के लिए आवश्यक मध्यवर्ती मान, जो batch size और sequence length के साथ scale होते हैं)। एक rule of thumb: Adam optimizer के साथ BF16 में training को प्रति parameter लगभग 18-20 bytes चाहिए। एक 7B मॉडल को केवल training state के लिए ~140GB चाहिए — किसी भी single consumer GPU के पास से अधिक। यही कारण है कि FSDP (Fully Sharded Data Parallelism), gradient checkpointing, और mixed-precision training जैसी तकनीकें मौजूद हैं: वे memory उपयोग को distribute या कम करते हैं ताकि आप वास्तव में जो hardware आपके पास है उस पर train कर सकें, गति या compute overhead की लागत पर।
Consumer VRAM परिदृश्य परिभाषित करता है कि स्थानीय AI के लिए व्यावहारिक रूप से क्या प्राप्त करने योग्य है। NVIDIA का RTX 4090 24GB पर high end है — लगभग 14B parameters तक quantized मॉडलों को आराम से चलाने के लिए पर्याप्त, या सावधानीपूर्वक tuning के साथ Q4-quantized 30B को squeeze करने के लिए। 16GB पर RTX 4070 Ti Super 7B-13B मॉडलों को अच्छी तरह संभालता है। 8GB पर RTX 4060 usable स्थानीय LLM inference के लिए मंज़िल है — आप छोटे मॉडलों या आक्रामक रूप से quantized वालों तक सीमित हैं। AMD का RX 7900 XTX कम कीमत पर 24GB प्रदान करता है लेकिन AI workloads के लिए कमज़ोर software support के साथ। datacenter side पर, NVIDIA H100 80GB में आता है, H200 141GB में, और AMD का MI300X HBM3 का 192GB प्रदान करता है। उन मॉडलों के लिए जो किसी भी एकल GPU के लिए बहुत बड़े हैं, tensor parallelism मॉडल को कई GPUs में split करता है — लेकिन इसके लिए GPUs के बीच fast interconnects (NVLink, InfiniBand) चाहिए, या communication overhead आपके performance को मार देता है।
एक nuance जिसे practitioners hard way से सीखते हैं: आपका कुल VRAM पूरी तरह से उपलब्ध नहीं है। GPU driver, display processes (यदि यह एक monitor भी drive कर रहा है), और CUDA context overhead हर एक कुछ memory consume करते हैं। एक 24GB card पर, आपके पास वास्तव में 22-23GB usable हो सकता है। और VRAM fragmentation आपको एक एकल बड़े contiguous block को allocate करने से रोक सकता है तब भी जब कुल free memory पर्याप्त दिखती है। nvidia-smi जैसे tools आपको current VRAM उपयोग दिखाते हैं, लेकिन जो number मायने रखता है वह सबसे बड़ा contiguous free block है, केवल कुल free amount नहीं। यही कारण है कि inference engines कभी-कभी एक ऐसे मॉडल को load करने में विफल हो जाते हैं जिसे सैद्धांतिक रूप से fit होना चाहिए — memory वहाँ है लेकिन बिखरी हुई है।