256Ki 토큰을 cold 로 넣으면 2시간 — DeepSeek V4 Vision 장문 실측
128GB 통합 메모리가 320K 컨텍스트를 담는 것과 256Ki 토큰을 cold 로 처리하는 것은 다른 문제였다 — 정확히 262,144 tokens 를 넣어 본 2시간짜리 실측.
EVO-X2 에서 DeepSeek V4 Flash Vision Exp 를 community IQ2_XXS GGUF 와 실험적인 llama.cpp 포팅으로 구동해 text, 단일 이미지, 그리고 실제 256Ki context 를 확인했습니다. 메모리와 장시간 안정성은 충분했습니다. 하지만 256Ki cold prefill 은 거의 2시간이 걸렸습니다 — 큰 context 용량과 실용적인 cold latency 는 별개라는 것이 이 실측의 결론입니다.
모델과 runtime
| 항목 | 값 |
|---|---|
| GGUF | imatrix IQ2_XXS, 4 shards, 약 78.84GiB |
| vision projector | F16, 약 890MiB |
| runtime | llama.cpp PR #28133 3a798bf2 + image MoE routing patch |
| context / slot | 327,680 tokens / 1 |
| KV | K/V Q8_0, memory resident |
| offload | ROCm full layer, Flash Attention |
이 모델은 text token 용 ffn.gate.bias 외에 image token 용 ffn.gate.bias_vl 과
hash-routed image expert 처리가 필요합니다. PR 위에 routing patch 를 추가로 적용해
43개 layer 의 modality 별 bias 선택과 image batch routing 을 보완했습니다.
당시 llama.cpp 경로에는 image span 내부의 bidirectional attention visibility 가 완성되지 않았습니다. 작은 단일 이미지는 검증했지만 큰 이미지, 다중 이미지, 긴 context 조합은 별도 검증이 필요합니다. upstream 이 바뀌면 stock build 로 재시험한 뒤 실험 patch 를 제거하는 것이 전제입니다.
text 와 vision 반복 실측
64K validation 서버, Q8 K/V, full ROCm offload, batch/ubatch 2048/512,
CPU power-saver 조건의 3회 평균입니다.
| 시험 | 평균 | 표본 SD |
|---|---|---|
| 256-token decode | 14.139 tok/s | 0.033 |
| cold 4K prefill | 201.310 tok/s | 1.152 |
| 단일 이미지 vision prefill | 99.617 tok/s | 0.400 |
| vision decode | 14.883 tok/s | 0.010 |
세 차례의 이미지 반복 모두 흰 배경의 주황색 당근과 초록 잎을 정확히 기술했습니다.
320K 최종 서비스로 다시 올린 뒤에도 한국어 text 와 같은 이미지 smoke 를 재통과했고,
64K→320K 에서 GTT 는 약 80.37→81.42GiB, 시스템 가용 메모리 약 37GiB 를 유지했습니다.
API ready 는 약 54초. projector warm-up 중 F32 IM2COL [9216,16,16,1] 이 HIP 에서
지원되지 않아 fallback 경고가 있었고, vision 처리량에는 이 비용이 포함돼 있습니다.
본 실험 — 정확히 262,144 tokens 를 cold 로
영문·한글·번호·코드가 섞인 결정적 corpus 를 정확히 262,144 tokens 로 구성해 native
completion endpoint 로 보냈습니다. 단일 반복, cache_prompt=false, context shift 없음.
| 항목 | 결과 |
|---|---|
| cold prefill | 7,098.535초, 36.929 tok/s |
| 32-token decode | 5.306 tok/s |
| 전체 API wall | 7,104.472초 (1시간 58분 24.5초) |
| 가용 메모리 변화 | 36.99→36.87GiB (약 120.2MiB 감소) |
| swap free 감소 | 약 1.51MiB |
| socket / GPU / CPU 평균 전력 | 85.01 / 69.64 / 0.66W |
| GPU 평균 / 최고 온도 | 73.24 / 78.50°C |
| thermal throttle / 서비스 재시작 | 0 / 0회 |
4K cold prefill 대비 평균 처리량이 81.65% 낮았고, 짧은 위치 decode 14.139 tok/s 대비 256Ki 위치 decode 는 62.47% 낮았습니다. 메모리 부족도 열 문제도 아니었습니다 — 길이에 따라 누적되는 attention 계산 비용이 지배했습니다.
320K 설정은 장기 세션을 점진적으로 누적하거나 prefix 를 재사용하는 용도에는 의미가 있지만, 매 요청마다 256Ki 문서를 cold 투입하는 용도에는 비실용적입니다. 이 시험은 chat template 를 우회한 native token-array 시험이므로 retrieval 정확도나 instruction following 의 근거로는 쓰지 않습니다.
운영 판단
- 128GB 통합 메모리에서 320K context 의 용량과 안정성은 확인됨
- 일반 text decode 는 튜닝된 DwarfStar4 보다 느리지만, 모델·양자화·runtime 이 달라 capability 비교로 해석하지 않음
- 실험 PR 의존성이 있어 부팅 시 자동 시작 없이 수동 운영
- upstream 병합 후 stock build 에서 text, 단일/다중 이미지, 장문을 재검증
이 글은 128GB 미니PC 로컬 AI 시리즈의 각론입니다.