피드로 돌아가기
I Made a Single CUDA Kernel Speak: Streaming Qwen3-TTS at 50ms Latency on an RTX 5090
Dev.toDev.to
AI/ML

TTFC 35초에서 50ms로, CUDA Megakernel 기반 Qwen3-TTS 최적화

I Made a Single CUDA Kernel Speak: Streaming Qwen3-TTS at 50ms Latency on an RTX 5090

Jayanth Kumar2026년 4월 9일13advanced

Context

PyTorch 기반 TTS 파이프라인의 잦은 GPU 커널 런칭으로 인한 과도한 오버헤드 발생. 첫 오디오 청크 생성까지 35,932ms의 극심한 Latency 기록. 실시간 대화를 위한 TTFC 90ms 달성이 시급한 상황.

Technical Solution

  • 수백 개의 개별 GPU 연산을 단일 프로그램으로 통합하여 CPU-GPU 통신 오버헤드를 제거한 Megakernel 구조 도입
  • Shared Memory와 L2 Cache 중심의 데이터 흐름 설계로 Global DRAM 접근 최소화 및 메모리 대역폭 효율 극대화
  • 컴파일 타임 상수를 통한 Vocabulary 사이즈 조정 및 LM Head 스레드 블록 최적화로 아키텍처 호환성 확보
  • 가중치 합산 임베딩 처리를 위해 커널 내 Embedding Sentinel 로직을 추가하여 별도의 커널 런칭 없이 데이터 주입
  • PyTorch 기반의 Code Predictor를 Megakernel 내로 통합하여 프레임당 연산 속도 개선
  • Generator Streaming과 Warmup 루틴 적용으로 불필요한 버퍼링 단계 제거 및 초기 응답 속도 향상

Impact

  • TTFC(Time to First Chunk) 35,932ms에서 50ms로 단축
  • RTF(Real-Time Factor) 0.17 달성
  • 단일 RTX 5090 기준 초당 1,000 토큰 생성 속도 확보
  • GDDR7 이론적 메모리 대역폭의 71% 활용

Key Takeaway

개별 최적화보다 도메인 지식 기반의 단순한 구조적 변경과 여러 작은 최적화의 누적 합산이 성능 개선에 더 결정적인 영향을 미침.


추론 최적화 시 개별 연산의 Latency보다 커널 런칭 오버헤드가 병목인지 먼저 프로파일링하고, 가능하면 연산을 통합한 커널 설계를 검토할 것

원문 읽기