Melhorando a Eficiência de Auto-Tuning de Kernels GEMM em GPUs NVIDIA com Heurísticas e CUTLASS 4.2
Sources: https://developer.nvidia.com/blog/improving-gemm-kernel-auto-tuning-efficiency-on-nvidia-gpus-with-heuristics-and-cutlass-4-2, https://developer.nvidia.com/blog/improving-gemm-kernel-auto-tuning-efficiency-on-nvidia-gpus-with-heuristics-and-cutlass-4-2/, NVIDIA Dev Blog
TL;DR
- nvMatmulHeuristics oferece heurísticas rápidas para GEMMs e prevê um conjunto pequeno de configurações de kernel com alto potencial.
- Integrado ao CUTLASS 4.2, ele reduz drasticamente o tempo de tuning de kernels do modo exaustivo para avaliação de candidatos direcionados.
- Resultados iniciais mostram ganhos de tempo substanciais: usar 16 configurações atinge cerca de 96% do desempenho máximo em aproximadamente 150 minutos, versus mais de 700 minutos na busca exaustiva (treinamento Llama 3 405B em H100 SXM).
- Para o DeepSeek-R1 671B em um GPU B200, 8 configurações alcançam cerca de 99% do desempenho da busca exaustiva com mais de 5x de melhoria na construção e no tempo de auto-tuning. Isso viabiliza fluxos tipo JIT em frameworks de DL.
- A abordagem enfatiza tamanhos de cluster estáticos conhecidos no tempo de compilação, permitindo kernels mais eficientes do que em alguns casos com clusterização dinâmica em kernels pré-compilados. Esses resultados ilustram como uma boa heurística pode levar o desempenho próximo ao kernel ideal, reduzindo drasticamente os custos de tuning. NVIDIA Developer Blog
Contexto e antecedentes
Selecionar o melhor kernel GEMM para um problema e hardware específicos é um desafio de otimização. O desempenho do GEMM depende de um conjunto amplo de meta-parâmetros, incluindo CTA, tamanhos de tile por warp e nível de instrução, escalonamento de kernel, estratégias de rasterização, dimensões de cluster e fatores de divisão. Historicamente, encontrar o kernel ótimo envolvia gerar milhares de configurações, compilá-las e executá-las em busca exaustiva. Esse fluxo pode levar muitas horas e se torna um obstáculo para adoção em bibliotecas offline como o CUTLASS, bem como em ambientes de compilação JIT, como Torch Inductor ou OpenAI Triton, onde a compilação rápida é crítica. O atrito costuma levar usuários a escolher kernels subótimos para evitar custos elevados de tuning. O NVIDIA blog apresenta nvMatmulHeuristics, um módulo de otimização de meta-parâmetros de kernels de GPU, projetado para entregar um conjunto pequeno e de alto potencial de configurações de kernel para um GEMM dado e hardware. O módulo analisa os parâmetros da operação e as capacidades do hardware-alvo para prever um conjunto conciso de configurações com desempenho próximo do ponto máximo. A integração com o CUTLASS 4.2 visa transformar o fluxo de geração de kernels e de tuning em um processo mais rápido e previsível. O recurso é apresentado como parte dos heurísticos do cuBLAS e está disponível em acesso antecipado para uso geral, com integração no CUTLASS. NVIDIA Developer Blog O fluxo muda de uma busca por força bruta para uma exploração direcionada. Os usuários preparam uma lista de problemas GEMM em formato JSON, constroem o CUTLASS com heurísticas habilitadas e especificam -DCUTLASS_LIBRARY_HEURISTICS_PROBLEMS_FILE= e -DCUTLASS_LIBRARY_HEURISTICS_CONFIGS_PER_PROBLEM=N, onde N é o número de configurações emitidas por problema. A etapa de construção gera uma lista CSV de testes que enumera todos os casos de teste necessários para executar o auto-tuning sobre as configurações emitidas. Este CSV pode ser utilizado com código de benchmarking próprio ou com cutlass_profiler para executar as configurações. Para resultados de profiling consistentes, execute com clocks bloqueados. O recurso faz parte do ecossistema CUTLASS e é compatível com cenários FP16 de entrada/saída e FP32 de computação (HSH). NVIDIA Developer Blog
Um exemplo FP16 e desempenho prático
Para um cenário FP16 de entrada/saída com computação FP32 (HSH), nvMatmulHeuristics pode emitir oito configurações. Esses oito kernels podem ser compilados e avaliados, e o melhor entre eles pode ser escolhido para implantação, frequentemente alcançando desempenho próximo ao do melhor kernel obtido pela busca exaustiva. Nos resultados publicados, oito configurações atingiram 104% do baseline quando testadas com tamanhos de cluster estáticos, ilustrando como concentrar o esforço de construção e perfil em um conjunto reduzido pode alcançar desempenho de pico com custo menor do que a busca exaustiva. NVIDIA Developer Blog
Resultados empíricos e conclusões
Dois workloads representativos ilustram o impacto de nvMatmulHeuristics. Em um treinamento Llama 3 405B em uma GPU NVIDIA H100 SXM, a busca exaustiva pode levar mais de 700 minutos para identificar o kernel ideal, enquanto uma seleção restrita a 16 configurações atinge 96% do desempenho de pico em cerca de 150 minutos. Isso revela uma redução drástica do tempo total de tuning com uma queda modesta em relação ao desempenho máximo. Outro workload, o DeepSeek-R1 671B em uma GPU NVIDIA B200, mostrou que utilizar um conjunto pequeno de candidatos pode alcançar 99% do desempenho da busca exaustiva com mais de 5x de melhoria no tempo de construção e de auto-tuning. Nesse caso, o baseline utilizava tamanhos de cluster dinâmicos, enquanto as configurações recomendadas pelo nvMatmulHeuristics foram compiladas com tamanhos de cluster estáticos disponíveis no tempo de compilação, resultando em 104% do desempenho de baseline para esses GEMMs. Esses resultados ilustram como heurísticas bem definidas podem levar ao desempenho de pico de workloads, reduzindo o custo de tuning e facilitando a incorporação em frameworks, compiladores e bibliotecas de kernels. NVIDIA Developer Blog
Implicações para desenvolvedores e empresas
Ao concentrar o tuning no conjunto reduzido e de alto potencial de kernels, nvMatmulHeuristics reduz significativamente o tempo de implantação de GEMMs de alto desempenho em ambientes de produção. Isso facilita a adoção de kernels otimizados em stacks JIT e bibliotecas offline, acelerando ciclos de desenvolvimento para frameworks de deep learning, compiladores e bibliotecas de kernel. A integração com o CUTLASS 4.2 simplifica a adoção para desenvolvedores que já utilizam CUTLASS e heurísticas cuBLAS como parte de suas stacks. NVIDIA Developer Blog
Detalhes técnicos ou Implementação
O nvMatmulHeuristics trabalha em duas camadas: um módulo de heurísticas preditivas que analisa parâmetros do GEMM e capacidades de hardware, e uma integração com CUTLASS que utiliza as configurações previstas para construir e avaliar um conjunto compacto de kernels. Passos-chave:
- Preparar uma lista de problemas GEMM em formato JSON, descrevendo transposição/ layout de A, B e C/D conforme necessário (por exemplo, GEMMs FP16 com entrada/saída FP16 e computação FP32, HSH).
- Construir CUTLASS com a integração de heurísticas habilitada e especificar -DCUTLASS_LIBRARY_HEURISTICS_PROBLEMS_FILE e -DCUTLASS_LIBRARY_HEURISTICS_CONFIGS_PER_PROBLEM para controlar quantas configurações são emitidas por problema.
- A etapa de build gera uma lista CSV de testes que enumera todos os casos de teste para executar o auto-tuning sobre as configurações emitidas. Você pode usar código de benchmarking próprio ou o cutlass_profiler para executar as configurações, de forma automática.
- Para resultados de profiling consistentes, execute com clocks bloqueados. O documentation fornece orientações sobre uso e integração. O exemplo de oito configurações para FP16/FP32 (HSH) demonstra o efeito prático: compilando e testando esses oito kernels, é possível selecionar o melhor kernel sem o overhead de uma busca exaustiva, mantendo desempenho próximo ao ótimo. Em workloads publicados, 8 configurações atingiram 104% do baseline com cluster sizes estáticos, demonstrando como concentrar o esforço de construção e perfil pode alcançar desempenho de pico com menor custo do que a busca completa. NVIDIA Developer Blog
Pontos-chave
- Heurísticas fornecem um conjunto pequeno e direcionado de configurações de GEMM com alto potencial, em vez de uma busca exaustiva.
- Integração com CUTLASS 4.2 facilita um fluxo de trabalho com listas JSON de problemas, CSVs de teste e uso opcional do cutlass_profiler.
- Resultados de cases reais mostram ganhos de tempo significativos mantendo desempenho próximo ao ótimo.
- Tamanhos de cluster estáticos podem oferecer ganhos adicionais sobre estratégias de cluster dinâmico em cenários específicos.
- nvMatmulHeuristics faz parte central dos heurísticos do cuBLAS e está disponível em acesso antecipado com integração ao CUTLASS. NVIDIA Developer Blog
FAQ
- Q: O que o nvMatmulHeuristics faz? A: Analisa parâmetros do GEMM e capacidades de hardware para prever um conjunto pequeno de configurações de kernel com alto potencial.
- Q: Como ele é usado com o CUTLASS? A: Compile o CUTLASS com heurísticas habilitadas, forneça a lista de problemas em JSON e defina o número de configurações por problema; o build gera um CSV que pode ser usado com profiling ou com cutlass_profiler.
- Q: Quais ganhos de desempenho esperar? A: Em resultados reportados, uma seleção de 16 configurações atingiu ~96% do pico em ~150 minutos, vs. >700 minutos na busca exaustiva. Outros workloads mostraram ganhos similares e reduções de tempo de construção. NVIDIA Developer Blog
- Q: O nvMatmulHeuristics está publicamente disponível? A: Sim, é apresentado como parte dos heurísticos cuBLAS e está disponível em acesso antecipado para uso geral, com integração no CUTLASS. NVIDIA Developer Blog
Referências
- https://developer.nvidia.com/blog/improving-gemm-kernel-auto-tuning-efficiency-on-nvidia-gpus-with-heuristics-and-cutlass-4-2/
- A postagem da NVIDIA citada serve como fonte primária para nvMatmulHeuristics, sua integração com CUTLASS 4.2 e os resultados apresentados. NVIDIA Developer Blog
More news
NVIDIA HGX B200 reduz a Intensidade de Emissões de Carbono Incorporado
O HGX B200 da NVIDIA reduz 24% da intensidade de carbono incorporado em relação ao HGX H100, ao mesmo tempo em que aumenta o desempenho de IA e a eficiência energética. Esta análise resume os dados de PCF e as novidades de hardware.
Prever Eventos Climáticos Extremos em Minutos sem Supercomputador com Huge Ensembles (HENS)
NVIDIA e o Lawrence Berkeley National Laboratory apresentam Huge Ensembles (HENS), uma ferramenta de IA de código aberto que prevê eventos climáticos raros e de alto impacto usando 27.000 anos de dados, com opções de código aberto ou prontos para uso.
Playbook dos Grandmasters do Kaggle: 7 Técnicas de Modelagem Testadas para Dados Tabulares
Análise detalhada de sete técnicas testadas por Grandmasters do Kaggle para resolver grandes conjuntos de dados tabulares com aceleração por GPU, desde baselines diversificados até ensemble avançado e pseudo-rotulagem.
Como reduzir gargalos do KV Cache com NVIDIA Dynamo
O Dynamo da NVIDIA transfere o KV Cache da memória da GPU para armazenamento de custo mais baixo, permitindo janelas de contexto maiores, maior concorrência e menor custo de inferência em grandes modelos.
Microsoft transforma site da Foxconn no data center Fairwater AI, considerado o mais poderoso do mundo
A Microsoft divulga planos para um data center Fairwater AI de 1,2 milhão de pés quadrados no Wisconsin, com centenas de milhares de GPUs Nvidia GB200. projeto de US$ 3,3 bilhões promete treinamento de IA em escala sem precedentes.
NVIDIA RAPIDS 25.08 Adiciona Novo Profiler para cuML, Melhorias no Motor GPU Polars e Suporte Ampliado de Algoritmos
RAPIDS 25.08 traz profiladores function-level e line-level para cuml.accel, executor streaming padrão no motor GPU Polars, suporte ampliado de tipos e strings, novo Spectral Embedding no cuML e acelerações com zero código para mais algoritmos.