06.10.2026 · Signal Titans Editorial
NVIDIA intègre les Green Contexts à l’API Runtime de CUDA 13.1 pour le partitionnement des GPU
CUDA 13.1 apporte les Green Contexts à l'API Runtime, permettant de partitionner explicitement les multiprocesseurs de flux et files de travail du GPU.

NVIDIA a étendu la prise en charge des Green Contexts à l'API Runtime de CUDA 13.1, offrant aux développeurs un contrôle explicite sur le partitionnement des ressources matérielles du GPU au sein d'un processus unique. Lancés initialement dans l'API Driver de CUDA 12.4, les Green Contexts permettent aux applications d'attribuer des sous-ensembles dédiés de multiprocesseurs de flux (SM, pour Streaming Multiprocessors) et de configurer des files d'attente de travail isolées, évitant ainsi que les tâches d'arrière-plan ne perturbent les traitements sensibles à la latence.
Contourner les goulots d'étranglement de priorité de flux
L'exécution CUDA standard s'appuie sur la priorité des flux (streams) pour planifier les tâches concourantes, mais cette priorité ne permet pas de préempter les blocs déjà en cours d'exécution sur un SM. Lorsqu'un noyau axé sur le débit sature le GPU, une tâche prioritaire doit attendre la fin des blocs actifs avant d'accéder aux ressources des SM.
Les Green Contexts éliminent ce délai en réservant des ressources matérielles dédiées aux noyaux critiques. Lors de tests de performance réalisés par NVIDIA sur un GPU Blackwell doté de 148 SM, l'exécution d'un noyau critique sur des partitions dédiées via Green Context a réduit la latence d'un facteur 20 par rapport à une planification prioritaire sans partitionnement. Si la priorité de flux seule offrait déjà une amélioration d'un facteur 27 par rapport aux flux par défaut non prioritaires, elle restait tributaire du temps de libération des blocs.
Contrôle explicite des ressources via l'API Runtime
Les applications CUDA Runtime traditionnelles sélectionnent les processeurs via des appels comme cudaSetDevice() et déduisent les cibles d'exécution à partir d'un état local au thread implicite. CUDA 13.1 introduit le type cudaExecutionContext_t pour rendre la sélection des ressources explicite.
Les développeurs définissent les partitions avec cudaGreenCtxCreate() et attribuent des descripteurs explicites aux flux à l'aide de cudaExecutionCtxStreamCreate(). Outre le nombre de SM, les applications peuvent allouer des ressources de files de travail dédiées au moyen de descripteurs, évitant les fausses dépendances et la sérialisation des files d'attente entre flux indépendants.
Charges de travail ciblées et intégration
NVIDIA met en avant les Green Contexts pour les applications nécessitant une isolation stricte des performances, telles que le chevauchement des communications et des noyaux GEMM lors de l'entraînement distribué, ou l'exécution d'opérateurs en temps réel sur des plateformes d'IA comme NVIDIA Holoscan. Ce modèle est optionnel et additif, ce qui permet aux développeurs de conserver une allocation à l'échelle du GPU complet via cudaDeviceGetExecutionCtx() ou d'adopter un partitionnement granulaire selon leurs besoins.
Illustration éditoriale générée par IA ; ce n’est pas une photographie documentaire.
Source: Control How Your GPU Shares Work with Green Contexts