سخت افزار لازم برای اجرای LLM روی سرور: GPU، حافظه و توان
برای اجرای مدل زبانی روی سرور چه GPU و چقدر VRAM لازم است؛ حساب حافظهی مدل و KV cache، نقش پهنای باند، مقایسهی GPUها، برق و خنک کنندگی و سه سناریوی نمونه.
در این صفحه
- پیش از خرید، این پنج عدد را مشخص کنید
- حافظهی لازم برای وزنهای مدل
- KV cache: حافظهای که با context و کاربر زیاد میشود
- پهنای باند حافظه و سرعت تولید توکن
- کلاسهای GPU
- چند GPU: NVLink یا PCIe
- بدون GPU دیتاسنتری: CPU و حافظهی یکپارچه
- پلتفرم سرور
- PCIe و شاسی
- برق و خنک کنندگی
- RAM و NVMe
- نرم افزار سرویس دهی: Ollama یا vLLM
- سه سناریوی نمونه
- خرید GPU دست دوم و refurbished دیتاسنتری
- قدم بعدی
برای اجرای مدل زبانی روی سرور، مشخصهی تعیین کننده حافظهی GPU (VRAM) است: وزنهای مدل به اضافهی KV cache، یعنی حافظهای که با طول context و تعداد کاربران همزمان بزرگ میشود، باید در آن جا شوند. بعد از آن، پهنای باند حافظه سرعت تولید توکن را تعیین میکند. به طور خلاصه، با quantization چهار بیتی یک مدل 8 میلیاردی روی کارت 8 گیگابایتی اجرا میشود، مدلهای 27 تا 32 میلیاردی کارت 24 تا 32 گیگابایتی میخواهند، مدل 70 میلیاردی در 48 گیگابایت به زحمت و در 80 تا 96 گیگابایت راحت جا میشود، و مدلهای MoE چندصد میلیاردی مثل DeepSeek به چند GPU دیتاسنتری نیاز دارند. نصب و اجرای مدل روی سرور در آموزش Ollama آمده است.
پیش از خرید، این پنج عدد را مشخص کنید
| عامل | اثر روی سخت افزار |
|---|---|
| اندازهی مدل (تعداد پارامتر) | حجم وزنها؛ در دقت 16 بیت حدود 2 GB برای هر میلیارد پارامتر |
| دقت (quantization) | 8 بیت حدود نصف و 4 بیت حدود یک چهارم حافظهی 16 بیت |
| طول context | حجم KV cache هر درخواست |
| درخواستهای همزمان در ساعت اوج | هر درخواست فعال KV cache جداگانه دارد |
| هدف: پاسخ سریع یا throughput بالا | نوع و تعداد GPU و نرم افزار سرویس دهی |
«۱۰۰ کاربر» با «۱۰۰ درخواست همزمان» یکی نیست؛ عدد همزمانی را از لاگ یک سرویس آزمایشی بسنجید.
حافظهی لازم برای وزنهای مدل
قاعدهی سرانگشتی در مدل زبانی بزرگ (LLM) چیست آمده است: هر میلیارد پارامتر در FP16 حدود 2 GB، در INT8 حدود 1 GB و در INT4 حدود 0.5 GB. فایلهای واقعی کمی بزرگترند؛ در llama.cpp، فرمت Q4_K_M به طور میانگین حدود 4.9 بیت و Q8_0 حدود 8.5 بیت برای هر وزن مصرف میکند. حجم واقعی دانلود در کتابخانهی Ollama:
| اندازه | نمونه | 4 بیت (q4_K_M) |
8 بیت (q8_0) |
16 بیت |
|---|---|---|---|---|
| 8B | Llama 3.1 8B | 4.9 GB | 8.5 GB | 16 GB |
| 14B | DeepSeek-R1 14B (distill) | 9.0 GB | 16 GB | 30 GB |
| 32B | DeepSeek-R1 32B (distill) | 20 GB | 35 GB | 66 GB |
| 70B | Llama 3.3 70B | 43 GB | 75 GB | 141 GB |
| MoE، 117B | gpt-oss-120b | 65 GB (MXFP4) | - | - |
| MoE، 671B | DeepSeek-R1 / V3.1 | 404 GB | 713 GB | 1.3 TB |
در مدلهای MoE (Mixture of Experts) برای هر توکن فقط بخشی از پارامترها فعال میشود، ولی همهی پارامترها باید در حافظه باشند: تعداد کل پارامترها حافظه را تعیین میکند و پارامترهای فعال سرعت را. gpt-oss-120b از 117 میلیارد پارامتر 5.1 میلیارد فعال دارد و طبق OpenAI روی یک GPU هشتاد گیگابایتی جا میشود. DeepSeek V4-Flash در کل 284 میلیارد و V4-Pro 1.6 تریلیون پارامتر دارد (13 و 49 میلیارد فعال)؛ با قاعدهی بالا، فقط وزنهای V4-Flash در 4 بیت حدود 140 GB و V4-Pro حدود 800 GB میشود.
KV cache: حافظهای که با context و کاربر زیاد میشود
مدل برای هر توکنی که در context است، key و value همهی لایهها را نگه میدارد:
KV cache per token = 2 × layers × KV heads × head dim × bytes per valueLlama 3.1 8B با 32 لایه، 8 KV head و head dim برابر 128، در دقت 16 بیت برای هر توکن 128 KiB میگیرد. مدل 70B همان تعداد KV head و head dim را با 80 لایه دارد: 320 KiB برای هر توکن. نتیجه برای مدل 70B:
| سناریو | توکن در حافظه | KV cache (16 بیت) |
|---|---|---|
| یک کاربر، context هشت هزار توکنی | 8,192 | 2.5 GiB |
| یک کاربر، context 128K | 131,072 | 40 GiB |
| ۲۰ درخواست همزمان، هر کدام 8K | 163,840 | 50 GiB |
یعنی بیست درخواست همزمان با context متوسط، از خود وزنهای چهار بیتی مدل (43 GB) حافظهی بیشتری میگیرند. KV cache هشت بیتی (FP8 در vLLM یا q8_0 در Ollama) این عدد را نصف میکند. معماریها در این مورد خیلی فرق دارند (DeepSeek برای V4.1-Flash حدود 890 بایت برای هر توکن اعلام کرده)؛ حساب را با config.json همان مدل انجام دهید.
پهنای باند حافظه و سرعت تولید توکن
تولید پاسخ دو مرحله دارد. در prefill کل ورودی یک جا پردازش میشود؛ این مرحله به توان محاسباتی (TFLOPS) وابسته است و زمان رسیدن اولین توکن را تعیین میکند. در decode توکنها یکی یکی ساخته میشوند و برای هر توکن وزنها از حافظه خوانده میشوند؛ طبق NVIDIA این مرحله memory-bound است و سرعت انتقال داده از حافظه تعیین کننده است.
سقف نظری سرعت برای یک کاربر تقریباً برابر پهنای باند تقسیم بر حجم وزنهاست. برای مدل 70B چهار بیتی (43 GB):
- RTX PRO 6000 Blackwell با 1792 GB/s: حداکثر حدود 40 توکن بر ثانیه
- H200 با 4.8 TB/s: حداکثر حدود 110 توکن بر ثانیه
عدد واقعی پایینتر است، ولی نسبتها درست میمانند. جدول llama.cpp برای Llama 3.1 8B روی یک سخت افزار ثابت همین را نشان میدهد: حدود 72 توکن بر ثانیه با Q4_K_M در برابر حدود 29 توکن با F16. در MoE فقط وزنهای فعال خوانده میشوند؛ gpt-oss-120b با وجود حجم 65 GB میتواند از یک مدل 70B متراکم (dense) سریعتر باشد.
برای چند کاربر، نرم افزار درخواستها را batch میکند: وزنها یک بار خوانده و برای چند درخواست استفاده میشوند. throughput کل بالا میرود و سرعت هر کاربر کمی کم میشود.
کلاسهای GPU
| GPU | حافظه | پهنای باند | توان | فرم و خنک کنندگی |
|---|---|---|---|---|
| GeForce RTX 4090 | 24 GB GDDR6X | ذکر نشده | 450 W | کارت مصرفی، فن |
| GeForce RTX 5090 | 32 GB GDDR7 | 1792 GB/s | 575 W | کارت مصرفی، فن |
| RTX 6000 Ada | 48 GB GDDR6 با ECC | 960 GB/s | 300 W | ایستگاه کاری، دو اسلات، فن |
| RTX PRO 6000 Blackwell Workstation | 96 GB GDDR7 با ECC | 1792 GB/s | 600 W | ایستگاه کاری، دو اسلات، فن |
| RTX PRO 6000 Blackwell Server | 96 GB GDDR7 با ECC | 1597 GB/s | تا 600 W | سرور، خنک کنندگی هوا یا مایع |
| L40S | 48 GB GDDR6 با ECC | 864 GB/s | 350 W | سرور، PCIe Gen4، passive |
| H100 NVL | 94 GB | 3.9 TB/s | 350 تا 400 W | سرور، PCIe دو اسلات |
| H100 SXM | 80 GB | 3.35 TB/s | تا 700 W | ماژول SXM |
| H200 NVL | 141 GB | 4.8 TB/s | تا 600 W | سرور، PCIe دو اسلات |
| H200 SXM | 141 GB | 4.8 TB/s | تا 700 W | ماژول SXM |
| B200 (در DGX B200) | 1,440 GB برای ۸ GPU | 64 TB/s برای ۸ GPU | کل سیستم حدود 14.3 kW | ماژول SXM |
| AMD Instinct MI300X | 192 GB HBM3 | 5.3 TB/s | 750 W | ماژول OAM، passive |
| AMD Instinct MI325X | 256 GB HBM3E | 6 TB/s | 1000 W | ماژول OAM، passive |
| AMD Instinct MI355X | 288 GB HBM3E | 8 TB/s | 1400 W | ماژول OAM |
- کارتهای مصرفی برای شروع و آزمایش مناسباند، ولی حافظهشان محدود است. NVIDIA برای سیستمی با یک RTX 5090 منبع تغذیهی دست کم 1000 وات و با RTX 4090 دست کم 850 وات را لازم میداند.
- کارتهای ایستگاه کاری 48 تا 96 گیگابایت حافظه با ECC دارند. RTX PRO 6000 نسخهی Max-Q هم دارد: همان 96 GB و 1792 GB/s با 300 W، که برای چند کارت در یک شاسی گرمای کمتری تولید میکند.
- H100، H200، B200 و Instinct حافظهی HBM با پهنای باند چند برابر دارند. ماژولهای SXM و OAM کارت PCIe نیستند و فقط روی برد مخصوص خود (HGX در NVIDIA و UBB در AMD) نصب میشوند. تفاوت H100 و H200 را در مقایسهی H100 و H200 ببینید.
چند GPU: NVLink یا PCIe
وقتی مدل در یک GPU جا نشود، باید بین چند GPU تقسیم شود:
- tensor parallelism: هر لایه بین GPUها تقسیم میشود و برای هر توکن دادهی زیادی بین کارتها منتقل میشود؛ پس با NVLink بهترین کارایی را دارد: 900 GB/s در H100 و H200 SXM در برابر 128 GB/s برای PCIe Gen5 x16.
- pipeline parallelism: هر گروه از لایهها روی یک GPU است و ارتباط بین کارتها کمتر است.
مستندات vLLM داخل یک سرور tensor parallelism و بین چند سرور ترکیب آن با pipeline parallelism را توصیه میکند؛ برای کارتهای بدون NVLink مثل L40S، حتی داخل یک سرور pipeline parallelism را. L40S و RTX 6000 Ada طبق datasheet رسمی NVLink ندارند؛ H100 NVL (600 GB/s) و H200 NVL (900 GB/s با bridge دو یا چهار کارته) در سرور PCIe هم NVLink دارند.
Ollama مدلی را که در یک GPU جا شود روی همان GPU میگذارد و در غیر این صورت آن را بین همهی GPUها پخش میکند. وقتی لایهها بین کارتها تقسیم شدهاند، هر توکن به ترتیب از کارتها عبور میکند؛ کارت دوم ظرفیت حافظه را دو برابر میکند، نه لزوماً سرعت یک کاربر را.
بدون GPU دیتاسنتری: CPU و حافظهی یکپارچه
- فقط CPU: AMD EPYC 9755 دوازده کانال DDR5 تا 6400 MT/s و پهنای باند 614 GB/s برای هر سوکت دارد و RAM سرور تا چند ترابایت بالا میرود. برای مدلهای MoE با پارامتر فعال کم و چند کاربر قابل استفاده است، ولی prefill روی CPU خیلی کندتر از GPU است.
- Apple Silicon: Mac Studio با M5 Ultra تا 512 GB حافظهی یکپارچه با 1.2 TB/s دارد و M5 Max تا 128 GB با 614 GB/s. GPU به کل این حافظه دسترسی دارد. برای یک توسعه دهنده یا تیم کوچک معقول است، ولی سرور رک نیست.
- NVIDIA DGX Spark: 128 GB حافظهی یکپارچه با 273 GB/s. مدل بزرگ جا میشود، ولی مدلهای متراکم کند تولید میکنند.
پلتفرم سرور
PCIe و شاسی
هر GPU از نوع PCIe به اسلات x16 نیاز دارد (Gen5 x16 برابر 128 GB/s و Gen4 x16 برابر 64 GB/s). EPYC 9755 طبق مشخصات رسمی 128 lane از نوع PCIe 5.0 دارد. در سرور چند کارته، lane کارتها را با کارت شبکه و NVMe جمع بزنید و ببینید هر اسلات GPU واقعاً x16 است یا نه. برای دادن GPU به ماشین مجازی، VT-d یا AMD-Vi لازم است (نصب Proxmox VE).
برق و خنک کنندگی
- توان GPUها، پردازندهها (EPYC 9755 به تنهایی 500 W TDP دارد)، دیسکها و فنها را جمع بزنید. در منبع تغذیهی افزونهی 1+1، هر PSU باید به تنهایی کل بار را تحمل کند.
- سقف توان و سرمایش هر رک را پیش از خرید با دیتاسنتر هماهنگ کنید؛ یک DGX B200 حدود 14.3 kW مصرف میکند و 10U فضا میگیرد.
- کارتهای passive مثل L40S و ماژولهای Instinct فن ندارند و به جریان هوای سرور وابستهاند؛ آنها را فقط در سروری نصب کنید که سازندهاش آن کارت را پشتیبانی میکند.
- کانکتور برق کارتها یکسان نیست: RTX 5090 کابل 600 وات PCIe Gen 5 (یا چهار 8-pin با تبدیل)، RTX 6000 Ada و L40S کانکتور 16-pin دارند و ماژول OAM برق 54 ولت را از برد UBB میگیرد.
RAM و NVMe
RAM سیستم را دست کم هم اندازهی بزرگترین فایل مدل بگیرید؛ NVIDIA در DGX B200 کنار 1,440 GB حافظهی GPU، 2 TB حافظهی سیستم گذاشته است.
زمان بارگذاری مدل تقریباً حجم فایل تقسیم بر سرعت خواندن دیسک است. رابط SATA با 6 Gb/s سقفی حدود 600 MB/s دارد و بارگذاری مدل 43 GB با آن بیش از یک دقیقه طول میکشد؛ مدلها را روی NVMe محلی نگه دارید (مقایسهی HDD، SSD، SAS و NVMe).
نرم افزار سرویس دهی: Ollama یا vLLM
| Ollama | vLLM | |
|---|---|---|
| راه اندازی | یک دستور؛ لینوکس، ویندوز و macOS | لینوکس؛ پایتون |
| سخت افزار | NVIDIA با compute capability 5.0 به بالا، AMD، Apple، CPU | NVIDIA با compute capability 7.5 به بالا، AMD Instinct و Radeon، و سخت افزارهای دیگر |
| چند کاربر | پیش فرض یک درخواست همزمان برای هر مدل (OLLAMA_NUM_PARALLEL) |
PagedAttention و continuous batching برای throughput بالا |
| چند GPU | پخش لایهها بین GPUها | tensor و pipeline parallelism |
| مناسب برای | یک نفر تا تیم کوچک | سرویس سازمانی با کاربران زیاد |
هر دو API سازگار با OpenAI دارند؛ پس میتوانید با Ollama شروع کنید و بعداً بدون تغییر برنامهها به vLLM بروید.
سه سناریوی نمونه
| سناریو | مدل و حافظه | سخت افزار پیشنهادی | نرم افزار |
|---|---|---|---|
| یک توسعه دهنده | مدل 27 تا 32 میلیاردی در 4 بیت (18 تا 20 GB) | یک RTX 4090 یا RTX 5090، یا Mac با 64 GB حافظهی یکپارچه یا بیشتر | Ollama |
| تیم ۲۰ نفره با رابط چت | 70B در 4 بیت (43 GB) به اضافهی ۸ درخواست همزمان 8K (حدود 20 GiB)؛ جمعاً حدود 65 GB | یک RTX PRO 6000 با 96 GB، یا دو کارت 48 GB مثل L40S یا RTX 6000 Ada | vLLM، یا Ollama با OLLAMA_NUM_PARALLEL=8 |
| RAG سازمانی برای ۱۰۰+ کاربر | 70B در FP8 (حدود 70 GB) به اضافهی ۳۰ درخواست همزمان 16K (150 GiB در 16 بیت یا 75 GiB در FP8) | دو H200 یا چهار H100 SXM با NVLink در یک سرور | vLLM با tensor parallelism |
در RAG، promptها به خاطر اسناد بازیابی شده طولانیاند و prefill بار اصلی است؛ پس توان محاسباتی GPU هم مهم است. مدل embedding و پایگاه دادهی برداری را هم حساب کنید و برای دسترس پذیری، سرور دوم یا ظرفیت اضافه داشته باشید.
خرید GPU دست دوم و refurbished دیتاسنتری
- خنک کنندگی: کارت passive در کیس رومیزی یا سرور بدون جریان هوای کافی داغ میشود و سرعتش افت میکند.
- برق: کابل را از سازندهی سرور بگیرید و از تبدیلهای نامطمئن استفاده نکنید.
- SXM و OAM: ماژول تنها بدون برد HGX یا UBB قابل استفاده نیست.
- پشتیبانی نرم افزاری: CUDA 13.0 پشتیبانی کامپایل و کتابخانه برای معماریهای Maxwell، Pascal و Volta (مثل Tesla P40 و V100) را حذف کرده است و vLLM به compute capability 7.5 به بالا نیاز دارد. Ollama هنوز از 5.0 به بالا پشتیبانی میکند، ولی برای کارتهای 5.0 تا 6.2 درایور 570 میخواهد.
- سلامت کارت: شمارندههای خطای حافظه را با
nvidia-smi -q -d ECCبررسی کنید و کارت را چند ساعت زیر بار کامل تست کنید.
قدم بعدی
پیش از خرید چند کارت، مدل مورد نظر را روی یک کارت یا سرور آزمایشی با Ollama و گزینهی --verbose اجرا کنید تا سرعت واقعی prefill و decode را روی promptهای واقعی سازمان ببینید. این عددها تعداد GPU لازم را از هر جدولی دقیقتر نشان میدهند.
منابع
- NVIDIA H100 Tensor Core GPU www.nvidia.com
- NVIDIA H200 Tensor Core GPU www.nvidia.com
- NVIDIA L40S GPU www.nvidia.com
- NVIDIA DGX B200 www.nvidia.com
- NVIDIA RTX PRO 6000 Blackwell Workstation Edition www.nvidia.com
- NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition www.nvidia.com
- NVIDIA RTX PRO 6000 Blackwell Server Edition www.nvidia.com
- NVIDIA RTX 6000 Ada Generation Datasheet www.nvidia.com
- NVIDIA GeForce RTX 5090 www.nvidia.com
- New GeForce RTX 50 Series Graphics Cards & Laptops (NVIDIA GeForce News) www.nvidia.com
- NVIDIA GeForce RTX 4090 www.nvidia.com
- AMD Instinct MI300X www.amd.com
- AMD Instinct MI325X www.amd.com
- AMD Instinct MI355X www.amd.com
- AMD EPYC 9755 www.amd.com
- Mac Studio — Technical Specifications (Apple) www.apple.com
- NVIDIA DGX Spark www.nvidia.com
- Mastering LLM Techniques — Inference Optimization (NVIDIA Technical Blog) developer.nvidia.com
- The Llama 3 Herd of Models (Meta, arXiv 2407.21783) arxiv.org
- llama.cpp — llama-quantize README github.com
- vLLM — Parallelism and Scaling docs.vllm.ai
- vLLM — GPU Installation docs.vllm.ai
- openai/gpt-oss (GitHub) github.com
- DeepSeek-V4-Flash Model Card (Hugging Face) huggingface.co
- DeepSeek-V4.1-Flash Model Card (Hugging Face) huggingface.co
- CUDA Toolkit 13.0 Release Notes docs.nvidia.com
- Ollama Model Library ollama.com