2026년 10월 31일 (토)

PINKSKY NEWS

매일의 기록을 뉴스처럼

테크

응답 도중 실행 중인 모델의 레이어를 GPU 간에 이동 (8 ms, 재프리필 없음)

원문 제목 — Moving a running model's layers between GPUs mid-reply (8 ms, no re-prefill)

📄 전문 번역

운영체제와 JIT 컴파일러 경험에서 착안해 추론 엔진 jitllm을 개발하고 있다. 이 엔진은 실행 하드웨어에 맞춰 커널을 생성하고, 레이어를 엔진이 배치하고 이동할 수 있는 프로세스처럼 취급한다. 공개된 영상에서는 T4를 장착한 클라우드 VM에서 응답 생성 도중 Llama-3.2-3B의 모든 레이어가 한 GPU에서 다른 GPU로 이동했다가 되돌아오며, 모델이 CPU, CUDA, Vulkan(iGPU)에 분산된 저사양 노트북에서도 생성 중에 재배치가 이뤄진다.

KV 캐시는 페이징되어 레이어와 함께 이동하기 때문에 프롬프트를 다시 처리할 필요가 없으며, 출력 결과도 이동 없이 실행한 경우와 동일하다.

측정 결과에 따르면 T4 2장 환경에서 Llama-3.2-3B Q4_K_M 모델을 GPU 0에서 GPU 1로 이동할 때 일시정지는 8.1 ms, 반대 방향은 8.4 ms였고 재계산 토큰은 모두 0개였다. V100 2장에서 약 1.8천 토큰 채팅 기록이 포함된 Llama-3.2-3B의 GPU 0에서 GPU 1 이동은 20~21 ms, 재계산 토큰 0개로 측정됐다. RTX 3050 Ti 노트북에서 Llama-3.2-1B Q4_K_M을 CUDA에서 Vulkan으로 옮길 때는 91 ms, 재계산 토큰 0개였다.

개발자는 이 설계가 남기는 여지에 주목한다. 생성형 커널 덕분에 모든 개선이 모든 머신에 적용되며, 엔진은 한 번도 본 적 없는 하드웨어에 대해서도 융합과 튜닝을 수행할 수 있다. 페이징과 재배치는 배치 문제를 스케줄링으로 바꿔 메모리보다 큰 모델, 사양이 어긋난 GPU, 대화가 길어지며 이동하는 작업까지 처리할 수 있게 한다.

코드는 GitHub의 jitllm 저장소에서 공개되어 있다.

💬 주요 댓글 번역 (5)

1 익명1

8 ms 만에 KV 캐시를 재프리필하지 않고 활성 레이어를 마이그레이션하는 것은 정말 인상적이다. 상태 전달은 표준 PCIe로 이뤄지는가, 아니면 T4 사이의 P2P나 NVLink에 의존하는 것인가?

2 web3samy

감사하다! T4에서는 일반 PCIe 위의 P2P를 사용했다. NVLink가 없기 때문에 KV는 cuMemcpyPeer로 카드 간 전송된다. 8 ms는 순수하게 KV 전달 시간이며, 응답이 계속 스트리밍되는 동안 대상 GPU가 가중치와 커널을 미리 준비한다. NVLink를 갖춘 V100에서는 약 1.8천 토큰 기록이 있는 동일한 이동이 20~35 ms 걸렸다. 노트북(CUDA에서 Vulkan)에서는 백엔드를 넘는 카드 간 전송이 불가능해 호스트 버퍼를 거치는데, 이 때문에 91 ms가 걸린다.

3 익명2

스트리밍이 진행되는 동안 가중치와 커널을 미리 준비해 두는 방식이 정말 영리하다. 체감 일시정지가 이토록 작은 이유가 설명된다. 그리고 혼합 백엔드에서 호스트 메모리를 거치는 91 ms조차 출력을 읽는 사람에게는 사실상 보이지 않는다. 정말 깔끔한 아키텍처이다.

4 익명3

응답 스트리밍 중에 대상 GPU가 가중치와 커널을 준비한다는 점은 추론판 vMotion 같다.

5 익명4

정말 새롭고 인상적이다. 컴퓨팅 파워는 분명 있는데 매우 파편화돼 있어서 고맙게 느껴진다. 작은 카드 여러 개로 충분한데 왜 하나의 큰 vmem 블록을 위해 비싼 카드를 사야 하는가.

🔍 루키 분석

jitllm은 JIT 컴파일 기법으로 하드웨어별 커널을 생성하고 레이어를 프로세스처럼 배치·이동하는 추론 엔진이다. KV 캐시를 페이징해 레이어와 함께 전송함으로써 재프리필 없이 GPU 간 이동이 가능하며, T4 2장 환경에서 약 8 ms의 일시정지로 측정됐다. 이 접근은 메모리보다 큰 모델 실행과 이종 GPU 활용을 가능하게 하고 배치를 스케줄링 문제로 전환한다는 점에서 의미가 있다.

— 루키 · glm-5.3-flash:cloud