Skip to content
Nouveautés du CUDA Toolkit 13.0 pour Jetson Thor : Écosystème ARM unifié et plus encore
Source: developer.nvidia.com

Nouveautés du CUDA Toolkit 13.0 pour Jetson Thor : Écosystème ARM unifié et plus encore

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

  • CUDA Toolkit 13.0 unifie l’outil de développement pour les plateformes Arm, réunissant les dispositifs serveur et embarqués sous un seul toolkit; Orin reste sur son chemin actuel pour l’instant.
  • Jetson Thor obtient une Mémoire Virtuelle Unifiée (UVM) avec cohérence totale, mappage mémoire via mmap()/cudaMallocManaged() et accès fluide à la mémoire paginable du host par le GPU.
  • Le partage de GPU et la gestion des ressources améliorent l’efficacité des charges multi-processus : MPS, contextes verts et MIG comme fonctionnalités à venir pour des allocations SM déterministes.
  • Des outils de développement et d’interopérabilité s’étendent avec nvidia-smi et NVML, OpenRM et dmabuf, plus le support NUMA sur Tegra.

Contexte et arrière-plan

CUDA Toolkit 13.0 pour Jetson Thor est construit sur l’architecture GPU NVIDIA Blackwell et introduit un toolkit unifié pour les plateformes Arm. Cette unification supprime le besoin de maintenir des toolchains séparés pour les serveurs SBSA et les systèmes embarqués de nouvelle génération comme Thor (avec l’exception d’Orin qui demeure sur son chemin actuel). Le changement apporte des gains de productivité importants en permettant de compiler une fois, de simuler sur des systèmes haute performance (p. ex. GB200, DGX Spark) et de déployer le même binaire sur du matériel embarqué sans modification du code. L’unification s’étend également aux conteneurs, consolidant les chaînes d’images et réduisant la charge CI, tout en améliorant la portabilité entre générations de GPU et plateformes. L’unification des outils et des conteneurs ouvre la voie à l’utilisation simultanée d’iGPU et de dGPU sur les plateformes Jetson et IGX, offrant une expérience de calcul edge plus fluide et efficace pour les applications IA.

Ce qui est nouveau

CUDA 13.0 introduit plusieurs capacités majeures pour Jetson Thor et les systèmes Arm:

  • Toolkit unifié pour Arm : un seul toolkit CUDA pour les plateformes serveur et embarquées ; Orin reste sur son chemin actuel pour le moment.
  • Mémoire Virtuelle Unifiée (UVM) avec cohérence complète : Jetson Thor expose la mémoire paginable du host à travers les tables de pages du host, avec cudaDeviceProp::pageableMemoryAccessUsesHostPageTables = 1. La mémoire allouée par mmap() ou malloc() peut être utilisée directement par le GPU; les allocations CUDA (cudaMallocManaged()) indiquent concurrentManagedAccess = 1, permettant une concurrence CPU-GPU. Les allocations CUDA ne sont pas mises en cache par le GPU dans cette version.
  • Exemple de flux mémoire : mapper un fichier via mmap() et l’utiliser comme entrée pour un kernel GPU (par exemple un histogramme), avec la sortie mappée de manière similaire, le tout restant en cache L2 du GPU sans appels cudaMemcpy().
  • Partage et programmation du GPU : MPS permet à plusieurs processus de partager le GPU simultanément, en consolidant les charges dans un seul contexte pour améliorer l’occupation et le débit, sans modification du code applicatif.
  • Contextes verts et MIG : des contextes légers pré-allouent les ressources SM pour garantir une exécution déterministe; utilisés avec MPS pour permettre une exécution concurrente entre processus avec des allocations SM non chevauchantes. MIG est cité comme fonctionnalité à venir pour partitionner le GPU en slices isolés.
  • Outils et surveillance : le support de nvidia-smi et NVML apporte une meilleure visibilité et contrôle sur Jetson Thor; certaines requêtes avancées restent non disponibles.
  • OpenRM et interopérabilité dmabuf : CUDA peut importer et exporter des buffers dmabuf via l’API d’interopérabilité des ressources externes ; le partage dmabuf est disponible sur les plateformes OpenRM compatibles; vérification du support via cuDeviceGetAttribute(CU_DEVICE_ATTRIBUTE_HOST_ALLOC_DMA_BUF_SUPPORTED).
  • NUMA pour Tegra : le support NUMA permet un placement mémoire explicite sur des systèmes multi-sockets, facilitant le portage et les performances pour les applications NUMA.

Pourquoi cela compte (impact pour les développeurs/entreprises)

L’unification du toolkit CUDA pour Arm simplifie le développement, les tests et les chaînes CI. Les développeurs peuvent compiler une fois, simuler sur des environnements à haute performance et déployer le même binaire sur des cibles embarquées comme Jetson Thor, réduisant les duplications et la charge CI. Une source unique de vérité pour les builds entre simulation et edge améliore la cohérence et la portabilité au fil des évolutions de la GPU. L’UVM avec cohérence complète simplifie les flux de données CPU-GPU, tandis que MPS, les contextes verts et MIG offrent des voies pour améliorer l’utilisation du GPU et les performances en temps réel dans la robotique et d’autres workloads edge.

Détails techniques ou Mise en œuvre

  • Toolkit et conteneurs unifiés : l’approche CUDA 13.0 unifie le toolkit pour les dispositifs SBSA et embarqués; Orin est l’exception.
  • Mémoire Virtuelle Unifiée (UVM) sur Jetson : Jetson Thor expose la mémoire paginable du host à travers les tables de page du host, avec cudaDeviceProp::pageableMemoryAccessUsesHostPageTables = 1. La mémoire allouée par mmap() ou malloc() peut être utilisée par le GPU; cudaMallocManaged() indique concurrentManagedAccess = 1. Les allocations CUDA ne sont pas mises en cache par le GPU.
  • Flux mémoire d’exemple : une mémoire mappée via mmap() peut être utilisée comme entrée pour un kernel Histogram et la sortie peut aussi être mappée, tout restant en cache L2 sans cudaMemcpy().
  • MPS : deux binaires existent—nvidia-cuda-mps-control et nvidia-cuda-mps-server—et le service permet à plusieurs processus de partager le GPU dans un contexte unique. Pour l’utiliser, démarrez le daemon, exécutez les applications comme clients MPS avec les mêmes répertoires de pipe et de logs, et arrêtez le serveur lorsque nécessaire. La variable d’environnement CUDA_MPS_ACTIVE_THREAD_PERCENTAGE peut influencer le comportement.
  • Contextes verts et SM : les contextes légers pré-assignent des SM pour une exécution déterministe. Avec MPS, plusieurs processus peuvent être exécutés en parallèle sans chevauchement des SM, à condition que CUDA_MPS_ACTIVE_THREAD_PERCENTAGE soit correctement réglée. Des exemples évoqués incluent l’utilisation conjointe avec MIG pour des charges de robotique en temps réel (SLAM, détection, planification).
  • MIG (Multi-Instance GPU) : mentionné comme fonctionnalité à venir pour partitionner le GPU en slices isolés afin d’obtenir des performances déterministes dans chaque slice.
  • Outils NVIDIA pour la surveillance : nvidia-smi et NVML offrent des détails et métriques sur la plateforme Jetson Thor, avec des requêtes plus profondes non encore disponibles.
  • OpenRM et dmabuf : importer dmabuf dans la mémoire CUDA via l’API d’interopérabilité des ressources externes; exporter via cuMemGetHandleForAddressRange() sur les plateformes OpenRM compatibles. Vérifier le support via cuDeviceGetAttribute(CU_DEVICE_ATTRIBUTE_HOST_ALLOC_DMA_BUF_SUPPORTED).
  • NUMA : NUMA aide à optimiser le placement mémoire dans les systèmes multi-socket, améliorant la portabilité et les performances pour les applications réutilisant la mémoire entre nœuds.

Points-clés

  • CUDA 13.0 unifie le toolkit ARM pour Jetson Thor, réduisant les fragments de toolchain et de conteneurs.
  • Mémoire Virtuelle Unifiée avec cohérence complète facilite les flux CPU-GPU sans copies explicites.
  • MPS, contextes verts et MIG promettent d’améliorer l’utilisation du GPU et la détermination dans les charges temps réel.
  • OpenRM/dmabuf et NUMA étendent l’interopérabilité et les performances sur les plateformes.
  • Le support nvidia-smi/NVML augmente la visibilité et le contrôle pour les déploiements edge.

FAQ

  • Qu’est-ce que l’outil unifié dans CUDA 13.0 pour Jetson Thor ?

    C’est l’unification du toolkit CUDA pour les plateformes Arm, réunissant les outils serveur et embarqués sous un seul bundle (Orin reste sur le chemin actuel).

  • Comment la Mémoire Virtuelle Unifiée affecte-t-elle le développement sur Jetson Thor ?

    UVM permet une cohérence entre mémoire CPU et GPU, l’accès à la mémoire paginable via les tables de pages du host, et une concurrence CPU-GPU sans copies explicites; les allocations cudaMallocManaged() supportent concurrentManagedAccess = 1, mais ne sont pas mises en cache par le GPU.

  • uels outils aident à gérer et surveiller le GPU sur Jetson Thor ?

    nvidia-smi et NVML offrent visibilité et métriques; certaines requêtes avancées ne sont pas encore disponibles.

  • uelles options d’interopérabilité mémoire existent-elles ?

    OpenRM et dmabuf permettent d’importer et d’exporter des buffers mémoire via l’API d’interopérabilité des ressources externes; vérifiez le support avec cuDeviceGetAttribute(CU_DEVICE_ATTRIBUTE_HOST_ALLOC_DMA_BUF_SUPPORTED).

  • uel rôle jouent MPS, contextes verts et MIG dans cette version ?

    MPS permet le partage du GPU, les contextes verts garantissent une allocation déterministe des SM, et MIG est référencé comme fonctionnalité à venir pour partitionner le GPU et offrir de la prévisibilité.

Références

More news