피드로 돌아가기
Dev.toAI/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
AI 요약
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보다 커널 런칭 오버헤드가 병목인지 먼저 프로파일링하고, 가능하면 연산을 통합한 커널 설계를 검토할 것