La version 4.0 étant sortie en mai 2011, deux mois après une Release Candidate, voici la nouvelle cuvée CUDA, la version 4.1, qui se concentre sur trois axes (et non des moindres !) :
- un Visual Profiler amélioré, avec analyse de performance automatisée ;
- des centaines de nouvelles fonctions pour NPP (NVIDIA Performance Primitives), de nouvelles primitives pour le traitement des images et du signal fortement optimisées ;
- un nouveau compilateur basé sur LLVM.
Ces nouvelles fonctionnalités ont principalement été développées à l’intention des (géo)physiciens, biologistes et chimistes. Évidemment, bien d’autres nouvelles fonctionnalités sont disponibles (support des fonctions de Bessel, nouveaux générateurs de nombres pseudoaléatoires, etc.).
Le profileur visuel
Cette nouvelle version de l’environnement de profiling basé sur Eclipse effectue une analyse pointue des performances des applications automatiquement, d’une manière encore simplifiée de telle sorte que tous les développeurs pourront retirer un maximum de performances de CUDA et de leur matériel en identifiant les goulots d’étranglement de leur implémentation et en les corrigeant, grâce à une suggestion étape par étape d’améliorations au code avec des liens avec la documentation déjà présente dans la boîte à outils.
Parallel Nsight 2.1
Un add-in pour Visual Studio combinant la puissance de l’EDI à celle du GPGPU : il permet de déboguer, profiler et optimiser du code prévu pour GPU à l’intérieur même de l’EDI, bien que plus prévu pour le CPU (que ce soit des kernels CUDA ou OpenCL, des shaders DirectX ou OpenGL).
Cette nouvelle version apporte la modification à chaud des shaders, mais aussi la visualisation des warps en cours d’exécution. On dispose désormais de plus d’informations sur ce qui se passe sur le GPU : l’état de CUDA au lancement, les spécificités du GPU courant (pilote, architecture, mémoire, etc.), filtrage des exceptions, assertions, points d’arrêt, etc. On peut également arrêter le débogage sur une assertion.
NVIDIA Performance Primitives
Le nombre de fonctions disponibles a doublé par rapport à la version précédente, principalement grâce au nouveau modules de traitement du signal, avec quelques modules supplémentaires pour le traitement des images, en plus des modules déjà disponibles pour les statistiques, le filtrage, les opérations morphologiques, les transformations linéaires et géométriques, la compression et bien d’autres (presque un millier de fonctions supplémentaires !).
LLVM
Un tout nouveau compilateur est disponible, basé sur LLVM. Il promet de belles optimisations sans devoir modifier le code, simplement en le recompilant (jusqu’à 10 %, selon les applications, sans aucune modification du code existant). Cette infrastructure de compilateurs est prévue pour être modulaire – il devrait donc être possible, à moindres frais, de fournir un compilateur CUDA pour d’autres plateformes que celles de NVIDIA, sans oublier le support de langages plus spécifiques que C, C++ et Fortran. En effet, les sources sont disponibles à tout qui en fait la demande.
Sources
Communiqué de presse
http://developer.nvidia.com/parallel-nsight-21-new-features
http://drdobbs.com/architecture-and-design/232500594
Télécharger la nouvelle version du CUDA Toolkit et de Parallel Nsight.