La sortie cette semaine aux développeurs enregistrés de CUDA est l’accomplissement de milliers d’heures dédiées à ce projet. Cette technologie peut sembler jeune, sa première version, la 1.0, n’a été sortie qu’en 2007. L’effet de cette sortie sur le monde entier n’a, sans nul doute possible, pas été nul. Elle n’est pas non plus le seul terrain d’avance pour les technologies massivement parallèles sur matériel NVIDIA : les API comme OpenCL et DirectCompute sont elles aussi supportées et améliorées, en plus d’un accès direct au GPU en C, C++ et Fortran.
Comme toujours, NVIDIA est à la recherche d’aide sur le sujet, notamment au niveau des retours d’utilisateurs, d’améliorations possibles, des bogues ; tout ce qui vous empêche de développer rapidement, de déployer des applications sans souci, tout cela doit être amélioré. Si vous êtes intéressé dans cette perspective, n’hésitez pas à vous enregistrer comme développeur.
Le contenu de CUDA 4.0
Venons-en au fait de cette sortie prochaine, vendredi 4 mars aux développeurs enregistrés.
Notons la version 2.0 de GPUDirect, une technologie qui offre un support pour des communications entre les GPU d’un serveur ou d’une station de travail, une fonctionnalité que beaucoup décrivent comme un outil pour un développement plus rapide et plus aisé pour plusieurs GPU, ainsi qu’un vecteur d’améliorations de performances.
UVA, acronyme de Unified Virtual Addressing, permet d’utiliser un espace d’adressage mémoire unifié entre la mémoire du système et celles des GPU.
Aussi, grande nouveauté par rapport aux versions précédentes de CUDA, le partage entre divers threads de GPU : plusieurs threads ou processus sur le CPU peuvent utiliser le même GPU pour leurs calculs. De même, un même thread CPU peut utiliser plusieurs GPU en même temps. Thrust est désormais intégré dans CUDA, le portage de la STL du C++ aux technologies du GPU.
Pour les amateurs de C++, de nouvelles fonctionnalités propres au langage sont désormais supportées, comme les fonctions virtuelles, ainsi que les mots clés new et delete pour la gestion de la mémoire allouée.
Sources : http://blogs.nvidia.com/2011/03/announcing-cuda-4-0/, http://developer.nvidia.com/object/cuda_4_0_RC_downloads.html, http://www.ddj.com/high-performance-computing/229219474;jsessionid=YAXVYSIIVLYCTQE1GHPSKH4ATMY32JVN, http://www.anandtech.com/show/4198/nvidia-announces-cuda-40 (d’où proviennent les images)