CUDA
CUDA (Compute Unified Device Architecture) est la plateforme de calcul parallèle propriétaire de NVIDIA et le modèle de programmation qui permet aux développeurs d'écrire du code C/C++ exécuté directement sur les GPUs NVIDIA, les transformant en processeurs parallèles à usage général pour les charges de travail IA et scientifiques.
CUDA (Compute Unified Device Architecture) est une plateforme de calcul parallèle et une interface de programmation d'application introduite par NVIDIA en 2006. Elle étend le C/C++ standard avec des annotations et des bibliothèques d'exécution qui permettent aux développeurs d'écrire des kernels—des fonctions qui s'exécutent en parallèle sur des milliers de cœurs GPU simultanément—sans connaissance de la programmation graphique. CUDA a transformé les GPUs NVIDIA de simples accélérateurs graphiques à fonction fixe en processeurs parallèles programmables utilisables pour la simulation scientifique, le traitement d'images, la cryptographie, et finalement le machine learning à grande échelle.
Dans le modèle de programmation CUDA, le CPU (hôte) orchestre l'exécution tout en lançant les fonctions kernel qui s'exécutent sur le GPU (périphérique). Les kernels sont organisés en une grille de blocs de threads ; chaque bloc s'exécute sur un multiprocesseur de flux (SM) et partage la mémoire partagée rapide intégrée entre ses threads. Le runtime CUDA gère les transferts de mémoire entre la DRAM de l'hôte et la HBM du GPU, l'ordonnancement des threads et la synchronisation. Les bibliothèques de niveau supérieur construites sur CUDA—cuBLAS pour l'algèbre linéaire dense, cuDNN pour les primitives de réseaux de neurones, cuSPARSE pour les opérations creuses, NCCL pour la communication collective multi-GPU—permettent aux frameworks tels que PyTorch, TensorFlow et JAX d'appeler des routines GPU optimisées sans que les développeurs n'écrivent des kernels CUDA bruts.
CUDA importe parce que c'est l'interface de programmation de facto pour l'IA accélérée par GPU. PyTorch, TensorFlow, JAX et pratiquement tous les frameworks IA majeurs livrent des backends CUDA comme leur principal chemin d'exécution GPU. L'investissement d'une décennie que la communauté de recherche a consenti dans du code optimisé pour CUDA—y compris les kernels d'attention compatibles FlashAttention de NVIDIA, Triton (un langage de kernel basé sur Python qui compile en CUDA PTX) et cuDNN—crée des coûts de commutation substantiels pour passer à des plates-formes matérielles alternatives. Les outils d'analyse comparative, de débogage et de profilage (NVIDIA Nsight, Compute Sanitizer) sont tous natifs de CUDA.
En 2026, la domination de CUDA dans l'entraînement IA reste largement intacte, bien qu'elle fasse face à la pression de la plateforme ROCm d'AMD, qui supporte PyTorch avec des changements de code minimaux, et d'API de calcul agnostiques du fournisseur telles que OpenCL, Vulkan Compute et SYCL. NVIDIA a introduit CUDA 12.x avec le support des architectures Hopper (H100) et Blackwell (B200), ajoutant le support des cores tenseurs FP8 et des primitives de mémoire distribuée améliorées. L'écart de maturité entre l'écosystème de CUDA et ses concurrents reste large pour l'entraînement de modèles frontière, bien que les déploiements d'inférence utilisent de plus en plus des runtimes de niveau supérieur—TensorRT, vLLM, ONNX Runtime—qui abstraient la programmation directe en CUDA.