L'informatique GPU avec NVIDIA
L'informatique GPU, c'est l'utilisation d'un GPU (graphics processing unit) pour le calcul scientifique et technique à caractère général. CPU et GPU collaborent ici dans un modèle informatique hétérogène. La partie séquentielle des applications est exécutée sur le CPU tandis que les parties à forte intensité de calcul sont traitées sur le GPU. Du point de vue de l'utilisateur, l'application est plus rapide puisqu'elle exploite la puissance élevée du GPU et accroît ainsi considérablement les performances.
L'informatique GPU est rendue possible par l'architecture CUDA massivement parallèle des GPU NVIDIA. L'architecture CUDA consiste en centaines de cœurs de processeurs opérant ensemble pour traiter les applications complexes.
L'architecture CUDA parallèle et le modèle de programmation
L'architecture CUDA matérielle parallèle est accompagnée du modèle de programmation CUDA parallèle offrant une série d'abstractions permettant de traiter en parallèle des données ou des tâches quel que soit le volume. Le programmeur peut exprimer ce parallélisme dans des langages de haut niveau tels que C, C++, Fortran ou des API pilotes comme OpenCL et DirectX-11 Compute.
Le modèle de programmation parallèle CUDA amène les programmeurs à partitionner les problèmes en sous-problèmes grossiers pouvant être résolus de manière indépendante et parallèle. Le parallélisme à granularité fine des sous-problèmes conduit à un calcul en parallèle de chacun d'entre eux. L'architecture GPU CUDA et le modèle informatique parallèle correspondant sont maintenant largement pris en charge par des centaines d'applications et décrits dans presque un millier de publications scientifiques.
L'informatique GPU avec CUDA
La technologie CUDA NVIDIA exploite la puissance de calcul massivement parallèle des GPU NVIDIA. L'architecture CUDA est une architecture parallèle révolutionnaire qui met à la disposition de l'informatique GPU générale (informatique GPGPU) la performance des processeurs graphiques NVIDIA. Les applications sur architecture CUDA peuvent profiter d'une base d'installation de centaines de millions de GPU CUDA sur ordinateurs desktop et portables, stations de travail professionnelles et clusters de supercalcul.
Avec l'architecture et les outils de programmation CUDA, les développeurs de logiciels obtiennent des accélérations impressionnantes dans des domaines tels que l'imagerie médicale et la prospection de ressources naturelles et créent des applications innovantes dans la reconnaissance d'image et le codage et la lecture de vidéo HD en temps réel. CUDA autorise cette performance inédite via des API standards comme OpenCL et DirectX-Compute et des langages de programmation de haut niveau tels que C/C++, Fortran, Java, Python et Microsoft .NET Framework.
CUDA : De la perspective des développeurs
CUDA comprend trois composants importants : l'API pilote CUDA (aussi appelée low-level API), les outils CUDA (l'environnement de développement lui-même avec les librairies runtime) et un Software Development Kit (CUDA SDK) comprenant des exemples de codes.
La boîte à outils CUDA est, pour l'essentiel, un environnement de développement C. Elle inclut le compilateur (nvcc) lui-même, un développement antérieur du compilateur PathScale C, des librairies FFT et BLAS optimisées, un profileur graphique (cudaprof), un debugger à base gdb (cudagdb), des librairies partagées pour l'environnement runtime des programmes CUDA (Runtime API) et, pour finir, une documentation exhaustive (y compris un manuel développeur).
Le SDK CUDA comprend des exemples de codes sources pour le calcul de matrices, des générateurs de nombres pseudo-aléatoires, la convolution d'image, le calcul d'ondelettes et bien plus encore.








