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 는 별개라는 것이 이 실측의 결론입니다.

약 79.71GiB모델 + projector 상주
320K검증 context (327,680 tokens)
1시간 58분256Ki cold prefill 전체 소요
5.31 tok/s256Ki 위치의 decode

모델과 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 시리즈의 각론입니다.