Skip to content
CUDA Toolkit 13.0: Fundamentos de programação por blocos, toolkit unificado para Arm e melhorias de desempenho
Source: developer.nvidia.com

CUDA Toolkit 13.0: Fundamentos de programação por blocos, toolkit unificado para Arm e melhorias de desempenho

Sources: https://developer.nvidia.com/blog/whats-new-and-important-in-cuda-toolkit-13-0, developer.nvidia.com

TL;DR

  • CUDA Toolkit 13.0 é um lançamento importante que estabelece as bases para a programação baseada em blocos (tiles) e amplia a compatibilidade com Arm entre servidores SBSA e plataformas embarcadas, mantendo o desempenho.
  • Mantém investimentos no ecossistema Blackwell, suportando as GPUs Blackwell mais recentes e enriquecendo as capacidades de depuração/análise com o Nsight Compute 2025.3.
  • A ferramenta traz uma instalação unificada para Arm, reduzindo sobrecarga de CI e simplificando fluxos de trabalho de containers, com a exceção de Orin que permanece em seu caminho atual.
  • A compressão de fatbins passa a usar Zstandard como padrão, oferecendo melhor taxa de compressão com impacto mínimo no tempo de execução, mantendo opções de decompression e compressão disponíveis.
  • Essas mudanças visam aumentar a produtividade dos desenvolvedores, a portabilidade e o desempenho a longo prazo entre gerações de GPUs.

Contexto e antecedentes

CUDA foi originalmente concebido em torno de um modelo SIMT de threads. Com o CUDA 13.0, a NVIDIA está abrindo caminho para um segundo modelo complementar baseado em tiles (blocos de dados). O modelo de tile programming define operações sobre tiles de dados, e o compilador/tempo de execução distribui o trabalho entre threads e otimiza o uso do hardware, liberando o programador do gerenciamento detalhado de threads. Essa abordagem alinha-se bem às arquiteturas com Tensor Cores e, segundo a NVIDIA, busca compatibilidade futura: código escrito hoje pode rodar rápido em GPUs futuras. Em uma apresentação no GTC 2025, a NVIDIA anunciou planos de levar o tile programming para o CUDA, ampliando a produtividade do desenvolvedor e a eficiência do hardware. A empresa enfatiza dois níveis do tile programming: o nível fundamental em CUDA 13.0 e um nível superior a ser desenvolvido futuramente, permitindo que programadores escrevam menos código detalhado de threads, sem sacrificar o desempenho. Uma parte significativa do CUDA 13.0 é a unificação do toolkit entre plataformas Arm. A NVIDIA visa eliminar a necessidade de manter toolchains separados para servidores SBSA e plataformas embarcadas (por exemplo, Thor). O resultado é uma única instalação de CUDA que atende a ambos os alvos, com a exceção de Orin (sm_87), que continua em seu caminho atual. Essa consolidação se estende aos containers, reduzindo reconstruções, sobrecarga de CI e abrindo um caminho mais suave do código até o hardware. O CUDA 13.0 teve qualificação para novos empatamentos de sistemas operacionais, refletindo o contínuo investimento da NVIDIA em suporte a plataformas mais amplas. Paralelamente, o NVIDIA Nsight Compute 2025.3 adiciona visibilidade em nível de código para misturas de instruções e dependências, melhorando a depuração e a otimização.

O que há de novo

  • Fundamentos do tile programming: o modelo define tiles de dados e operações sobre eles. O compilador e o tempo de execução distribuem o trabalho e otimizam o uso do hardware, permitindo desenvolvimento mais produtivo sem gerenciar detalhes de threads de baixo nível.
  • Modelo de dois níveis: o release faz a base para o tile programming, com um nível superior a ser disponibilizado no futuro, para simplificar ainda mais o uso.
  • Unificação do Arm: uma única instalação de CUDA para servidores SBSA e dispositivos embarcados, eliminando a necessidade de toolchains distintos. Orin (sm_87) segue com seu caminho atual por enquanto.
  • Consolidação de containers: NVIDIA está unificando a linha de imagens para suportar simulação, teste e implantação a partir de uma linha comum, reduzindo overhead de CI e facilitando a transição do código para o hardware.
  • Suporte à arquitetura Blackwell: o CUDA 13.0 continua a melhorar desempenho e capacidades nas GPUs Blackwell.
  • Nsight Compute 2025.3: adiciona tabelas de Instrução Mix e Dependências de Scoreboard na visualização do código-fonte, além de um novo Breakdown de Throughput na janela de Detalhes de Métrica para Insights de desempenho mais profundos.
  • Compressão de fatbins: o padrão de compressão agora usa Zstandard, oferecendo melhores relações de compressão com impacto mínimo no tempo de execução. As opções para controlar o modo de compressão permanecem, incluindo uma opção baseada em LZ4 voltada para velocidade e outra baseada em Zstandard voltada para tamanho; também há a opção de desabilitar a compressão.
  • Reduções de tamanho de binário: em algumas bibliotecas, a adoção do novo padrão resulta em reduções significativas de tamanho (por exemplo, 17% nas CUDA Math APIs); não foram observadas regressões de tempo de execução no conjunto de testes da NVIDIA.
  • Desempenho permanece prioritário: mesmo com mudanças de compressão e o groundwork para tiles, o compilador/tempo de execução continua a gerar código otimizado para a arquitetura alvo.

Por que isso importa (impacto para desenvolvedores/empresas)

A unificação do toolkit CUDA entre plataformas Arm reduz duplicação de esforços e simplifica o fluxo de trabalho do desenvolvedor. Equipes podem criar para servidores SBSA, simular em sistemas de alto desempenho e implantar o binário exato em plataformas embarcadas, sem alterar código ou toolchains. Isso reduz overhead de CI, complexidade de containers e o risco de desvio de versão/ configuração entre etapas de desenvolvimento, teste e implantação. Para desenvolvedores, o tile programming promete maior nível de abstração, acelerando a produtividade sem sacrificar o desempenho. Ao mapear operações de tile para Tensor Cores e deixar o gerenciamento de memória e mapeamento de operações para o compilador, programadores podem projetar algoritmos eficientes com menos preocupação com threads de baixo nível. Esse modelo está alinhado com a evolução de GPUs modernas e pretende ampliar a portabilidade conforme surgem novas gerações. Do ponto de vista empresarial, a ferramenta única de instalação e o ecossistema de imagens consolidado permitem builds mais previsíveis e tempos mais curtos de implantação em frotas que vão desde núcleos de dados até edge devices. A capacidade de executar uma única linha binária em hardware embarcado como Thor, após simulação em DGX Spark ou sistemas de alto desempenho, reduz o esforço de engenharia e o risco de divergência de configuração entre ambientes.

Detalhes técnicos ou Implementação

As mudanças técnicas de 13.0 apoiam o tile programming e a estratégia unificada para Arm:

  • Fundação do tile programming: o modelo define tiles de dados e operações sobre eles; o compilador/tempo de execução distribui o trabalho e otimiza o uso do hardware, permitindo desenvolvimento produtivo sem gerenciar detalhes de threads.
  • Infraestrutura para dois níveis de tile programming: a grande atualização oferece a base para o tile programming e prepara o terreno para integrações de alto nível futuras, simplificando o uso.
  • Unificação de Arm: uma única instalação de CUDA serve a servidores SBSA e a plataformas embarcadas, reduzindo a duplicação de toolchains, sysroots, imagens de container e scripts de CI. Orin continua no caminho atual por ora.
  • Consolidação de containers: as imagens CUDA estão sendo alinhadas para suportar simulação, teste e implantação a partir de uma linha de containers compartilhada, reduzindo reconstruções e overhead de CI.
  • Suporte a Blackwell: CUDA 13.0 continua a melhorar o desempenho e capacidades em GPUs Blackwell.
  • Nsight Compute 2025.3: adiciona tabelas de Instrução Mix e dependências de Scoreboard na visão de código-fonte, além de um Breakdown de Throughput para insights mais finos de desempenho.
  • Compressão de fatbins: o modo padrão passa a usar Zstandard, oferecendo melhores taxas de compressão com impacto mínimo no tempo de execução. Opções de controle permanecem, incluindo um modo baseado em velocidade (LZ4) e outro voltado a tamanho (Zstandard), além da opção sem compressão. Essas mudanças visam reduzir o tamanho binário sem prejudicar desempenho, com ganhos variáveis conforme a biblioteca.

Principais conclusões

  • O CUDA 13.0 estabelece as bases para tile programming e uma ferramenta unificada para Arm, sinalizando uma direção de abstração maior sem abrir mão de desempenho.
  • Uma instalação única de CUDA atende a servidores SBSA e dispositivos embarcados, reduzindo duplicação de toolchains, pipelines de CI e gestão de containers.
  • A compressão padrão de fatbins usa Zstandard, com opções disponíveis para priorizar velocidade ou tamanho; qualquer ganho de desempenho é conservado, com impactos variando por workload.
  • O suporte a Blackwell continua a crescer, e o Nsight Compute 2025.3 adiciona capacidades analíticas mais profundas para otimização.
  • O roadmap enfatiza portabilidade e compatibilidade futura: código hoje escrito deve rodar eficientemente em GPUs futuras com CUDA.

FAQ

  • O que é CUDA Toolkit 13.0 e por que ele é um lançamento importante?

    Ele introduz os fundamentos do tile programming, amplia a unificação do toolkit para Arm entre servidores SBSA e embarcados e traz melhorias de desempenho e produtividade para desenvolvedores, preparando o terreno para evoluções futuras do CUDA 13.x.

  • O que é o tile programming e quando estará amplamente disponível?

    Tile programming define operações sobre tiles de dados; o compilador/tempo de execução distribui o trabalho e otimiza o uso do hardware. O CUDA 13.0 fornece a infraestrutura de base para tiles, com níveis de alto nível a serem disponibilizados no futuro.

  • Como a unificação do Arm afeta o desenvolvimento e a implantação entre servers SBSA e dispositivos embarcados?

    Uma única instalação de CUDA atende a ambos os alvos, reduzindo a necessidade de gerenciar toolchains, sysroots, imagens de container e configurações de CI distintas, mantendo desempenho e flexibilidade. Orin permanece no caminho atual por enquanto.

  • uais mudanças existem na compressão de fatbins e como elas afetam os binários?

    O padrão passa a usar Zstandard para melhor compressão; existem opções para priorizar velocidade (LZ4) ou tamanho, além da opção sem compressão. As mudanças visam reduzir o tamanho binário sem impactar negativamente o tempo de execução, com ganhos variáveis por biblioteca.

Referências

More news