Open source de fusão de kernels Triton que acelera em até 5x a inferência do Qwen3-TTS
(github.com/newgrit1004)Olá, compartilho uma biblioteca de fusão de kernels Triton que resolve os gargalos de inferência do modelo Qwen3-TTS 1.7B e alcança uma melhora de velocidade de cerca de 5x.
1. Por que eu criei isso? (contexto)
Quem já usou áudio TTS em ambiente de produção sabe que modelos probabilísticos (stochastic) como o Qwen3-TTS geram resultados diferentes a cada execução (entoação, tom etc.).
No fim, em uso real, uma estratégia de geração múltipla é indispensável: gerar rapidamente vários candidatos de áudio e escolher o mais natural entre eles. Como a velocidade existente tornava o pipeline de trabalho lento demais, acabei partindo para a otimização por conta própria. Com esta otimização, passei a conseguir gerar 5 candidatos no tempo em que antes gerava apenas 1.
2. Como eu fiz isso? (Claude Code + testes pesados)
Falando com sinceridade, eu conhecia o poder do OpenAI Triton, uma biblioteca de otimização de kernels, mas nunca tinha escrito código de kernel diretamente. Por isso, a maior parte do código de kernel deste projeto foi escrita com a ajuda do Claude Code.
Em compensação, para suprir minha pouca experiência com implementações em Triton e garantir 100% a confiabilidade do modelo, em vez de concentrar energia em escrever o código, dediquei todo o esforço a fazer testes realmente rigorosos.
- Escrevi 90 testes unitários para garantir resultados matemáticos perfeitamente idênticos ao modelo original.
- Em todas as principais camadas de checkpoint e na saída final, alcancei Cosine Similarity > 0.997.
3. Pontos de engenharia e resultados
Inspirado no Liger Kernel do LinkedIn, fiz a fusão em kernels Triton de 4 operações que eram gargalos na inferência (RMSNorm, M-RoPE, Norm+Residual, SwiGLU).
[Benchmark de desempenho - com RTX 5090]
- Base (PyTorch): 3,902 ms
- Hybrid (Faster+Triton): 919 ms (~4.7x mais rápido)
(※ O modo Hybrid é o resultado de aplicar esta fusão de kernels Triton sobre o faster-qwen3-tts, baseado em CUDA Graph.)
4. Encerrando
No momento, os testes foram concluídos apenas no meu equipamento pessoal, em ambiente RTX 5090. Se alguém que usa outros hardwares, como placas de nível de servidor (A100, H100) ou uma RTX 4090, puder testar e deixar feedback no GitHub ou nos comentários, isso ajudaria muito.
Obrigado por ler até aqui!
Ainda não há comentários.