CUDA (Compute Unified Device Architecture) est une plateforme de calcul parallèle et un modèle de programmation créés par Nvidia, publiés pour la première fois en 2006, qui permettent aux développeurs d'écrire du code à usage général destiné à s'exécuter sur les GPU Nvidia plutôt que uniquement du code de rendu graphique. Elle a offert aux programmeurs un moyen relativement accessible d'exploiter les milliers de cœurs parallèles d'un GPU pour des calculs arbitraires, en étendant des langages tels que C et C++ avec des constructions spécifiques aux GPU.
Historique et objectif
Avant CUDA, utiliser un GPU pour des calculs non graphiques nécessitait d'exprimer un problème en termes d'opérations graphiques, comme les textures et les shaders, une solution de contournement que peu de personnes en dehors de l'infographie trouvaient pratique. La publication de CUDA par Nvidia en 2006 a levé cette barrière, et la plateforme a mûri au cours de la décennie suivante grâce à son adoption dans le calcul scientifique, la finance computationnelle et, de plus en plus à partir du début des années 2010, la recherche en apprentissage profond. Le succès de AlexNet en 2012, entraîné à l'aide de GPU accélérés par CUDA, a démontré le potentiel de l'apprentissage profond et a stimulé une vague d'investissements en recherche dans l'entraînement sur GPU basé sur CUDA, consolidant le rôle de la plateforme dans ce domaine.
Rôle technique et écosystème
CUDA fournit les bibliothèques de bas niveau, telles que cuDNN pour les primitives de réseaux de neurones et cuBLAS pour l'algèbre linéaire, sur lesquelles la plupart des frameworks d'apprentissage profond s'appuient. PyTorch et TensorFlow, les deux frameworks dominants d'apprentissage profond, sont tous deux écrits pour fonctionner efficacement sur CUDA, et la grande majorité des recherches publiées en apprentissage profond ainsi que des systèmes d'IA en production au milieu des années 2020 s'exécutent sur du matériel Nvidia compatible CUDA. Cela a créé un fossé logiciel puissant : faire migrer un grand codebase d'IA des GPU Nvidia vers le matériel d'un concurrent, comme la plateforme ROCm d'AMD ou le TPU de Google, nécessite généralement un travail d'ingénierie considérable, car une grande partie des outils, du code de recherche individuel aux serveurs d'inférence en production, est écrite et optimisée spécifiquement pour CUDA.
Importance et critiques
CUDA est largement crédité, aux côtés du matériel GPU lui-même, comme un facteur décisif de la domination de Nvidia sur le marché du matériel d'IA pendant le boom de l'IA des années 2020, car il est difficile pour les concurrents de déloger la position de Nvidia en égalant uniquement les performances matérielles, étant donné la part importante de l'écosystème logiciel, des bibliothèques de recherche aux frameworks d'entraînement de grands modèles de langage, qui suppose que CUDA est disponible. Les critiques de cette dynamique, y compris les fabricants de puces concurrents et certains laboratoires d'IA, ont décrit CUDA comme un mécanisme de verrouillage propriétaire qui augmente les coûts et limite le choix du matériel dans toute l'industrie, et ont soutenu des alternatives ouvertes telles que le langage Triton d'OpenAI, visant à faciliter l'écriture de code GPU portable entre les fournisseurs. Malgré ces efforts, en 2025, CUDA restait l'hypothèse par défaut sous-jacente à la plupart des logiciels d'apprentissage profond, du code de recherche académique à l'infrastructure exécutant les modèles de fondation de pointe.