NVIDIA CUDA 13 3  Bild © NvidiaNVIDIA CUDA 13 3 (Bild © Nvidia)

Erweiterte Programmiermöglichkeiten für C++ und Python

Eine wichtige Neuerung in dieser Version ist die CUDA-Tile-Programmierung für C++. Dieses Modell automatisiert Speicherbewegungen und Parallelität, sodass Entwickler hochrangige Tile-Kernel schreiben können, die über verschiedene GPU-Architekturen hinweg portierbar bleiben, einschließlich der Hopper-Serie.

Gleichzeitig hat CUDA Python die Version 1.0 erreicht. Dieser Meilenstein führt eine strenge semantische Versionspolitik ein, um die API-Stabilität zu gewährleisten. Die cuda.core-Bibliothek ist nun stabil und bietet mehrere erweiterte Funktionen:

  • Green Contexts: Diese ermöglichen die Partitionierung von Streaming Multiprocessors (SMs), um latenzempfindliche Kernel vor lang laufenden Aufgaben zu schützen.
  • Prozess-Checkpointing: Eine Linux-exklusive Funktion, die das Erstellen von Snapshots und die Wiederherstellung des vollständigen CUDA-Zustands eines Prozesses ermöglicht.
  • Inter-Prozess-Sharing: Erleichtert die gemeinsame Nutzung von GPU-Speicher über mehrere Python-Prozesse hinweg, ohne dass ein Kopieren auf der Host-Seite erforderlich ist.

Zudem ersetzt das neue Numba CUDA MLIR-Backend den Standard-Import numba.cuda, was zu einer deutlich geringeren Kompilierungslatenz und reduziertem Dispatch-Overhead auf der Host-Seite führt.

Leistungsoptimierung über CompileIQ

Um die Kernel-Effizienz zu maximieren, hat NVIDIA CompileIQ eingeführt. Im Gegensatz zu Standard-Compilern, die auf allgemeinen Heuristiken basieren, nutzt CompileIQ genetische und evolutionäre Algorithmen, um spezialisierte Konfigurationen für einzelne Kernel zu generieren. Dieses Framework bietet eine Leistungssteigerung von bis zu 15 % für kritische Operationen wie GEMM- und Attention-Kernel, die für die Inferenz von Large Language Models (LLM) von zentraler Bedeutung sind.

Bibliotheks-Updates und Tensor-Interoperabilität

Die CUDA Core Compute Libraries (CCCL 3.3) bieten nun eine verbesserte Tensor-Interoperabilität. Durch die Verwendung von DLPack und mdspan können Entwickler Tensoren zwischen Python-Frameworks und C++-Kerneln übertragen, ohne strukturelle Informationen zu verlieren. Die Bibliothek bietet zudem eine umfassende Suite von 17 Zufallsverteilungen und einen neuen Suchalgorithmus, cub::DeviceFind::FindIf, der eine Leistungssteigerung von bis zu 7-fachen zeigt.

Auch die zentralen Mathematikbibliotheken wurden gezielt optimiert:

  • cuBLAS und cuSPARSE: Beide Bibliotheken wurden aktualisiert, um die Blackwell-Architektur und neue Matrixformate zu unterstützen, wobei bestimmte APIs in cuSPARSE einen Leistungssprung um das 2,5-Fache verzeichnen.
  • cuSOLVER: Die Einführung von 64-Bit-Schnittstellen und der Vorbedingung mit geringer Genauigkeit hat die Lösungszeit für große Matrizen auf B200-GPUs um etwa 20 % verkürzt.

Optimierungen auf Compiler- und Systemebene

Die NVCC- und NVRTC-Compiler unterstützen nun den C++23-Standard vollständig. Um den Entwicklungsworkflow zu vereinfachen, bündelt NVRTC nun Standard-Header, wodurch die Notwendigkeit einer manuellen Verwaltung der Include-Pfade entfällt.

Auf Systemebene verbessert CUDA 13.3 die Multi-Tenant-Stabilität durch MPS-Teilfehlerisolierung, die sicherstellt, dass ein Fehler in einer Client-Partition keine nicht betroffenen Prozesse beendet. Darüber hinaus bietet die Unterstützung von mmap() eine Alternative mit geringer Latenz für das Mappen von diskretem GPU-Speicher auf die CPU in Umgebungen, in denen bestimmte Kernel-Treiber nicht installiert werden können.