Programmation avec CUDA

La programmation sur GPU (Graphics Processing Unit) a été rendue possible grâce à l'ouverture des opérations du pipeline graphique au programmeur ainsi que par la modification de l'architecture des cartes graphiques. Le GPU peut alors être considéré comme un co-processeur capable de seconder le processeur lorsque des traitements sont hautement parallélisables. CUDA (Compute Unified Device Architecture) de NVidia qui permet notamment de programmer des calculs sur le GPU en langage C est devenu un standard incontournable et une alternative très intéressante en terme de coût et d'efficacité pour le calcul parallèle par rapport aux clusters de machines.

Logo NVidia

En 2008, le supercalculateur Bull NovaScale est un cluster associant 1068 CPU (octo-core Intel) développant une puissance de 103 Téraflops et 48 GPU (de 512 coeurs) apportant une puissance supplémentaire théorique de 192 Téraflops.

Cours

Mise en pratique

  1. Calcul du Global Thread InDex
  2. Transftert mémoire
  3. Somme de vecteurs
  4. Courbes de Julia
  5. Lancer de rayon (Ray Tracing)
  6. Réduction
  7. Nombres auto-descriptifs

Autres sujets

Annexes