GPU 버블 제거와 Photon의 핵심 성능 지표
이번에 공개된 Photon은 VLM(Vision-Language Model, 시각-언어 모델)의 추론 속도를 실시간 수준으로 끌어올리기 위해 설계된 추론 엔진이다. NVIDIA B200 하드웨어 기준, 약 33ms의 추론 속도를 달성했으며, 기존 방식 대비 디코드 처리량(Decode Throughput)을 최대 35%까지 높였다.
성능 개선의 핵심 타겟은 'GPU 버블(GPU Bubble)' 현상이다. 일반적인 AI 모델의 텍스트 생성은 이전 토큰이 결정되어야 다음 토큰을 계산할 수 있는 자기회귀(Autoregressive) 특성을 가진다. 이 과정에서 GPU가 실제 연산을 수행하는 동안, CPU는 다음 요청을 선택하고 메타데이터를 설정하며 출력 토큰을 기록하는 '하우스키핑(Housekeeping)' 작업을 수행한다. 문제는 GPU의 연산 시간이 매우 짧은 반면 CPU의 작업은 고정 비용으로 발생한다는 점이다. 이로 인해 GPU가 CPU의 지시를 기다리며 유휴 상태로 머무는 '버블' 구간이 발생하며 전체 처리 속도를 저하시킨다.
Photon은 이를 해결하기 위해 '파이프라인 디코딩(Pipelined Decoding)' 기술을 도입했다. CPU가 현재 단계의 토큰을 처리하는 동안 GPU가 다음 토큰의 연산을 미리 시작하도록 작업을 중첩시켜, GPU가 쉬지 않고 연속적으로 작동하게 만드는 구조다.
파이프라인 디코딩의 작동 메커니즘과 구조
Photon이 GPU 버블을 제거하고 작업을 중첩시키는 방식은 크게 세 가지 기술적 장치로 구현된다.
첫 번째는 '핑퐁 슬롯(Ping-pong slots)' 구조다. GPU가 디코드 단계를 수행하려면 입력 스테이징, 로짓(Logits) 출력, 샘플링된 토큰 저장, KV 캐시(Key-Value Cache) 관리를 위한 버퍼 세트가 필요하다. Photon은 이를 `DecodeSlot`이라는 번들로 관리하며, 런타임 시 GPU 메모리 할당으로 인한 동기화 지연을 막기 위해 고정된 주소의 핀드 호스트 버퍼(Pinned host buffers)를 사용해 DMA(Direct Memory Access) 전송을 수행한다. 이때 두 개의 슬롯을 두고 교대로 사용하는 핑퐁 방식을 채택해, CPU가 한 슬롯의 결과를 읽는 동안 GPU가 다른 슬롯에서 다음 연산을 수행함으로써 데이터 충돌을 방지한다.
두 번째는 '선행 연산, 후행 샘플링(Forward now, sample later)' 방식이다. Moondream의 공간 인식 기능은 좌표나 박스 형태의 구조화된 출력을 내놓는데, 이는 특정 토큰만 생성하도록 제한하는 제약 디코딩(Constrained Decoding)을 사용한다. 이때 다음 단계($t+1$)의 허용 토큰 마스크는 현재 단계($t$)에서 샘플링된 토큰에 따라 결정된다. Photon은 연산(Forward)과 샘플링(Sampling)을 분리하여, 마스크가 결정되기 전이라도 GPU 연산은 미리 실행하고, CPU의 커밋(Commit)이 완료된 직후에 샘플링을 수행함으로써 임계 경로(Critical Path)에서 CPU 대기 시간을 제거했다.
세 번째는 '좀비(Zombies)' 처리 메커니즘이다. 파이프라인 구조에서는 $t$ 단계에서 종료 토큰(EOS)이 나왔더라도 이미 $t+1$ 단계의 GPU 연산이 런칭된 상태일 수 있다. Photon은 이를 강제로 취소하는 대신 `inflight_refs`라는 참조 카운트 필드를 사용한다. 종료된 시퀀스는 'finalized' 상태로 표시되어 결과값은 출력하되, `inflight_refs`가 0이 될 때까지 KV 페이지와 LoRA 슬롯을 유지한다. 이를 통해 복잡한 취소 로직 없이도 안전하게 자원을 회수한다.
특히 Photon은 프리필(Prefill, 프롬프트 및 이미지 처리)과 디코드 단계를 분리하지 않고 동일한 2-슬롯 파이프라인에서 처리한다. 프리필 작업을 `kind="prefill"` 런칭으로 처리함으로써, 짧은 응답을 생성하는 워크로드에서도 CPU 하우스키핑과 GPU 연산이 끊김 없이 중첩되도록 설계했다.
실무적 도입 관점에서의 성능 영향과 제약
개발자와 운영자가 Photon의 구조를 도입할 때 고려해야 할 핵심은 '좀비 세금(Zombie Tax)'과 하드웨어 가속기 성능의 상관관계다.
파이프라인 디코딩의 이론적 이득은 $\frac{T_{block}}{T_{pipe}}$로 계산된다. 여기서 $T_{block}$은 CPU 하우스키핑을 포함한 블로킹 루프의 시간이고, $T_{pipe}$는 하우스키핑이 중첩되어 사라진 후의 시간이다. 즉, 하드웨어 성능이 좋을수록(연산 시간이 짧을수록) CPU 하우스키핑이 차지하는 비중이 커지므로, 파이프라인 디코딩으로 얻는 이득은 더 커진다.
다만, 앞서 언급한 '좀비' 현상으로 인해 약간의 연산 낭비가 발생한다. 요청당 생성 토큰 수가 $L$일 때, 대략 $1/L$의 확률로 불필요한 포워드 연산이 수행된다. 예를 들어 $L \approx 110$일 때 약 1%의 오버헤드가 발생한다. 하지만 배치(Batch) 크기를 키울 경우, 좀비 시퀀스는 이미 가중치 스트리밍 비용이 지불된 상태에서 한 줄의 행으로 추가되는 것에 불과하므로 이 비용은 거의 사라진다. 결과적으로 처리량(Throughput) 중심의 운영 환경에서는 좀비 세금보다 파이프라인으로 얻는 이득이 압도적으로 크다.
결론적으로 Photon은 단일 기술이 아니라 이미지 타일링, 커널 최적화, 스케줄러 순서 조정, 동기화 지점 제거 등 스택 전반의 세부 최적화가 결합된 결과다. 특히 고성능 GPU를 사용할수록 CPU 병목으로 인한 GPU 유휴 시간이 증가하므로, 이와 같은 파이프라인 최적화의 중요성은 더욱 높아질 것으로 판단된다.



