Traitement du langage naturel appliqué à l'entreprise
by Ankur A. Patel, Ajay Uppili Arasanipalai
Annexe B. CUDA
Tout au long de ce livre, nous avons principalement utilisé PyTorch ou des outils construits au-dessus de lui, tels que fastai et Hugging Face transformers. Lorsque nous l'avons présenté pour la première fois dans ce livre, nous avons présenté PyTorch comme un cadre de travail de bas niveau, dans lequel tu construis des architectures et écris des boucles d'apprentissage "à partir de zéro" en utilisant tes connaissances en algèbre linéaire.
Mais PyTorch n'est peut-être pas le niveau d'abstraction le plus bas auquel tu as affaire dans l'apprentissage automatique.
PyTorch lui-même est écrit en C++, auquel le langage CUDA est une extension. CUDA est décrit comme un "modèle de programmation" qui te permet d'écrire du code pour les GPU Nvidia. Lorsque tu écris ton code C++, tu inclus certaines fonctions appelées "noyaux CUDA" qui effectuent une partie du travail sur le GPU .
Qui est ce Pokémon ? Noyaux CUDA
Un noyau est une fonction compilée et conçue pour fonctionner sur du matériel accélérateur spécial comme les GPU (processeurs graphiques), les FPGA (réseaux de portes programmables) et les ASIC (circuits intégrés spécifiques à une application). Ils sont généralement écrits par des ingénieurs qui connaissent très bien l'architecture du matériel, et sont largement réglés pour effectuer très bien une seule tâche, comme la multiplication de matrices ou la convolution. Les noyaux CUDA sont des noyaux exécutés sur des appareils qui utilisent les GPU et les accélérateurs ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access