- Biblioteca para executar com eficiência multiplicação de matrizes FP8 (GEMM), com suporte ao método de escalonamento de granularidade fina (fine-grained scaling) proposto no DeepSeek-V3
- Suporta tanto GEMM comum quanto GEMM agrupado para Mix-of-Experts (MoE)
- Implementada com base em CUDA e, na instalação, usa um módulo leve de Just-In-Time (JIT) para compilar os kernels em tempo de execução, sem compilação separada
- No momento, há suporte apenas para NVIDIA Hopper Tensor Cores
- Para compensar a acumulação imprecisa dos Tensor Cores FP8, usa acumulação dupla (promotion) baseada em CUDA Cores
- Aproveita alguns conceitos de CUTLASS e CuTe, mas reduz a dependência de templates complexos com um design simples que inclui apenas cerca de 300 linhas de código de kernel
- Adequada para aprender operações de matrizes FP8 no Hopper e técnicas de otimização
- Apesar do design leve, em vários tamanhos de matriz apresenta desempenho semelhante ou superior ao de bibliotecas ajustadas em nível especialista
Avaliação de desempenho
Desempenho de GEMM comum (modelo denso)
- Foi realizada uma avaliação de desempenho no ambiente de inferência DeepSeek-V3/R1 para vários tamanhos de matriz
- Testado em ambiente com GPU NVIDIA H800 (NVCC 12.8)
- O indicador de ganho de velocidade (Speedup) foi calculado em comparação com uma versão interna otimizada baseada no CUTLASS 3.6
- Resumo principal de desempenho
- Em matrizes pequenas, houve ganho de velocidade de até 2,7x
- Em alguns tamanhos grandes de matriz, mantém desempenho na faixa de 1,0x a 1,2x
- Ao otimizar largura de banda de memória e desempenho computacional, entrega desempenho otimizado para a arquitetura Hopper
Desempenho de GEMM agrupado para modelos MoE
- GEMM agrupado com layout contíguo (contiguous)
- Agrupamento com base no eixo M, mantendo N e K iguais
- Apresenta ganho de velocidade de até 1,2x, mantendo cerca de 1,1x em certas configurações
- GEMM agrupado com layout mascarado (masked)
- Projetado para casos em que, ao usar CUDA Graph, a CPU não consegue saber a quantidade de tokens de cada especialista
- Fornece um tensor de máscara como entrada para executar apenas as operações necessárias
- O ganho de desempenho fica na faixa de 1,1x a 1,2x
Ainda não há comentários.