Jensen Huang, CUDA et l'ascension de NVIDIA
Introduction
Lorsque Jensen Huang a cofondé NVIDIA en 1993, son objectif était d'apporter les graphismes 3D aux jeux vidéo et au multimédia. Aujourd'hui, les processeurs de la même entreprise servent à entraîner et à exécuter des modèles d'intelligence artificielle. Pour comprendre cette évolution, il est utile de commencer par le parcours d'ingénieur de Huang et la plateforme logicielle que NVIDIA a construite, CUDA. [1] [1]
1. La carrière d'ingénieur de Huang
Né à Taïwan, Huang a obtenu une licence en génie électrique de l'Oregon State University en 1984. Il a travaillé comme concepteur de microprocesseurs chez AMD de 1984 à 1985, puis a occupé plusieurs postes chez LSI Logic de 1985 à 1993. Il est devenu directeur de Coreware, la division chargée de la stratégie de l'entreprise visant à intégrer plusieurs composants d'un système informatique sur une seule puce. Pendant cette période, il a également obtenu un master en génie électrique de l'université Stanford en 1992. [2] [1]
Le 5 avril 1993, Huang a fondé NVIDIA avec Chris Malachowsky et Curtis Priem. Il est président, directeur général et membre du conseil d'administration depuis la création de l'entreprise. En 1999, NVIDIA est entrée en bourse. La même année, elle a présenté la GeForce 256, une étape importante dans l'histoire des unités de traitement graphique (GPU) de l'entreprise. [1] [1]
2. Qu'est-ce que CUDA ?
NVIDIA a présenté CUDA en 2006 comme une plateforme logicielle et un modèle de programmation permettant d'effectuer de nombreux calculs en parallèle sur ses GPU. Le GPU est le matériel qui effectue les calculs. CUDA fournit les outils de programmation que les développeurs utilisent pour exécuter leurs calculs sur ce matériel. Cela a ouvert les GPU conçus pour les graphismes à des applications de recherche scientifique, de calcul haute performance et d'intelligence artificielle. [1] [1]
Imaginez que vous éclaircissez une image d'un million de pixels. Le calcul pour un pixel peut se dérouler indépendamment des autres. Un programme CUDA peut diviser ce travail en calculs plus petits et les exécuter sur le GPU. Une fonction qui s'exécute sur le GPU s'appelle un noyau (kernel). De nombreux fils d'exécution l'exécutent en parallèle, chacun travaillant sur la partie des données qui lui est assignée. Le même principe de division du travail en parties exécutables en parallèle s'applique aux calculs d'IA comme les grandes multiplications de matrices. [3] [1]
3. Comment CUDA a aidé l'industrie de l'IA
Lors de l'entraînement d'un réseau de neurones, le modèle fait d'abord une prédiction. Le processus d'entraînement mesure l'erreur et met à jour les paramètres du modèle. Il répète ce processus de nombreuses fois. Les GPU accélèrent des opérations comme la multiplication de matrices, donnant aux chercheurs le temps de mener plus d'expériences et rendant possible l'entraînement de modèles plus grands. Les GPU sont aussi utilisés après l'entraînement, pendant l'inférence, lorsqu'un modèle comme un modèle de langage génère une réponse pour un utilisateur. [4] [1]
AlexNet en a donné une démonstration pratique en 2012. Entraîné sur des GPU NVIDIA, il a remporté la compétition de classification d'images ImageNet. Ses performances ont montré comment les processeurs graphiques utilisés pour les jeux vidéo pouvaient aussi entraîner des modèles à reconnaître des images. [1] [1]
4. Comment CUDA a donné à NVIDIA un avantage durable
NVIDIA a construit des bibliothèques et des outils optimisés pour les calculs dont les développeurs ont souvent besoin. cuBLAS accélère les opérations matricielles, cuDNN prend en charge les opérations courantes des réseaux de neurones, NCCL gère la communication entre GPU et TensorRT aide les modèles entraînés à s'exécuter plus rapidement. Des frameworks comme PyTorch prennent en charge CUDA, si bien que les développeurs peuvent utiliser ces capacités sans réécrire chaque opération GPU à partir de zéro. [5] [1]
Conclusion
Cet écosystème logiciel a renforcé l'activité matérielle de NVIDIA. Une équipe peut passer d'une petite expérience à un système fonctionnant sur de nombreux GPU tout en continuant à utiliser des logiciels et des outils familiers. Changer de matériel peut obliger l'équipe à revoir ses dépendances CUDA, à adapter des parties de son logiciel et à tester à nouveau les performances. En investissant dans le logiciel aux côtés du matériel pendant des années, NVIDIA disposait d'outils prêts pour les développeurs qui savaient déjà les utiliser lorsque la demande de calcul pour l'IA a augmenté. [1] [1]
Références
- https://www.nvidia.com/en-us/about-nvidia/corporate-timeline/
- https://s201.q4cdn.com/141608511/files/doc_financials/annual/2013/NVDA_2013AR_Proxy_10K-FINAL.pdf
- https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/writing-cuda-kernels.html
- https://docs.nvidia.com/cuda/cuda-programming-guide/index.html
- https://developer.nvidia.com/machine-learning
Questions sur Jensen Huang, CUDA et l'ascension de NVIDIA
Qu'est-ce que CUDA et pourquoi NVIDIA l'a-t-il construit ?
CUDA est une plateforme logicielle et un modèle de programmation que NVIDIA a introduits en 2006 pour exécuter de nombreux calculs en parallèle sur ses GPU. Le GPU est le matériel ; CUDA fournit les outils de programmation, qui ont ouvert le matériel graphique à la recherche scientifique, au calcul haute performance et à l'IA.
Comment CUDA a-t-il aidé l'industrie de l'IA ?
Entraîner un réseau de neurones signifie répéter de nombreuses fois la prédiction, la mesure de l'erreur et les mises à jour des paramètres. Les GPU accélèrent des opérations comme la multiplication de matrices, permettant aux chercheurs de mener plus d'expériences et d'entraîner des modèles plus grands. AlexNet, entraîné sur des GPU NVIDIA, l'a démontré en remportant la compétition ImageNet de 2012.
Pourquoi CUDA donne-t-il à NVIDIA un avantage durable ?
NVIDIA a construit des bibliothèques optimisées dont les développeurs ont souvent besoin – cuBLAS pour les opérations matricielles, cuDNN pour les opérations des réseaux de neurones, NCCL pour la communication multi-GPU et TensorRT pour une inférence plus rapide – et des frameworks comme PyTorch prennent en charge CUDA, si bien que les équipes peuvent passer d'une petite expérience à de nombreux GPU sans réécrire leur logiciel.
Powered By K7
