Skip to content
Novidades do CUDA Toolkit 13.0 para Jetson Thor: Ecossistema Unificado Arm e muito mais
Source: developer.nvidia.com

Novidades do CUDA Toolkit 13.0 para Jetson Thor: Ecossistema Unificado Arm e muito mais

Sources: https://developer.nvidia.com/blog/whats-new-in-cuda-toolkit-13-0-for-jetson-thor-unified-arm-ecosystem-and-more, https://developer.nvidia.com/blog/whats-new-in-cuda-toolkit-13-0-for-jetson-thor-unified-arm-ecosystem-and-more/, NVIDIA Dev Blog

TL;DR

  • O CUDA Toolkit 13.0 unifica a cadeia de ferramentas para plataformas Arm, reunindo hardware de servidor e embarcado em um único toolkit; Orin permanece em seu caminho atual por enquanto.
  • O Jetson Thor ganha Memória Virtual Unificada (UVM) com coerência total, mapeamento de memória via mmap()/cudaMallocManaged() e acesso contínuo à memória do host paginável pela GPU.
  • Compartilhamento de GPU e gerenciamento de recursos melhoram a eficiência de cargas de trabalho multi-processo: MPS, contextos verdes e mig (MIG) como recurso futuro para alocações estáveis de SM.
  • Ferramentas para desenvolvedores e interoperabilidade se expandem com nvidia-smi, NVML, OpenRM e dmabuf, além de suporte a NUMA no Tegra.

Contexto e antecedentes

O CUDA Toolkit 13.0 para Jetson Thor é construído sobre a arquitetura de GPU NVIDIA Blackwell e introduz um toolkit unificado para plataformas Arm. Essa unificação elimina a necessidade de manter toolchains separados para dispositivos de servidor SBSA e para sistemas embarcados de próxima geração, como o Thor (com a exceção de Orin, que permanece em seu caminho atual). A mudança traz ganhos de produtividade significativos ao permitir compilar uma vez, simular em ambientes de alto desempenho (p. ex., GB200, DGX Spark) e implantar o mesmo binário em hardware embarcado sem alterações no código. A unificação também se estende aos contêineres, consolidando ecossistemas de imagem e reduzindo sobrecarga de CI, ao mesmo tempo em que melhora a portabilidade entre gerações de GPU e plataformas. A unificação de ferramentas e contêineres abre caminho para o uso simultâneo de iGPU e dGPU em plataformas Jetson e IGX, proporcionando uma experiência de computação mais suave e eficiente para aplicações de IA de borda.

O que há de novo

CUDA 13.0 traz várias capacidades para Jetson Thor e sistemas baseados em Arm:

  • Toolkit unificado para Arm: um único toolkit CUDA para dispositivos de servidor e embarcados; Orin permanece em seu caminho atual por enquanto.
  • Memória Virtual Unificada (UVM) com coerência total: Jetson Thor agora suporta UVM com acesso a memória paginável via tabelas de pagina do host, com a propriedade cudaDeviceProp::pageableMemoryAccessUsesHostPageTables = 1. A memória alocada por mmap() ou malloc() pode ser usada diretamente pela GPU; alocações via cudaMallocManaged() relatam concurrentManagedAccess = 1, permitindo concorrência CPU-GPU. As alocações CUDA não são mantidas em cache pela GPU sob 13.0.
  • Fluxo de trabalho de memória: memória do host paginável via tabelas de página do host acessível pela GPU; CUDA allocations não são cacheadas pela GPU neste release.
  • Exemplo de interoperabilidade de memória: mapas de arquivo com mmap() podem ser usados como entrada para um kernel GPU (por exemplo, histograma) com a saída mapeada de forma similar, tudo permanecendo em cache L2 da GPU sem chamadas cudaMemcpy().
  • Compartilhamento e escalonamento de GPU: MPS permite que múltiplos processos compartilhem a GPU simultaneamente, consolidando cargas de trabalho em um único contexto para melhorar ocupação e throughput, sem alterações no código da aplicação.
  • Green contexts e MIG: contextos leves que pre-alocam recursos de SM para garantir execução determinística; usados com MPS para permitir execução concorrente entre processos mantendo isolamento de SM. MIG (Multi-Instance GPU) é mencionado como recurso futuro para particionar a GPU em fatias isoladas.
  • Ferramentas para desenvolvedores: suporte ao nvidia-smi e NVML para maior visibilidade e controle de GPU em Jetson Thor; algumas consultas (clock, energia, thermal; utilização por processo; monitoramento de memória SoC) ainda não disponíveis.
  • OpenRM e dmabuf: CUDA pode importar e exportar buffers dmabuf via a API de Interoperabilidade de Recursos Externos; suporte via OpenRM em plataformas compatíveis; importação via memória externa emitida como cuda memory type; exportação com cuMemGetHandleForAddressRange() em plataformas compatíveis. Verifique suporte com cuDeviceGetAttribute(CU_DEVICE_ATTRIBUTE_HOST_ALLOC_DMA_BUF_SUPPORTED).
  • Suporte NUMA para Tegra: NUMA facilita o controle explícito de localização de memória em sistemas com múltiplos soquetes, simplificando a portabilidade de aplicações portadas de plataformas dGPU e melhorando compatibilidade para configurações de um único soquete.

Por que isso importa (impacto para desenvolvedores/empresas)

A unificação do toolkit CUDA para Arm simplifica desenvolvimento, teste e pipelines de implantação. Desenvolvedores podem compilar uma vez, simular em ambientes de alto desempenho e implantar o mesmo binário em alvos embarcados como o Jetson Thor, reduzindo duplicação e sobrecarga de CI. Uma única fonte de verdade para builds entre simulação e edge melhora a consistência e a portabilidade conforme as gerações de GPU evoluem. UVM com coerência total facilita fluxos de dados entre CPU e GPU, enquanto MPS, contextos verdes e MIG oferecem caminhos para melhorar utilização da GPU, ocupação e desempenho em tempo real em robótica e outras workloads de borda.

Detalhes técnicos ou Implementação

  • Toolkit e containers unificados: a abordagem CUDA 13.0 unifica o toolkit entre dispositivos SBSA e embarcados; a exceção é o Orin (sm_87).
  • Memória Virtual Unificada (UVM) no Jetson: Jetson Thor expõe memória paginável do host às GPUs via tabelas de página do host, com cudaDeviceProp::pageableMemoryAccessUsesHostPageTables = 1. Memória alocada via mmap() ou malloc() pode ser utilizada pela GPU; alocações CUDA (cudaMallocManaged) reportam concurrentManagedAccess = 1, apoiando concorrência CPU-GPU. Alocações CUDA não são mantidas em cache pela GPU.
  • Fluxo de trabalho de memória de exemplo: um arquivo mapeado com mmap() pode ser utilizado como entrada para um kernel, por exemplo, para histograma, com a saída mapeada de forma similar, mantendo tudo no cache L2 da GPU sem cudaMemcpy().
  • MPS (Multi-Process Service): Dois binários existem—nvidia-cuda-mps-control e nvidia-cuda-mps-server—e o serviço pode ser iniciado para permitir que múltiplos processos compartilhem a GPU em um único contexto, melhorando ocupação e throughput. Para usar, inicie o daemon, execute aplicações como clientes MPS com diretórios de pipe/log compartilhados e pare com os comandos apropriados. A variável de ambiente CUDA_MPS_ACTIVE_THREAD_PERCENTAGE pode influenciar o comportamento de threads.
  • Contextos verdes e alocação de SM: contextos leves pré-atribuem recursos de SM para garantir execução determinística. Quando usados com MPS, múltiplos processos podem ser executados de forma concorrente com alocações de SM não sobrepostas, desde que CUDA_MPS_ACTIVE_THREAD_PERCENTAGE esteja configurada adequadamente. Exemplos de uso incluem combinação com MIG para workloads de robótica em tempo real (SLAM, detecção de objetos, planejamento de movimento).
  • MIG (Multi-Instance GPU): citado como recurso futuro para particionar a GPU em fatias isoladas para desempenho determinístico.
  • Ferramentas NVIDIA para monitoramento: nvidia-smi e NVML fornecem visibilidade de GPU e métricas de uso em Jetson Thor, com algumas consultas avançadas ainda não disponíveis.
  • OpenRM e dmabuf interoperability: importar dmabuf para memória CUDA com a API de Interoperabilidade de Recursos Externos; exportar por meio de cuMemGetHandleForAddressRange() em plataformas OpenRM suportadas. Verifique compatibilidade com cuDeviceGetAttribute(CU_DEVICE_ATTRIBUTE_HOST_ALLOC_DMA_BUF_SUPPORTED).
  • Suporte NUMA: NUMA ajuda a otimizar localização de memória em sistemas com múltiplos soquetes, facilitando portabilidade de aplicações que dependem de distribuição de memória entre nós.

Principais conclusões

  • CUDA 13.0 unifica o toolkit ARM para Jetson Thor, reduzindo fragmentação de toolchains e containers.
  • Memória Virtual Unificada com coerência total facilita fluxo CPU-GPU sem cópias explícitas.
  • MPS, contextos verdes e mig oferecem caminhos para melhorar utilização de GPU e desempenho determinístico em tempo real.
  • OpenRM/dmabuf e suporte NUMA ampliam interoperabilidade e desempenho entre plataformas.
  • Suporte a nvidia-smi/NVML amplia visibilidade e controle para implantações de borda.

Perguntas frequentes (FAQ)

  • Q: O que significa a ferramenta unificada no CUDA 13.0 para Jetson Thor? A: Ela unifica o toolkit CUDA para plataformas Arm, removendo a necessidade de toolchains separados para dispositivos de servidor e embarcados (Orin permanece no caminho atual).
  • Q: Como a Memória Virtual Unificada afeta o desenvolvimento no Jetson Thor? A: UVM oferece coerência total entre memória da CPU e GPU, permitindo que memória paginável do host seja acessada pela GPU por meio das tabelas de página do host, com concorrência CPU-GPU sem cópias explícitas. Alocações via cudaMallocManaged() permitem concorrência, mas não são cacheadas pela GPU.
  • Q: Quais ferramentas ajudam a gerenciar e monitorar a GPU no Jetson Thor? A: Nvidia-smi e NVML proporcionam visibilidade de detalhes do dispositivo e métricas de uso; algumas consultas avançadas ainda não estão disponíveis.
  • Q: Quais opções de interoperabilidade de memória existem? A: OpenRM com suporte a dmabuf permite importar e exportar memória CUDA como descritores de arquivo dmabuf via API de Interoperabilidade de Recursos Externos;
  • Q: Qual o papel do MPS, contextos verdes e MIG neste lançamento? A: MPS permite múltiplos processos compartilharem a GPU; contextos verdes garantem alocação determinística de SM; MIG é citado como recurso futuro para particionar a GPU e melhorar previsibilidade em cargas de tempo real.

Referências

More news