CUDA est l’acronyme de Compute Unified Device Architecture et décrit aussi bien une certaine architecture de GPU que l’environnement de recherche correspondant pour programmeurs de logiciels, permettant de générer des codes de programme pour les GPU NVIDIA.
CUDA se compose de trois éléments importants :
- Le pilote API CUDA (également appelé „API de bas niveau“)
- Le kit outils CUDA (l’environnement effectif de développement y compris les bibliothèques runtime)
- Un SDK CUDA contenant des exemples de code
Le kit outils CUDA est principalement un environnement de développement. Outre le compilateur (nvcc), une adaptation du compilateur C PathScale et des bibliothèques FFT et BLAS, il comprend également un profiler, un débogueur (gdb), des bibliothèques partagées pour l’environnement d'exécution de programmes CUDA (les « API Runtime ») et enfin une documentation complète y compris un manuel du programmeur. Le SDK CUDA reprend des exemples de code source pour le calcul de matrices, générateurs de pseudo chiffres aléatoires, circonvolution d’image, calculs d’ondelettes et bien plus encore.
CUDA est disponible sur toutes les GPU NVIDIA à partir de la série G8X, y compris GeForce, Quadro et la série Tesla. La fonction permet de programmer l'accès à la performance des éléments de calcul massif-parallèle dans les GPU. Contrairement aux CPU, à savoir les unités processeurs, les GPU possèdent une architecture « Many-Core » ce qui signifie que le degré de synchronisme est 2 fois supérieur à celui des CPU traditionnels. En outre, une GPU possède une mémoire propre susceptible d’être interpellée par les unités d’exécution des différents cœurs selon une largeur de bande bien plus importante.
Pour délocaliser une architecture GPU complète sur un système externe, un système gateway en tant qu’ordinateur principal est requis, auquel seront raccordés les systèmes GPU via des connexions PCI-Express exécutées de façon externe.
|
|
|