LLM VRAM 요구량 계산기

이 계산기에 모델, 가중치 양자화(quantization), KV cache(KV 캐시) 정밀도, 컨텍스트 길이, 동시 시퀀스 수와 GPU를 넣으면 LLM VRAM 요구량을 가중치와 KV cache로 나눠 계산하고, 그 GPU에서 여유 있음·빠듯함·부족 중 어디에 해당하는지 판정합니다. 핵심 공식은 두 개입니다. 가중치는 파라미터 수 × bpw(bits per weight, 가중치당 평균 비트 수) ÷ 8 바이트이고, KV cache는 컨텍스트 길이와 동시 시퀀스 수에 비례해 늘어납니다. 그래서 전체 컨텍스트를 저장하는 층만 있는 모델이라면 컨텍스트를 4배로 늘릴 때 KV cache도 4배가 됩니다. 최근 토큰만 저장하는 층이나 선형 어텐션 층을 섞은 모델은 그보다 덜 늘어납니다. 결과는 모델 config와 공개 실측 bpw로 계산한 추정치이며, 엔진·버전·설정에 따라 실제 사용량은 달라질 수 있습니다.

모델
MoE는 활성 파라미터가 아니라 총 파라미터를 모두 적재합니다.
토큰당 연산량 참고값입니다. 메모리 계산에는 쓰지 않습니다. 0 = 해당 없음
정밀도·컨텍스트
bpw = 가중치 1개당 평균 비트 수. GGUF 값은 llama.cpp quantize README의 Llama-3.1-8B 실측 평균 bpw. 모델에 따라 ±0.1~0.2 bpw 차이가 난다(Qwen3-8B 공식 GGUF Q4_K_M 4.911).
원소당 바이트. 품질 영향은 이 계산 범위 밖입니다.
시퀀스 하나의 입력+출력 토큰 수(엔진의 최대 컨텍스트 설정값).
동시 요청·batch·llama.cpp --parallel 슬롯 수.
GPU
제조사 표기 GB(10^9 B). 계산은 GiB(2^30 B)로 환산해 비교합니다.
여러 장이면 합계로 비교합니다(tensor parallel 가정). KV head 수보다 많이 나누면 GPU당 KV가 덜 줄어들 수 있습니다.
통합 메모리(Apple·DGX Spark)는 OS와 공유하므로 낮춰 보세요. 적정 비율의 공식 근거는 미확인입니다.
런타임 여유
활성화·CUDA graph 등 공식 고정값이 없는 부분. 기본 10%, 보수적으로는 20%까지.
기본 0.5 GiB. llama.cpp --fit-target 기본값은 1 GiB(1024 MiB)입니다.
모델 구조값(config.json) 보기·수정
config num_hidden_layers
sliding·선형 층을 뺀 full(global) attention 층
config num_key_value_heads(GQA·MQA 반영)
config head_dim(없으면 hidden_size ÷ num_attention_heads)
Gemma 4 global 층처럼 K와 V가 같은 모델에서 엔진이 한 번만 저장할 때. 엔진 지원 여부 미확인.

여유 있음 권장 요구량 6.63 GiB가 가용 메모리 7.45 GiB 안에 들어갑니다(권장 기준 0.82 GiB 남음). 추정치이며 엔진·설정에 따라 달라집니다.

가중치 근사
4.58 GiB8.03B 파라미터 × 4.8944 bpw ÷ 8 = 4.91 GB
KV cache 이론값
1.00 GiB토큰당 128.0 KiB × 8,192토큰 × 시퀀스 1개
최소 요구량 여유 제외
5.58 GiB가중치 + KV cache(+선형 상태)만 합한 값
권장 요구량 추정
6.63 GiB최소 요구량 × (1 + 여유율) + 고정 여유
가용 메모리 표기값 환산
7.45 GiBGeForce RTX 4060 × 1장 = 8 GB = 7.45 GiB

주요 GPU별 판정 (위 모델·설정, GPU 1장, 표기 용량 100% 기준)

메모리GPUGiB 환산판정권장 대비
8 GBGeForce RTX 4060, GeForce RTX 4060 Ti 8GB, GeForce RTX 5050 / 5060, GeForce RTX 5060 Ti 8GB7.45여유 있음+0.82 GiB
12 GBGeForce RTX 4070 / 4070 SUPER / 4070 Ti, GeForce RTX 507011.18여유 있음+4.54 GiB
16 GBGeForce RTX 4060 Ti 16GB, GeForce RTX 4070 Ti SUPER / 4080 / 4080 SUPER, GeForce RTX 5060 Ti 16GB, GeForce RTX 5070 Ti / 508014.90여유 있음+8.27 GiB
24 GBGeForce RTX 409022.35여유 있음+15.72 GiB
32 GBGeForce RTX 509029.80여유 있음+23.17 GiB
40 GBNVIDIA A100 40GB37.25여유 있음+30.62 GiB
80 GBNVIDIA A100 80GB, NVIDIA H100 SXM74.51여유 있음+67.87 GiB
94 GBNVIDIA H100 NVL87.54여유 있음+80.91 GiB
96 GBRTX PRO 6000 Blackwell Workstation89.41여유 있음+82.77 GiB
128 GBNVIDIA DGX Spark, Mac Studio M5 Max (최대 구성) (통합 메모리)119.21여유 있음+112.58 GiB
141 GBNVIDIA H200131.32여유 있음+124.68 GiB
180 GBNVIDIA B200167.64여유 있음+161.01 GiB
512 GBMac Studio M5 Ultra (최대 구성) (통합 메모리)476.84여유 있음+470.20 GiB

모든 값은 config.json 구조값과 평균 bpw로 계산한 추정치이며 실행을 보장하지 않습니다. 판정: 권장 요구량 이하이면 여유 있음, 최소 요구량은 들어가지만 권장 요구량을 넘으면 빠듯함, 최소 요구량을 넘으면 부족.

단위: GiB = 2^30 B, GB = 10^9 B. GPU 표기 GB는 10^9 B로 보고 GiB로 환산합니다(예: 80 GB = 74.51 GiB).

엔진별 차이: vLLM은 기동 시 GPU 메모리의 일정 비율(--gpu-memory-utilization 기본 0.92)을 미리 잡고 남는 공간을 KV cache로 채우므로 nvidia-smi 사용량은 이 추정보다 크게 보입니다. llama.cpp는 sliding window 층에 window보다 조금 큰 버퍼를 잡고, --fit이 장치마다 약 1 GiB를 남기도록 설정을 조정합니다. 실측은 vLLM·llama.cpp 기동 로그의 KV cache 크기와 nvidia-smi로 확인하세요.

가중치는 파라미터 수 × 평균 bpw ÷ 8로 근사합니다. 4bit 포맷도 스케일·혼합 텐서 때문에 실제 평균은 4.0 bpw보다 큽니다(Q4_K_M 약 4.89). 출처·확인일: 모델 config·카드, llama.cpp·vLLM 문서, 제조사 사양(2026-10-20 확인).

LLM VRAM 계산기 사용법

처음 화면은 Llama 3.1 8B Instruct, GGUF Q4_K_M, BF16 KV cache, 8,192토큰, 시퀀스 1개, GeForce RTX 4060(8 GB) 조합입니다. 이 조건의 결과는 가중치 4.58 GiB, KV cache 1.00 GiB, 최소 요구량 5.58 GiB, 권장 요구량 6.63 GiB이고, 8 GB는 7.45 GiB로 환산되므로 여유 있음(권장 기준 0.82 GiB 남음)입니다.

입력은 위에서 아래로 바꿔 보면 됩니다. 각 칸의 의미는 계산기 안의 도움말에 있으므로, 여기서는 어떤 순서로 무엇을 바꾸면 좋은지만 정리합니다.

하고 싶은 일바꿀 입력결과에서 볼 곳
내 GPU에 이 모델이 들어가는지 확인모델 프리셋 → GPU판정 배지와 권장 요구량
몇 bit 양자화까지 내려야 하는지 확인가중치 양자화가중치 행
긴 문서를 넣을 수 있는지 확인컨텍스트 길이KV cache 행
여러 사용자가 동시에 쓰는 서버 계획동시 시퀀스 수KV cache 행
GPU를 바꾸거나 늘릴지 결정GPU, GPU 개수아래 주요 GPU별 판정 표
목록에 없는 모델 계산모델 구조값(config.json) 보기·수정가중치·KV cache 행 전체

주요 GPU별 판정 표는 같은 모델·설정을 GPU 1장, 표기 용량 100% 기준으로 한꺼번에 판정합니다. 한 번 설정해 두면 8 GB부터 512 GB까지 어느 용량부터 여유가 생기는지 바로 보입니다.

목록에 없는 모델은 Hugging Face 저장소의 config.json에서 num_hidden_layers, num_key_value_heads, head_dim, sliding_window 같은 값을 읽어 구조값 칸에 넣으면 됩니다. 이때 총 파라미터 수는 양자화 저장소가 아니라 원본(BF16) 저장소나 모델 카드의 값을 쓰는 것이 안전합니다. 양자화 저장소는 패킹된 정수 원소 수를 파라미터 수처럼 집계하는 경우가 있어 실제보다 작게 나올 수 있습니다.

LLM VRAM은 무엇으로 정해지는가

추론에 필요한 메모리는 세 부분으로 나눌 수 있습니다. 앞의 두 부분은 모델 구조로 계산할 수 있고, 마지막 부분은 공개된 공식 고정값이 없습니다.

flowchart LR
    A["가중치<br/>파라미터 수 × bpw ÷ 8"] --> D["최소 요구량<br/>(여유 제외)"]
    B["KV cache<br/>토큰 수 × 시퀀스 수에 비례"] --> D
    C["선형 어텐션 상태<br/>시퀀스당 고정 크기"] --> D
    D --> E["권장 요구량<br/>최소 × (1 + 여유율) + 고정 여유"]
    F["런타임 여유<br/>활성화·CUDA graph 등"] --> E

계산기는 앞의 두 항(일부 모델은 선형 어텐션 상태까지)을 더해 최소 요구량을 만들고, 여기에 여유율 10%와 고정 여유 0.5 GiB를 더해 권장 요구량을 만듭니다. 두 값 모두 입력으로 조정할 수 있습니다.

가중치: 파라미터 수 × bpw ÷ 8

가중치 메모리는 파라미터 수에 파라미터 하나가 차지하는 평균 비트 수를 곱하고 8로 나눈 바이트입니다.

Plain Text

BF16이면 16 bpw라 파라미터당 2바이트, FP8·INT8이면 1바이트입니다. 기본값인 Llama 3.1 8B(8,030,261,248개)를 Q4_K_M(4.8944 bpw)으로 계산하면 4.91 GB, 즉 4.58 GiB입니다. llama.cpp가 공개한 같은 모델의 Q4_K_M 실측 크기도 4.58 GiB입니다.

MoE(Mixture of Experts, 전문가 혼합) 모델은 활성 파라미터가 아니라 총 파라미터로 계산합니다. 토큰마다 일부 전문가만 계산에 쓰이지만, 어느 전문가가 선택될지 모르므로 모든 전문가 가중치를 메모리에 올려 두어야 하기 때문입니다. Qwen3-30B-A3B는 활성 파라미터가 3.3B이지만 총 30.5B를 적재하므로 Q4_K_M 가중치가 17.40 GiB입니다.

4bit 양자화가 4.0 bpw가 아닌 이유

4bit 양자화라고 해서 파라미터당 정확히 0.5바이트가 되지는 않습니다. 실제 포맷은 일정 개수의 가중치마다 스케일 값을 따로 저장하고, 임베딩·출력층 같은 일부 텐서는 더 높은 정밀도로 남겨 두기 때문입니다.

포맷평균 bpw4.0보다 커지는 이유
이론 INT44.0스케일을 계산에 넣지 않은 값
AWQ·GPTQ 4bit g1284.156128개마다 FP16 스케일과 4bit zero point
MXFP44.2532개마다 1바이트 스케일
GGUF Q4_K_M4.8944블록 스케일과 일부 텐서의 Q6_K 혼합(Llama 3.1 8B 실측)

이 차이는 큰 모델에서 크게 벌어집니다. Llama 3.3 70B 가중치는 이론 INT4로 32.85 GiB지만 Q4_K_M으로는 40.20 GiB입니다. 약 7 GiB 차이라 GPU 한 장 판정이 바뀔 수 있습니다. AWQ·GPTQ도 양자화한 선형층만 4.156 bpw이고 임베딩과 출력층은 FP16·BF16으로 남으므로, 어휘가 큰 모델에서는 전체 평균이 더 올라갑니다. Qwen3-14B-AWQ의 전체 평균은 5.40 bpw입니다.

GGUF 값은 llama.cpp가 Llama 3.1 8B에서 측정한 평균입니다. 모델마다 0.1-0.2 bpw 정도 차이가 날 수 있으며, Qwen3-8B 공식 GGUF의 Q4_K_M은 4.911 bpw였습니다.

KV cache: 컨텍스트 길이에 비례

KV cache는 앞서 처리한 토큰의 key와 value를 층마다 저장해 두는 공간입니다. 새 토큰을 만들 때마다 이전 토큰을 다시 계산하지 않으려고 쓰는 것이므로, 저장할 토큰이 많을수록 커집니다.

Plain Text

Llama 3.1 8B는 32층, KV head 8개, head_dim 128이므로 BF16에서 토큰 하나당 128 KiB입니다. 8,192토큰이면 1.00 GiB, 32,768토큰이면 4.00 GiB, 131,072토큰이면 16.00 GiB입니다. 128K 컨텍스트에서는 KV cache가 Q4_K_M 가중치(4.58 GiB)의 3배를 넘습니다. 동시 시퀀스 수를 2로 올려도 같은 비율로 두 배가 됩니다.

KV cache 정밀도를 낮추면 이 값이 줄어듭니다. FP8은 원소당 1바이트, llama.cpp의 q8_0은 1.0625바이트, q4_0은 0.5625바이트입니다. 다만 품질에 주는 영향은 모델과 작업에 따라 다르고 이 계산기는 판단하지 않습니다.

어텐션 구조가 결과를 바꾸는 이유

위 공식을 모든 층에 똑같이 적용하면 2025-2026년에 나온 상당수 모델에서 KV cache를 몇 배에서 수십 배까지 과대 추정합니다. 모델마다 무엇을 얼마나 저장하는지가 다르기 때문입니다.

구조저장 방식예시(BF16, 시퀀스 1개)
GQA(그룹 쿼리 어텐션)여러 query head가 KV head 하나를 공유해 KV head 수만큼만 저장Llama 3.1 8B: query head 32개, KV head 8개라 모든 head에 KV를 둘 때의 1/4
sliding window(슬라이딩 윈도)일부 층은 최근 window 토큰만 보므로 그만큼만 저장Gemma 3 27B 128K: full 10층 10.00 GiB + sliding 52층 0.41 GiB = 10.41 GiB. 62층 모두 전체 컨텍스트로 계산하면 62.00 GiB
MLA(다중 헤드 잠재 어텐션)K·V 대신 압축한 잠재 벡터 하나와 위치 성분만 저장DeepSeek-V3/R1: 토큰당 68.6 KiB, 128K에서 8.58 GiB. 일반 공식을 쓰면 수십 배로 부풀어 나옴
선형 어텐션 혼합선형 층은 토큰 수와 무관한 고정 크기 상태만 보유Qwen3.8-27B 128K: full 16층 KV cache 8.00 GiB + 선형 48층 상태 144 MiB

그래서 계산기의 프리셋은 config에서 전체 어텐션 층 수와 sliding window 층 수, window 크기, MLA 차원, 선형 층 수를 따로 읽어 둡니다. 직접 입력할 때도 모델 구조값의 어텐션 유형을 맞게 골라야 결과가 의미를 가집니다.

Gemma 4의 global 층은 K와 V가 같은 값을 쓰는 구조입니다. 엔진이 이를 한 번만 저장하는지는 확인하지 못해 기본값은 K·V를 각각 계산하는 보수적인 값이고, “K=V 공유 층을 한 번만 저장”을 켜면 그 층의 KV cache가 절반이 됩니다. Qwen3.5 이후 모델의 선형 층 상태도 FP32로 가정한 값이며 엔진별 실측은 확인하지 못했습니다.

GiB와 GB를 섞지 않는 이유

계산기는 모든 비교를 GiB(2^30바이트)로 합니다. GPU 제조사의 표기 용량은 10진 GB(10^9바이트)로 보고 GiB로 바꿔 비교합니다. 제조사 페이지가 표기 단위를 명시하지 않아, 더 작게 나오는 쪽으로 잡은 것입니다.

표기 용량GiB 환산
8 GB7.45 GiB
16 GB14.90 GiB
24 GB22.35 GiB
32 GB29.80 GiB
80 GB74.51 GiB

80 GB GPU에 “70 GB짜리 모델”이 들어간다고 볼 때 70 GB가 10진 단위라면 65.19 GiB이고, 2진 단위라면 70 GiB입니다. 단위를 섞으면 이 정도 차이가 판정을 바꿉니다.

판정 3단계가 뜻하는 것

판정은 최소 요구량과 권장 요구량을 가용 메모리와 비교해 정합니다.

판정조건읽는 법
여유 있음권장 요구량 ≤ 가용 메모리기본 여유를 더해도 들어갑니다. 그래도 실행 보장은 아닙니다
빠듯함최소 요구량 ≤ 가용 메모리 < 권장 요구량가중치와 KV cache는 들어가지만 런타임 여유가 모자랍니다. 엔진과 설정에 따라 실행될 수도, 메모리 부족으로 멈출 수도 있습니다
부족최소 요구량 > 가용 메모리가중치와 KV cache만으로 넘칩니다. 설정을 바꾸지 않으면 GPU에 모두 올릴 수 없습니다

기본 여유율 10%와 고정 여유 0.5 GiB는 gpt-oss 모델 카드의 두 진술(“single 80GB GPU”, “within 16GB”)과 모순되지 않는 값으로 정했습니다. 더 보수적으로 잡고 싶다면 여유율을 20%, 고정 여유를 1 GiB까지 올릴 수 있습니다. 20%는 Hugging Face Accelerate 문서가 추론 시 “up to an additional 20%”를 예상하라고 한 값이고, 1 GiB는 llama.cpp --fit-target의 기본값(1024 MiB)입니다.

“빠듯함”이나 “부족”이 나왔을 때 VRAM 요구량을 줄이는 방법은 대체로 다음 순서로 검토합니다.

  1. 컨텍스트 길이와 동시 시퀀스 수를 실제로 필요한 만큼으로 줄인다.
  2. KV cache를 FP8이나 q8_0으로 양자화한다.
  3. 가중치를 더 낮은 bpw 포맷으로 바꾼다.
  4. MoE라면 전문가 가중치 일부를 CPU 메모리로 오프로딩(offloading)한다(계산기에는 반영되지 않음).
  5. GPU를 늘리거나 더 큰 GPU로 바꾼다.

실제 사례로 보는 LLM VRAM 판정

아래 수치는 모두 계산기에 같은 조건을 넣었을 때의 결과입니다. 여유율 10%, 고정 여유 0.5 GiB, BF16 KV cache, 시퀀스 1개 기준입니다.

Llama 3.1 8B Q4_K_M: 8GB GPU에서는 컨텍스트가 관건

조건가중치KV cache최소권장가용판정
8K · RTX 4060 8 GB4.581.005.586.637.45여유 있음(0.82 GiB 남음)
32K · RTX 4060 8 GB4.584.008.589.937.45부족(1.12 GiB 초과)
128K · RTX 4090 24 GB4.5816.0020.5823.1322.35빠듯함(권장 대비 0.78 GiB 모자람)

단위는 GiB입니다. 가중치는 그대로인데 컨텍스트만 늘려도 8 GB GPU에서 판정이 “여유 있음”에서 “부족”으로 바뀝니다. 128K를 쓰려면 24 GB GPU에서도 여유가 부족합니다. 8 GB GPU에 8B 모델이 “들어간다”는 말은 컨텍스트 조건을 함께 말해야 맞는 문장입니다.

gpt-oss-20b·120b: 모델 카드의 문장과 대조

gpt-oss 두 모델은 MoE 가중치를 MXFP4로, 나머지를 BF16으로 배포합니다. 계산기는 이 혼합 형식을 bpw로 근사하지 않고 배포 파일의 실측 크기(20b 13.76 GB, 120b 65.25 GB)를 그대로 씁니다.

조건최소권장가용판정
gpt-oss-120b · 128K · H100 80 GB65.2772.3074.51여유 있음(2.21 GiB 남음)
gpt-oss-20b · 8K · 16 GB GPU13.0114.8114.90여유 있음(0.09 GiB 남음)
gpt-oss-20b · 32K · 16 GB GPU13.5715.4314.90빠듯함(0.52 GiB 모자람)
gpt-oss-20b · 128K · 16 GB GPU15.8217.9014.90부족(0.92 GiB 초과)
gpt-oss-20b · 128K · q8_0 KV · 16 GB GPU14.4116.3514.90빠듯함(1.45 GiB 모자람)

OpenAI 모델 카드는 gpt-oss-120b가 “single 80GB GPU”에서, gpt-oss-20b가 “within 16GB of memory”에서 실행된다고 설명합니다. 120b는 최대 컨텍스트 128K에서도 80 GB GPU에 여유 있게 들어가므로 카드와 맞습니다. 20b는 8K에서는 맞지만, 128K까지 늘리면 가중치와 KV cache만으로 16 GB를 넘습니다. 카드가 컨텍스트 조건을 밝히지 않았으므로 모순은 아닙니다. 다만 이 계산기의 가정, 즉 BF16 KV cache로 모두 GPU에 올리는 조건에서는 16 GB로 128K를 쓰기 어렵다는 뜻입니다. 실제로 쓸 수 있는 컨텍스트는 KV cache 정밀도와 엔진의 메모리 할당 방식에 따라 달라집니다. KV cache를 q8_0으로 낮추면 128K에서도 “부족”이 “빠듯함”으로 올라오고, 최소 요구량(14.41 GiB)은 가용 메모리 안에 들어옵니다.

gpt-oss는 층의 절반이 window 128토큰의 sliding window 층이라, 128K에서도 sliding 층 KV cache는 20b 3 MiB, 120b 4.5 MiB에 그칩니다.

Llama 3.3 70B: 4bit라는 말만으로는 판정할 수 없다

조건가중치최소권장가용판정
Q4_K_M · 8K · RTX 4090 × 240.2042.7047.4744.70빠듯함(2.77 GiB 모자람)
Q4_K_M · 32K · RTX 4090 × 240.2050.2055.7244.70부족(5.50 GiB 초과)
이론 INT4 · 8K · RTX 4090 × 232.8535.3539.3944.70여유 있음(5.31 GiB 남음)

같은 “4bit”라도 이론 INT4로 계산하면 24 GB GPU 두 장에 여유 있게 들어가는 것처럼 보이지만, 실제로 많이 쓰는 Q4_K_M은 8K에서도 빠듯합니다. Q4_K_M 가중치 40.20 GiB(43.16 GB)는 llama.cpp가 Llama 3.1 70B Q4_K_M에 대해 공개한 43.1 GB와 맞습니다. GPU 두 장은 메모리를 합쳐 비교한 값이며, 실제로 두 장에 나눠 싣는 효율은 아래 한계 절의 조건을 따릅니다.

이 계산기가 보여 주지 않는 것

계산기의 최소 요구량은 가중치와 KV cache(와 선형 상태)만 합한 값입니다. 실제 실행에서는 아래 요인이 더해지거나 계산 방식이 달라집니다.

항목실제 동작계산기의 처리
엔진의 사전 할당vLLM은 기동할 때 GPU 메모리의 일정 비율(--gpu-memory-utilization 기본 0.92)을 잡고, 가중치·활성화·CUDA graph를 뺀 나머지를 KV cache로 미리 채웁니다반영하지 않음. nvidia-smi 사용량은 이 추정보다 크게 보입니다
sliding window 버퍼llama.cpp는 window보다 조금 큰 버퍼(window + n_ubatch, 256 단위 올림)를 잡고, --swa-full이면 전체 컨텍스트만큼 잡습니다기본은 window만큼의 이론 하한. “sliding 층도 전체 컨텍스트만큼 할당”을 켜면 --swa-full 조건으로 계산
활성화(activation) 메모리prefill(프롬프트 처리 단계) 배치 크기(vLLM max_num_batched_tokens, llama.cpp n_ubatch)에 비례하지만 공개 공식이 없습니다여유율에 포함
비전·오디오 인코더Gemma·Qwen3.5 이후·Mistral Small 3.x 프리셋의 파라미터 수에 인코더가 포함됩니다포함해서 계산(텍스트 전용 적재보다 약간 큼)
오프로딩llama.cpp --cpu-moe·--n-cpu-moe, vLLM --cpu-offload-gb로 일부 가중치를 CPU 메모리에 둘 수 있지만 속도가 떨어집니다계산하지 않음
멀티 GPUtensor parallel(텐서 병렬)은 가중치와 KV head를 GPU 수로 나눕니다. GPU 수가 KV head 수보다 많으면 KV head가 복제되어 GPU당 KV cache가 덜 줄어들 수 있습니다GPU 메모리를 단순 합산
통합 메모리Apple Mac Studio·DGX Spark는 OS·앱과 메모리를 공유해 전부를 GPU가 쓰지 못합니다“사용 가능 비율”로 직접 낮춰 입력(적정 비율의 공식 근거는 확인하지 못함)
품질양자화·KV cache 양자화가 정확도에 주는 영향판단하지 않음

멀티 GPU 합산은 한 장비 안에서 tensor parallel로 모델을 나눠 싣는 경우를 가정합니다. 여러 PC를 네트워크로 연결한다고 메모리가 자동으로 합쳐지지는 않습니다. 이 차이는 NVIDIA PAIR가 여러 PC를 묶는 방식을 다룬 글에서 자세히 설명합니다.

실제 사용량은 vLLM 기동 로그에 찍히는 KV cache 용량, llama.cpp 기동 로그의 KV 버퍼 크기, nvidia-smi로 확인할 수 있습니다. 계산기 결과와 다르면 위 표에서 어느 항목이 차이를 만들었는지부터 보면 됩니다.

함께 읽으면 좋은 글

  • MoE가 왜 전체 전문가 가중치를 메모리에 올려야 하는지, 작은 모델과 큰 모델의 차이는 sLLM과 LLM의 차이를 정리한 글에 있습니다. 그 글의 메모리 표는 INT4를 파라미터당 0.5바이트로 본 이론값이라, 이 계산기의 “이론 INT4″와 같은 기준입니다. Q4_K_M처럼 실제 포맷으로 계산하면 그보다 커집니다.
  • KV cache가 추론 속도 최적화에서 어떤 역할을 하는지는 Speculative Decoding의 원리와 조건에서 다룹니다. 초안 모델을 따로 띄우면 그 가중치와 KV cache도 VRAM에 더해집니다.

확인일과 출처

모델 구조값, 양자화 bpw, GPU 메모리, 엔진 옵션은 모두 2026년 10월 20일에 확인했습니다. 모델 카드와 config는 저장소에서 갱신될 수 있습니다.