AI Briefing

continuous batching의 비동기화

·2026.05.15 00:00

Hugging Face가 continuous batching 비동기화로 최대 24% 속도 개선을 제시했다.

동기식 continuous batching에서는 CPU와 GPU가 번갈아 일해 GPU가 **24.0%**의 시간 동안 대기한다. Hugging Face는 8K 토큰, 배치 32, 8B 모델 기준 총 생성 시간이 300.6초였고, CPU 오버헤드를 없애면 약 228초까지 줄 수 있다고 측정했다.

해결책은 batch N의 GPU 계산과 batch N+1의 CPU 준비를 겹치는 asynchronous batching이다. 이를 위해 GPU 작업을 default stream이 아닌 non-default stream에 올리고, H2D, compute, D2H를 분리해 병렬로 흘린다.

  • default stream은 다른 스트림과 동기화되므로 쓰지 않는다.
  • non-default stream은 CPU를 바로 돌려주므로, CPU 준비와 GPU 계산을 겹칠 수 있다.
  • CUDA events로 H2D 완료 후 compute, compute 완료 후 D2H가 시작되게 만든다.
  • 스트림만 나누면 순서가 깨지므로, 이벤트로 의존성을 명시해야 한다.

Hugging Face는 이 방식을 transformers의 continuous batching 구현에 반영했다고 밝혔다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.