CUDA réunit plusieurs éléments :
- Matériel massivement parallèle conçu pour exécuter du code générique (non graphique), avec les pilotes appropriés.
- Un langage de programmation basé sur le langage C pour programmer ce matériel, et un langage d'assemblage que d'autres langages de programmation peuvent utiliser comme cible.
- Un kit de développement logiciel qui comprend des bibliothèques, divers outils de débogage, de profilage et de compilation, ainsi que des liaisons permettant aux langages de programmation côté CPU d'invoquer le code côté GPU.
L'intérêt de CUDA est d'écrire du code qui peut être exécuté sur des architectures SIMD massivement parallèles compatibles : cela inclut plusieurs types de GPU ainsi que du matériel non GPU tel que nVidia Tesla. Le matériel massivement parallèle peut exécuter un nombre d'opérations par seconde nettement plus élevé que le CPU, pour un coût financier relativement similaire, ce qui permet d'améliorer les performances de 50× ou plus dans les situations qui le permettent.
L'un des avantages de CUDA par rapport aux méthodes précédentes est qu'un langage universel est disponible, au lieu de devoir utiliser des nuanceurs de pixels et de sommets pour émuler des ordinateurs universels. Ce langage est basé sur le langage C avec quelques mots-clés et concepts supplémentaires, ce qui le rend relativement facile à assimiler pour les programmeurs ne disposant pas d'un GPU.
C'est également un signe que nVidia est prêt à prendre en charge la parallélisation à usage général sur son matériel : cela ressemble désormais moins à du "bidouillage avec le GPU" qu'à "l'utilisation d'une technologie prise en charge par un fournisseur", ce qui facilite son adoption en présence de parties prenantes non techniques.
Pour commencer à utiliser CUDA, téléchargez le SDK, lisez le manuel (sérieusement, il n'est pas que compliqué si vous connaissez déjà le C) et d'acheter du matériel compatible avec CUDA (vous peut utiliser l'émulateur au début, mais la performance étant le but ultime, il vaut mieux que vous puissiez réellement essayer votre code)