CUDA approfondi


précédentsommairesuivant

I. Introduction

Nous avons étudié quelques principes généraux de l'architecture de CUDA, afin de bien le comprendre. Nous avons ensuite étudié ses différentes briques. Nous nous étions arrêtés sur le runtime, composant que nous allons continuer dans cet article. Ce composant définit quelques variables et types, qui seront bientôt vus. Nous n'avons qu'entr'aperçu la manière d'écrire en mémoire : vous verrez qu'il y a aussi moyen de définir des tableaux en 2D et en 3D, entre autres. Quand vous avez appris à appeler un kernel, je ne vous ai pas dévoilé la consistance du quatrième paramètre de configuration à l'exécution : les flux. Cela sera réglé.

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.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

CUDA et le GPGPU
Introduction à CUDA
CUDA approfondi
La FAQ GPGPU & CUDA
  

Copyright © 2009 Thibaut Cuvelier. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.