John Nickolls est un architecte informatique et chercheur chez NVIDIA qui a joué un rôle fondamental dans le développement de l'informatique sur GPU. Son travail s'est concentré sur les architectures de traitement parallèle, en particulier la conception de shaders programmables et la création de CUDA, une plateforme qui a permis l'informatique généraliste sur les unités de traitement graphique. Les contributions de Nickolls ont aidé à transformer les GPU de matériel graphique spécialisé en processeurs polyvalents pour les charges de travail de intelligence artificielle.
Nickolls a rejoint NVIDIA au début des années 2000, apportant une expérience de ses travaux précédents chez Nokia Bell Labs et d'autres entreprises technologiques. Il a joué un rôle déterminant dans l'architecture de la GeForce 8800 GTX (2006), qui a introduit les shaders unifiés, et a ensuite dirigé l'effort de développement de CUDA, publié pour la première fois en 2007. Son leadership en recherche et ingénierie a été essentiel pour établir le modèle de programmation qui a permis aux développeurs d'exploiter le parallélisme des GPU pour des tâches non graphiques.
Début de carrière et parcours
Nickolls a obtenu une licence en génie électrique à l'Université de Toronto et une maîtrise en informatique à l'Université Carnegie-Mellon. Il a commencé sa carrière chez Nokia Bell Labs, où il a travaillé sur les systèmes de calcul parallèle dans les années 1980 et 1990. Il a ensuite cofondé une startup spécialisée dans l'informatique reconfigurable, qui a été acquise par NVIDIA en 2003. Cette acquisition a amené Nickolls et son équipe chez NVIDIA, où ils ont commencé à travailler sur l'architecture des GPU.
Innovations en architecture GPU
Chez NVIDIA, Nickolls a contribué à la conception de l'architecture G80, sortie en 2006. Cette architecture a unifié les shaders de vertex et de pixels en un ensemble unique de cœurs programmables, simplifiant la programmation et augmentant la flexibilité. Le G80 a également introduit un jeu d'instructions scalaire et un modèle mémoire prenant en charge l'informatique généraliste. L'équipe de Nickolls a conçu le jeu d'instructions et le modèle d'exécution qui ont permis une gestion efficace des threads, jetant les bases de CUDA.
Développement de CUDA
CUDA, annoncé en 2006 et publié en 2007, a constitué une étape majeure dans l'informatique sur GPU. Nickolls a été un architecte principal du modèle de programmation CUDA, qui a étendu le langage C avec des mots-clés pour l'exécution parallèle. CUDA a permis aux développeurs d'écrire du code s'exécutant simultanément sur des milliers de cœurs GPU, avec une organisation hiérarchique des threads et une mémoire partagée. Ce modèle a été conçu pour être évolutif à travers différentes générations de GPU et est devenu la norme pour l'informatique haute performance sur le matériel NVIDIA.
Impact sur l'IA et l'apprentissage automatique
Le travail de Nickolls sur CUDA a eu un impact profond sur le apprentissage automatique et le apprentissage profond. La capacité d'effectuer des opérations massives de multiplication de matrices sur les GPU a accéléré l'entraînement des modèles de réseaux de neurones, qui s'exécutaient auparavant sur des CPU. Cette accélération a été essentielle pour l'essor du apprentissage profond dans les années 2010, notamment les percées en reconnaissance d'images et en traitement du langage naturel. Les GPU NVIDIA, propulsés par CUDA, sont devenus le matériel principal pour l'entraînement des grands modèles de langage et d'autres systèmes d'IA, utilisés par des entreprises comme OpenAI et Google DeepMind.
Travaux ultérieurs et héritage
Nickolls a continué à influencer l'architecture des GPU chez NVIDIA, contribuant aux générations suivantes telles que Fermi (2010) et Kepler (2012), qui ont affiné les performances de CUDA et ajouté des fonctionnalités comme le parallélisme dynamique. Il a également travaillé sur des conceptions de GPU à faible consommation pour les appareils mobiles. Il a pris sa retraite de NVIDIA au milieu des années 2010, mais reste une figure respectée dans le domaine. Ses articles et conférences sur l'informatique GPU sont largement cités, et ses décisions architecturales ont façonné le paysage moderne du calcul parallèle.
L'héritage de Nickolls est évident dans l'omniprésence de l'informatique GPU dans la recherche et l'industrie de l'intelligence artificielle. La plateforme CUDA qu'il a contribué à créer est désormais utilisée dans le calcul scientifique, l'analyse de données et l'IA, faisant de lui un pionnier clé dans la transition des GPU dédiés uniquement aux graphiques vers des accélérateurs généralistes.