정밀도 사다리 — 그리고 각 단계가 들어올리는 메모리 천장
192–512 GB unified memory의 Mac Studio에선 '내 모델 들어가?' 질문 거의 항상 정밀도가 답하지 FP32 raw weight count가 답 아냐. 사다리:
| 정밀도 | tok/s (전형 7B) | 메모리 footprint | 병목 | 언제 픽 |
|---|---|---|---|---|
| FP32 | 4–6 | 26 GB (7B) | 메모리 | 디버깅, numpy reference 대비 parity check |
| BF16 / FP16 | 8–12 | 13 GB | Compute | Fine-tune, 중간 모델 서빙 |
| Q8_0 (Int8) | 12–18 | 7 GB | L2 hit + DRAM BW | Default 배포 |
| Q4_K (Int4) | 17–25 | 4 GB | Compute (dequant) | 큰 모델, single-node 서빙 |
내재화할 셋:
- 각 단계가 메모리 거의 절반. 70B FP32 모델은 280 GB 필요; FP16이면 140 GB; Int4이면 40 GB — Mac Studio 192 GB 영역.
- 속도 이득은 공짜 아냐. FP16 → Int8은 DRAM에서 fetch할 데이터가 적어서 대부분 빠름. Int8 → Int4는 빠름 그리고 dequant이 FLOPs라 다시 compute-bounded.
- 품질이 비선형으로 떨어짐. FP32 → BF16은 inference엔 본질적으로 공짜. BF16 → Int8 작음. Int8 → Int4는 어떤 모델은 더 손해; 네 워크로드 벤치마크.
각 정밀도 받쳐주는 메모리 계층
Quantized weight는 unified DRAM에 살아. 커널 동안 hot tile이 L2 / threadgroup memory로 끌려 — 그 cache가 커널이 정밀도의 compute 천장 hit하나 miss에 stall하나 결정.