GPU Planner: איזה GPU צריך ל-LLM

בחרו מודל פתוח או הזינו את הנתונים שלו, את פורמט המשקלים, את אורך ההקשר וכמה בקשות רצות במקביל. תקבלו את זיכרון ה-GPU שהוא צריך, על אילו GPUs הוא נכנס וכמה מכל אחד, קצב משוער ופקודה להרצה. כל תוצאה היא הערכה לפי datasheets של היצרנים וקובצי ה-config של המודלים.

מודל
הנתונים של כל מודל לקוחים מקובץ ה-config.json ומכרטיס המודל הרשמיים שלו; אפשר גם להזין בעצמכם את הנתונים של מודל.
עומס
פורמטים נמוכים צריכים פחות זיכרון ומפיקים מהר יותר, במחיר של מעט איכות.
fp8 מקטין את ה-KV cache בחצי; המנוע צריך לתמוך בזה.
הפרומפט והפלט שבקשה אחת מחזיקה; ה-KV cache נשמר לכולם.
משתמשים או בקשות שמפוענחים יחד; לכל אחת KV cache משלה.
הרצה
הפקודה למטה נכתבת עבורו.
הצעה: הכי מעט GPUs, ואחר כך הכי מעט זיכרון לכל GPU, מבין אלה שהמודל נכנס אליהם.

הערכה הערכות לפי נתוני datasheet ו-config וההנחות המוצהרות, לא מדידות: הזיכרון הוא טווח, והקצב הוא סדר גודל ולא benchmark.

איפה זה רץ

הערכה הצעה: 1 × NVIDIA H100 SXM: נכנס גם ההערכה הזהירה נכנסת בזיכרון הזמין.

תוצאה

זיכרון GPU על GPU אחד
51.67 GB עד 56.43 GB
GPUs
1
זיכרון לכל GPU
51.67 GB עד 56.43 GB
זמין בכל GPU
72 GB
קצב פלט, כל הבקשות
312 tokens בשנייה עד 518 tokens בשנייה
קצב פלט, בקשה אחת
39 tokens בשנייה עד 65 tokens בשנייה
משקלים
32.76 GB עד 34.32 GB
KV cache
17.18 GB עד 17.18 GB
תקורת ריצה
1.73 GB עד 4.93 GB
KV cache לכל token
0.2621 MB
GPUs במאגר שהמודל נכנס אליהם (עד 8 מכל אחד)
10
פירוט
שורהערךהנחות בשימוש
משקלים32.76 GB עד 34.32 GB
  • ביטים למשקל ב-fp8 (הנחה)
  • ביטים למשקל embedding, זהיר (הנחה)
KV cache: רצפים × הקשר × בייטים ל-token17.18 GB עד 17.18 GB
    תקורת ריצה1.73 GB עד 4.93 GB
    • ביטים למשקל ב-fp8 (הנחה)
    • ביטים למשקל embedding, זהיר (הנחה)
    • תקורת ריצה לכל GPU, קבועה, אופטימי (הנחה)
    • תקורת ריצה לכל GPU, קבועה, זהיר (הנחה)
    • תקורת ריצה, חלק מהמשקלים, אופטימי (הנחה)
    • תקורת ריצה, חלק מהמשקלים, זהיר (הנחה)
    סך הכול על GPU אחד51.67 GB עד 56.43 GB
    • ביטים למשקל ב-fp8 (הנחה)
    • ביטים למשקל embedding, זהיר (הנחה)
    • תקורת ריצה לכל GPU, קבועה, אופטימי (הנחה)
    • תקורת ריצה לכל GPU, קבועה, זהיר (הנחה)
    • תקורת ריצה, חלק מהמשקלים, אופטימי (הנחה)
    • תקורת ריצה, חלק מהמשקלים, זהיר (הנחה)
    לכל GPU על 1 × NVIDIA H100 SXM51.67 GB עד 56.43 GB
    • ביטים למשקל ב-fp8 (הנחה)
    • ביטים למשקל embedding, זהיר (הנחה)
    • תקורת ריצה לכל GPU, קבועה, אופטימי (הנחה)
    • תקורת ריצה לכל GPU, קבועה, זהיר (הנחה)
    • תקורת ריצה, חלק מהמשקלים, אופטימי (הנחה)
    • תקורת ריצה, חלק מהמשקלים, זהיר (הנחה)
    זמין ב-NVIDIA H100 SXM אחד72 GB
    • חלק מזיכרון ה-GPU שהשרת רשאי לנצל
    קצב פלט, כל הרצפים312 tokens בשנייה עד 518 tokens בשנייה
    • ביטים למשקל ב-fp8 (הנחה)
    • ביטים למשקל embedding, זהיר (הנחה)
    • רוחב פס זיכרון מנוצל, זהיר (הנחה)
    • רוחב פס זיכרון מנוצל, אופטימי (הנחה)
    • ניצול חישוב, זהיר (הנחה)
    • ניצול חישוב, אופטימי (הנחה)
    • חלק ממוצע של ההקשר שמלא (הנחה)

    מחשבון gpu-planner 1.0.0 · מנוע @anaroq/calc 1.4.0 · תמונת נתונים 2026.10.4 · איך המחשבונים עובדים

    הנחות

    כל מספר שהתוצאה משתמשת בו ולא הזנתם. אפשר לשנות כל אחד מהם כך שיתאים למקרה שלכם.

    • %

      ברירת המחדל של gpu_memory_utilization ב-vLLM; השאר נשאר ל-driver ולתהליכים אחרים.

      מקור ·
    • ביטים למשקל ב-fp8הנחה
      8 ביט (הגדרה קבועה)

      8 ביט למשקל; ה-scales לכל ערוץ או בלוק מוסיפים פחות מ-0.1 ביט.

      אין מקור: זו הנחה שלנו. שנו אותה אם אתם מכירים את המקרה שלכם.
    • ביטים למשקל embedding, זהירהנחה
      16 ביט (הגדרה קבועה)

      checkpoints מכווצים שמתפרסמים משאירים את מטריצות ה-embedding והפלט ב-16 ביט; הקצה הזהיר סופר אותן כך.

      אין מקור: זו הנחה שלנו. שנו אותה אם אתם מכירים את המקרה שלכם.
    • תקורת ריצה לכל GPU, קבועה, אופטימיהנחה
      0.75 GB (הגדרה קבועה)

      CUDA context, שכבת ההגשה ומרחב העבודה של ה-activations בכל GPU: חלק קבוע וחלק שגדל עם המשקלים שה-GPU מחזיק. טווח מוצהר, לא מדידה.

      אין מקור: זו הנחה שלנו. שנו אותה אם אתם מכירים את המקרה שלכם.
    • תקורת ריצה לכל GPU, קבועה, זהירהנחה
      1.5 GB (הגדרה קבועה)

      CUDA context, שכבת ההגשה ומרחב העבודה של ה-activations בכל GPU: חלק קבוע וחלק שגדל עם המשקלים שה-GPU מחזיק. טווח מוצהר, לא מדידה.

      אין מקור: זו הנחה שלנו. שנו אותה אם אתם מכירים את המקרה שלכם.
    • תקורת ריצה, חלק מהמשקלים, אופטימיהנחה
      0.03 (הגדרה קבועה)

      CUDA context, שכבת ההגשה ומרחב העבודה של ה-activations בכל GPU: חלק קבוע וחלק שגדל עם המשקלים שה-GPU מחזיק. טווח מוצהר, לא מדידה.

      אין מקור: זו הנחה שלנו. שנו אותה אם אתם מכירים את המקרה שלכם.
    • תקורת ריצה, חלק מהמשקלים, זהירהנחה
      0.1 (הגדרה קבועה)

      CUDA context, שכבת ההגשה ומרחב העבודה של ה-activations בכל GPU: חלק קבוע וחלק שגדל עם המשקלים שה-GPU מחזיק. טווח מוצהר, לא מדידה.

      אין מקור: זו הנחה שלנו. שנו אותה אם אתם מכירים את המקרה שלכם.
    • רוחב פס זיכרון מנוצל, זהירהנחה
      0.5 (הגדרה קבועה)

      החלק מרוחב הפס של הזיכרון לפי ה-datasheet שקרנלי decode אמיתיים מגיעים אליו: כל token שנוצר קורא את כל המשקלים פעם אחת.

      אין מקור: זו הנחה שלנו. שנו אותה אם אתם מכירים את המקרה שלכם.
    • רוחב פס זיכרון מנוצל, אופטימיהנחה
      0.8 (הגדרה קבועה)

      החלק מרוחב הפס של הזיכרון לפי ה-datasheet שקרנלי decode אמיתיים מגיעים אליו: כל token שנוצר קורא את כל המשקלים פעם אחת.

      אין מקור: זו הנחה שלנו. שנו אותה אם אתם מכירים את המקרה שלכם.
    • ניצול חישוב, זהירהנחה
      0.3 (הגדרה קבועה)

      החלק מקצב ה-tensor המרבי שמגיעים אליו כשרצפים רבים הופכים את ה-decode לתלוי בחישוב (2 FLOPs לפרמטר לכל token).

      אין מקור: זו הנחה שלנו. שנו אותה אם אתם מכירים את המקרה שלכם.
    • ניצול חישוב, אופטימיהנחה
      0.5 (הגדרה קבועה)

      החלק מקצב ה-tensor המרבי שמגיעים אליו כשרצפים רבים הופכים את ה-decode לתלוי בחישוב (2 FLOPs לפרמטר לכל token).

      אין מקור: זו הנחה שלנו. שנו אותה אם אתם מכירים את המקרה שלכם.
    • חלק ממוצע של ההקשר שמלאהנחה
      0.5 (הגדרה קבועה)

      כל צעד decode קורא גם את ה-KV cache של הרצפים; מניחים שרצף נמצא בממוצע בחצי מההקשר שלו.

      אין מקור: זו הנחה שלנו. שנו אותה אם אתם מכירים את המקרה שלכם.

    מה שהזנתם וההנחות ששיניתם נשמרים בקישור של העמוד, אחרי ה-#.

    התאמה לכל GPU במאגר

    הזיכרון של כל GPU לקוח מה-datasheet הרשמי שלו, עם היום שבו נקרא; נתון שנקרא לפני יותר מ-180 ימים מסומן כלא עדכני. הסטטוס הוא על GPU אחד; מספר ה-GPUs הנדרש הוא דרגת ה-tensor parallel הקטנה ביותר (1, ‏2, ‏4 או 8) שנכנסת.

    GPUזיכרוןעל GPU אחד (הערכה)GPUs נדרשים, זהירGPUs נדרשים, אופטימי
    NVIDIA B200180 GBDatasheet · נכנס11
    NVIDIA H200 SXM141 GBDatasheet · נכנס11
    NVIDIA H100 SXM80 GBDatasheet · נכנס11
    NVIDIA H100 NVL94 GBDatasheet · נכנס11
    NVIDIA A100 80GB SXM80 GBDatasheet · נכנס11
    NVIDIA A100 80GB PCIe80 GBDatasheet · נכנס11
    NVIDIA L40S48 GBDatasheet · לא נכנס22
    NVIDIA L424 GBDatasheet · לא נכנס44
    NVIDIA GeForce RTX 509032 GBDatasheet · לא נכנס42
    NVIDIA GeForce RTX 409024 GBDatasheet · לא נכנס44

    פקודה לדוגמה

    נקודת התחלה עם הדגלים המתועדים של המנוע עבור ההקשר, הבקשות והפורמט האלה. כדאי לבדוק אותה מול התיעוד של המנוע בגרסה שלכם:

    serve.sh
    vllm serve Qwen/Qwen3-32B \
      --tensor-parallel-size 1 \
      --max-model-len 8192 \
      --max-num-seqs 8 \
      --gpu-memory-utilization 0.9 \
      --quantization fp8
    

      תיעוד המנוע

      נתונים וגרסאות

      מנוע GPU ‏@anaroq/gpu 1.0.0 · נתוני GPU ‏2026.10.0 · נתוני מודלים 2026.10.0

      קחו את התוצאה איתכם

      הפקודה, והתוצאה כקובץ Markdown: מה שהזנתם, פירוק הזיכרון, ההתאמה לכל GPU, כל ההנחות והקישור שמשחזר את החישוב.

      gpu-planner.md
      # GPU Planner: איזה GPU צריך ל-LLM
      
      הערכה לפי ההנחות שמפורטות למטה, לא מדידה ולא התחייבות.
      
      אין מקור: זו הנחה שלנו. שנו אותה אם אתם מכירים את המקרה שלכם.
      
      ## מה שהזנתם
      
      - מודל פתוח: Qwen3 32B
      - פורמט המשקלים: fp8
      - פורמט ה-KV cache: bf16 (ברירת מחדל)
      - הקשר לבקשה (tokens): 8,192
      - בקשות במקביל: 8
      - מנוע הרצה: vLLM
      - GPU: הציעו לי GPU
      
      ## תוצאה
      
      - זיכרון GPU על GPU אחד: 51.67 GB עד 56.43 GB
      - GPUs: 1
      - זיכרון לכל GPU: 51.67 GB עד 56.43 GB
      - זמין בכל GPU: 72 GB
      - קצב פלט, כל הבקשות: 312 tokens בשנייה עד 518 tokens בשנייה
      - קצב פלט, בקשה אחת: 39 tokens בשנייה עד 65 tokens בשנייה
      - משקלים: 32.76 GB עד 34.32 GB
      - KV cache: 17.18 GB עד 17.18 GB
      - תקורת ריצה: 1.73 GB עד 4.93 GB
      - KV cache לכל token: 0.2621 MB
      - GPUs במאגר שהמודל נכנס אליהם (עד 8 מכל אחד): 10
      
      > הערכה: הערכות לפי נתוני datasheet ו-config וההנחות המוצהרות, לא מדידות: הזיכרון הוא טווח, והקצב הוא סדר גודל ולא benchmark.
      
      ## איפה זה רץ
      
      הצעה: 1 × NVIDIA H100 SXM: נכנס (הערכה)
      
      ## התאמה לכל GPU במאגר
      
      הזיכרון של כל GPU לקוח מה-datasheet הרשמי שלו, עם היום שבו נקרא; נתון שנקרא לפני יותר מ-180 ימים מסומן כלא עדכני. הסטטוס הוא על GPU אחד; מספר ה-GPUs הנדרש הוא דרגת ה-tensor parallel הקטנה ביותר (1, ‏2, ‏4 או 8) שנכנסת.
      
      | GPU | זיכרון | על GPU אחד (הערכה) | GPUs נדרשים, זהיר | GPUs נדרשים, אופטימי |
      | --- | --- | --- | --- | --- |
      | NVIDIA B200 | 180 GB ([Datasheet](https://www.nvidia.com/en-us/data-center/hgx/), 2026-10-13) | נכנס | 1 | 1 |
      | NVIDIA H200 SXM | 141 GB ([Datasheet](https://www.nvidia.com/en-us/data-center/h200/), 2026-10-13) | נכנס | 1 | 1 |
      | NVIDIA H100 SXM | 80 GB ([Datasheet](https://www.nvidia.com/en-us/data-center/h100/), 2026-10-13) | נכנס | 1 | 1 |
      | NVIDIA H100 NVL | 94 GB ([Datasheet](https://www.nvidia.com/en-us/data-center/h100/), 2026-10-13) | נכנס | 1 | 1 |
      | NVIDIA A100 80GB SXM | 80 GB ([Datasheet](https://www.nvidia.com/en-us/data-center/a100/), 2026-10-13) | נכנס | 1 | 1 |
      | NVIDIA A100 80GB PCIe | 80 GB ([Datasheet](https://www.nvidia.com/en-us/data-center/a100/), 2026-10-13) | נכנס | 1 | 1 |
      | NVIDIA L40S | 48 GB ([Datasheet](https://www.nvidia.com/en-us/data-center/l40s/), 2026-10-13) | לא נכנס | 2 | 2 |
      | NVIDIA L4 | 24 GB ([Datasheet](https://www.nvidia.com/en-us/data-center/l4/), 2026-10-13) | לא נכנס | 4 | 4 |
      | NVIDIA GeForce RTX 5090 | 32 GB ([Datasheet](https://images.nvidia.com/aem-dam/Solutions/geforce/blackwell/nvidia-rtx-blackwell-gpu-architecture.pdf), 2026-10-13) | לא נכנס | 4 | 2 |
      | NVIDIA GeForce RTX 4090 | 24 GB ([Datasheet](https://images.nvidia.com/aem-dam/Solutions/geforce/ada/nvidia-ada-gpu-architecture.pdf), 2026-10-13) | לא נכנס | 4 | 4 |
      
      ## פקודה לדוגמה
      
      ```sh
      vllm serve Qwen/Qwen3-32B \
        --tensor-parallel-size 1 \
        --max-model-len 8192 \
        --max-num-seqs 8 \
        --gpu-memory-utilization 0.9 \
        --quantization fp8
      ```
      
      
      ## נתונים וגרסאות
      
      - מנוע GPU ‏@anaroq/gpu 1.0.0 · נתוני GPU ‏2026.10.0 · נתוני מודלים 2026.10.0
      - Qwen/Qwen3-32B: config.json: https://huggingface.co/Qwen/Qwen3-32B/blob/9216db5781bf21249d130ec9da846c4624c16137/config.json (2026-10-13)
      - Qwen/Qwen3-32B: model card: https://huggingface.co/Qwen/Qwen3-32B (2026-10-13)
      - vLLM: Engine Arguments: https://docs.vllm.ai/en/stable/configuration/engine_args.html (2026-10-16)
      - vLLM: FP8 W8A8: https://docs.vllm.ai/en/stable/features/quantization/fp8.html (2026-10-16)
      - vLLM: Quantized KV Cache: https://docs.vllm.ai/en/stable/features/quantization/quantized_kvcache.html (2026-10-16)
      
      ## פירוט
      
      | שורה | ערך | הנחות בשימוש |
      | --- | --- | --- |
      | משקלים | 32.76 GB עד 34.32 GB | ביטים למשקל ב-fp8, ביטים למשקל embedding, זהיר |
      | KV cache: רצפים × הקשר × בייטים ל-token | 17.18 GB עד 17.18 GB | – |
      | תקורת ריצה | 1.73 GB עד 4.93 GB | ביטים למשקל ב-fp8, ביטים למשקל embedding, זהיר, תקורת ריצה לכל GPU, קבועה, אופטימי, תקורת ריצה לכל GPU, קבועה, זהיר, תקורת ריצה, חלק מהמשקלים, אופטימי, תקורת ריצה, חלק מהמשקלים, זהיר |
      | סך הכול על GPU אחד | 51.67 GB עד 56.43 GB | ביטים למשקל ב-fp8, ביטים למשקל embedding, זהיר, תקורת ריצה לכל GPU, קבועה, אופטימי, תקורת ריצה לכל GPU, קבועה, זהיר, תקורת ריצה, חלק מהמשקלים, אופטימי, תקורת ריצה, חלק מהמשקלים, זהיר |
      | לכל GPU על 1 × NVIDIA H100 SXM | 51.67 GB עד 56.43 GB | ביטים למשקל ב-fp8, ביטים למשקל embedding, זהיר, תקורת ריצה לכל GPU, קבועה, אופטימי, תקורת ריצה לכל GPU, קבועה, זהיר, תקורת ריצה, חלק מהמשקלים, אופטימי, תקורת ריצה, חלק מהמשקלים, זהיר |
      | זמין ב-NVIDIA H100 SXM אחד | 72 GB | חלק מזיכרון ה-GPU שהשרת רשאי לנצל |
      | קצב פלט, כל הרצפים | 312 tokens בשנייה עד 518 tokens בשנייה | ביטים למשקל ב-fp8, ביטים למשקל embedding, זהיר, רוחב פס זיכרון מנוצל, זהיר, רוחב פס זיכרון מנוצל, אופטימי, ניצול חישוב, זהיר, ניצול חישוב, אופטימי, חלק ממוצע של ההקשר שמלא |
      
      ## הנחות
      
      - חלק מזיכרון ה-GPU שהשרת רשאי לנצל: 90%. ברירת המחדל של gpu_memory_utilization ב-vLLM; השאר נשאר ל-driver ולתהליכים אחרים. מקור: https://docs.vllm.ai/en/stable/configuration/engine_args.html (נקרא ב-16 באוק׳ 2026)
      - ביטים למשקל ב-fp8: 8 ביט. 8 ביט למשקל; ה-scales לכל ערוץ או בלוק מוסיפים פחות מ-0.1 ביט. **הנחה**
      - ביטים למשקל embedding, זהיר: 16 ביט. checkpoints מכווצים שמתפרסמים משאירים את מטריצות ה-embedding והפלט ב-16 ביט; הקצה הזהיר סופר אותן כך. **הנחה**
      - תקורת ריצה לכל GPU, קבועה, אופטימי: 0.75 GB. CUDA context, שכבת ההגשה ומרחב העבודה של ה-activations בכל GPU: חלק קבוע וחלק שגדל עם המשקלים שה-GPU מחזיק. טווח מוצהר, לא מדידה. **הנחה**
      - תקורת ריצה לכל GPU, קבועה, זהיר: 1.5 GB. CUDA context, שכבת ההגשה ומרחב העבודה של ה-activations בכל GPU: חלק קבוע וחלק שגדל עם המשקלים שה-GPU מחזיק. טווח מוצהר, לא מדידה. **הנחה**
      - תקורת ריצה, חלק מהמשקלים, אופטימי: 0.03. CUDA context, שכבת ההגשה ומרחב העבודה של ה-activations בכל GPU: חלק קבוע וחלק שגדל עם המשקלים שה-GPU מחזיק. טווח מוצהר, לא מדידה. **הנחה**
      - תקורת ריצה, חלק מהמשקלים, זהיר: 0.1. CUDA context, שכבת ההגשה ומרחב העבודה של ה-activations בכל GPU: חלק קבוע וחלק שגדל עם המשקלים שה-GPU מחזיק. טווח מוצהר, לא מדידה. **הנחה**
      - רוחב פס זיכרון מנוצל, זהיר: 0.5. החלק מרוחב הפס של הזיכרון לפי ה-datasheet שקרנלי decode אמיתיים מגיעים אליו: כל token שנוצר קורא את כל המשקלים פעם אחת. **הנחה**
      - רוחב פס זיכרון מנוצל, אופטימי: 0.8. החלק מרוחב הפס של הזיכרון לפי ה-datasheet שקרנלי decode אמיתיים מגיעים אליו: כל token שנוצר קורא את כל המשקלים פעם אחת. **הנחה**
      - ניצול חישוב, זהיר: 0.3. החלק מקצב ה-tensor המרבי שמגיעים אליו כשרצפים רבים הופכים את ה-decode לתלוי בחישוב (2 FLOPs לפרמטר לכל token). **הנחה**
      - ניצול חישוב, אופטימי: 0.5. החלק מקצב ה-tensor המרבי שמגיעים אליו כשרצפים רבים הופכים את ה-decode לתלוי בחישוב (2 FLOPs לפרמטר לכל token). **הנחה**
      - חלק ממוצע של ההקשר שמלא: 0.5. כל צעד decode קורא גם את ה-KV cache של הרצפים; מניחים שרצף נמצא בממוצע בחצי מההקשר שלו. **הנחה**
      
      מחשבון gpu-planner 1.0.0 · מנוע @anaroq/calc 1.4.0 · תמונת נתונים 2026.10.4
      
      פתיחת החישוב הזה: https://anaroq.com/he/tools/gpu-planner#k=eyJhc3N1bXB0aW9ucyI6e30sImNhbGMiOiJncHUtcGxhbm5lciIsImlucHV0Ijp7ImJhdGNoIjo4LCJjb250ZXh0VG9rZW5zIjo4MTkyLCJlbmdpbmUiOiJ2bGxtIiwiZ3B1IjoiYXV0byIsImt2RHR5cGUiOiJiZjE2IiwibWFudWFsQXR0ZW50aW9uSGVhZHMiOjMyLCJtYW51YWxIZWFkRGltIjoxMjgsIm1hbnVhbEhpZGRlblNpemUiOjQwOTYsIm1hbnVhbEt2SGVhZHMiOjgsIm1hbnVhbExheWVycyI6MzIsIm1hbnVhbFBhcmFtZXRlcnNCIjo4LjAzLCJtYW51YWxWb2NhYlNpemUiOjEyODI1NiwibW9kZWwiOiJxd2VuMy0zMmIiLCJxdWFudGl6YXRpb24iOiJmcDgifSwidiI6MX0
      איך המחשבונים עובדים: https://anaroq.com/he/methodology#calculators
      

      מה הכלי עושה

      הכלי מחשב את זיכרון ה-GPU שמודל LLM פתוח צריך לפי פורמט משקלים, אורך הקשר ומספר בקשות במקביל, ובודק אותו מול כל GPU במאגר: נכנס, צפוף או לא נכנס, וכמה GPUs נדרשים ב-tensor parallel. ל-GPU שבחרתם, או לזה שהוא מציע, הוא מוסיף קצב decode משוער ופקודה ל-vLLM או ל-Ollama. הנתונים מגיעים ממנוע ה-GPU של האתר (@anaroq/gpu), מה-datasheets של ה-GPUs ומקובצי ה-config של המודלים עצמם, כל אחד עם הגרסה והמקור שלו.

      איך זה עובד

      1. משקלים = פרמטרים × ביטים למשקל ÷ 8. הקצה הזהיר משאיר את מטריצות ה-embedding והפלט ב-16 ביט, כמו ב-checkpoints מכווצים שמתפרסמים; ב-int4 נספרים 4.25 ביט בגלל ה-scales.
      2. KV cache = ‏2 × שכבות × ראשי KV × ממד ראש × בייטים (2, או 1 ב-fp8) × הקשר × בקשות במקביל: המקרה הגרוע ששרת שומר עבורו.
      3. תקורת ריצה לכל GPU = ‏0.75 עד 1.5 GB ועוד 3 עד 10% מהמשקלים שהוא מחזיק.
      4. התאמה: הסך הזהיר נכנס ב-90% מזיכרון ה-GPU (ברירת המחדל של vLLM), וצפוף כשרק הסך האופטימי נכנס. ב-tensor parallel על 1, ‏2, ‏4 או 8 GPUs המשקלים מתחלקים שווה וה-KV cache מתחלק עד מספר ראשי ה-KV; הדרגה חייבת לחלק את מספר ראשי ה-attention.
      5. הצעה: מבין ה-GPUs שהמודל נכנס אליהם, הכי מעט GPUs, אחר כך GPU עם תמיכה ב-FP8 כשהמשקלים ב-fp8, ואחר כך הכי מעט זיכרון לכל GPU. שום מחיר לא משפיע על הבחירה.
      6. קצב: כל token שנוצר קורא את כל המשקלים ואת ה-KV cache של הבקשות, ב-50 עד 80% מרוחב הפס של הזיכרון לפי ה-datasheet, אלא אם 30 עד 50% מכוח החישוב המרבי של ה-tensor ‏(2 FLOPs לפרמטר לכל token) נמוך מזה. סדר גודל, לא benchmark.

      דוגמה

      Qwen3 32B ב-fp8, ‏8 בקשות במקביל של 8,192 tokens כל אחת, עם vLLM, וה-GPU לפי ההצעה:

      Qwen3 32B · fp8 · KV bf16 · 8 × 8,192 tokens · vLLM · הצעת GPU

      הערכה

      זיכרון GPU על GPU אחד
      51.67 GB עד 56.43 GB
      GPUs
      1
      זיכרון לכל GPU
      51.67 GB עד 56.43 GB
      זמין בכל GPU
      72 GB
      קצב פלט, כל הבקשות
      312 tokens בשנייה עד 518 tokens בשנייה
      קצב פלט, בקשה אחת
      39 tokens בשנייה עד 65 tokens בשנייה
      משקלים
      32.76 GB עד 34.32 GB
      KV cache
      17.18 GB עד 17.18 GB
      תקורת ריצה
      1.73 GB עד 4.93 GB
      KV cache לכל token
      0.2621 MB
      GPUs במאגר שהמודל נכנס אליהם (עד 8 מכל אחד)
      10

      מגבלות

      • הערכה, לא מדידה: הזיכרון והקצב בפועל תלויים במנוע, בגרסה שלו, בקרנלים ובתעבורה. מדדו על החומרה שלכם לפני שאתם סומכים על זה.
      • מודלים dense בלבד: מודלי mixture-of-experts דורשים מידול של הפרמטרים הפעילים, שאין בגרסה הזו.
      • Tensor parallel בתוך שרת אחד, עד 8 GPUs; התקשורת בין ה-GPUs לא נספרת בקצב.
      • המאגר מכיל datasheets של יצרן ל-GPUs של NVIDIA בלבד; אין בו מחיר או הצעה.
      • פקודת Ollama צריכה את ה-tag של המודל או repository של GGUF, ורק אתם יכולים לבחור אותם.

      מתודולוגיה: איך מחושבים המספרים

      מקורות

      1. ANAROQ calculator methodology: assumptions, units and rounding
      2. NVIDIA H100 Tensor Core GPU: Product Specifications
      3. vLLM: Engine Arguments
      4. Ollama: FAQ

      עודכן

      הצעד הבא

      מחשבון עלות LLM: ‏self-host מול API

      כלי ציבורי חינמי של אנרוק, חברה שבונה תשתיות מחשוב. מה אנרוק בונה