Ce tutoriel explore certains points approfondis de CUDA, tout en restant dans le runtime. Pour faciliter le développement, NVIDIA met à disposition quelques librairies : CuBLAS et CuFFT. Vous apprendrez à les utiliser, uniquement en C. La communauté GPGPU met à notre disposition une autre librairie, CUDPP, que nous allons aussi aborder. Cette librairie en utilise une autre, CUTIL. Thrust, une dernière librairie, est l'équivalent de la STL pour CUDA. Mais ces librairies sont de gros mastodontes, parfois, et vous devrez peut-être effectuer de plus petites opérations mathématiques ou atomiques, qui s'adaptent à plus de situations. Cependant, ces calculs ne sont pas synchrones : il faut donc les synchroniser avec votre application. Et n'oublions pas que les GPU sont avant tout prévus pour la 3D : CUDA peut interopérer avec les API majeures du marché, OpenGL, ainsi que DirectX 9 et 10. De nos jours, les entreprises ont besoin d'applications fiables, qui ne plantent pas à la moindre erreur : CUDA permet aussi de vérifier les retours des fonctions. Aussi, les systèmes multi-GPU sont de plus en plus fréquents, et CUDA ne permet de n'en utiliser qu'un à la fois, en mode « pilote automatique ». Nous verrons qu'il y a moyen de le choisir. Vous pouvez même utiliser plusieurs GPU en même temps ! Cependant, pas dans le même thread.