Developpez.com

Plus de 2 000 forums
et jusqu'à 5 000 nouveaux messages par jour

Les meilleurs livres pour le développement GPGPUConsultez tous les livres

Dernière mise à jour : 4 avril 2013  - 1 livres - 2 critiques - note globale : 4.0

  1. CUDA par l'exemple - une introduction à la programmation parallèle de GPU
couverture du livre CUDA par l'exemple - une introduction à la programmation parallèle de GPU

Note 4.0drapeau
Détails du livre
Sommaire
Critiques (2)
 
 

CUDA par l'exemple - une introduction à la programmation parallèle de GPU

de Jason Sanders, Edward Kandbrot, Eric Jacoboni (traducteur)
Public visé : intermédiaire à expert

Résumé de l'éditeur

CUDA est une architecture qui facilite le développement de programmes parallèles. Associé à une plate-forme logicielle complète, CUDA permet de tirer parti de la grande puissance des processeurs graphiques, ou GPU, afin de construire des applications très performantes dans de multiples domaines - ingénierie, calcul, finance, etc. - et ce sans nécessiter de connaissances en programmation graphique : il suffit de savoir programmer dans une version légèrement modifiée du langage C.

CUDA par l'exemple, écrit par deux membres éminents de l'équipe de développement de la plate-forme CUDA, a pour objectif d'expliquer comment utiliser cette nouvelle technologie. Cet enseignement s'appuie sur des exemples réels, pour lesquels tous les outils CUDA nécessaires sont librement téléchargeables à partir du site de NVIDIA.

L'ouvrage débute par une présentation de la plateforme de développement et son architecture, puis par une introduction rapide à CUDA C. Il détaille ensuite les techniques et les choix liés aux aspects essentiels de CUDA, ainsi que chaque extension de CUDA C. Grâce à ce livre, vous saurez rapidement écrire des programmes CUDA aux performances exceptionnelles.

Vous avez lu ce livre ? Qu'en pensez-vous ? 1 commentaire Donner une note à l'article (4.5)

260 pages, 1er mai 2011 

Édition : Pearson

ISBN10 : 2744024864

ISBN13 : 9782744024863

Commandez sur www.amazon.fr :

31,35 € TTC (prix éditeur 33,00 € TTC) livraison gratuite !
  • Pourquoi CUDA ? Pourquoi maintenant ?
  • Démarrage
  • Introduction à CUDA C
  • Programmation parallèle en CUDA C
  • Coopération entre threads
  • Mémoire de données constante et événements
  • Mémoire de texture
  • Interopérabilité avec les traitements graphiques
  • Atomicité
  • Flux
  • CUDA C avec plusieurs GPU
  • Compte à rebours final
  • Atomicité avancée
  • CUDA 4.0

 
Critique du livre par la rédaction Thibaut Cuvelier le 7 juillet 2011 

Petit livre s'il en est. Ses ambitions sont à la hauteur de son épaisseur : avec lui, on peut facilement se mettre dans le bain de CUDA, écrire ses premiers kernels, utiliser l'outil de manière relativement efficace. Par contre, il ne détaille pas l'architecture sous-jacente des processeurs graphiques, il ne perd pas son temps à expliquer le vocabulaire et les détails de la programmation parallèle tant que ce n'est pas nécessaire.

Les auteurs se sont basés sur une méthode d'apprentissage par l'exemple : chaque chapitre est organisé autour de plusieurs exemples, décortiqués autant que nécessaire pour que le lecteur s'y plonge sans trop de difficulté. L'objectif n'est pas de former des gens capables de comprendre jusque dans les moindres détails CUDA et l'optimisation profonde des algorithmes employés, mais plus de les amener à utiliser CUDA, en profitant de grands gains de performances par rapport à la version CPU, le tout dans un ton joyeux, sans se prendre la tête, avec une complexité croissante, sans sauter une marche. On remarquera notamment l'utilisation d'une bibliothèque de fonctions dans les exemples, afin de s'abstraire de ce qui ne concerne pas l'objectif premier du livre. Les auteurs semblent avoir remarqué ce qui pose souvent problème aux débutants avec CUDA et en profitent pour insister sur ces quelques points-clés.

Chaque chapitre est constitué de trois phases : l'introduction, où l'on introduit le sujet qui sera étudié dans le chapitre, avec la liste des objectifs ; le développement en lui-même ; la conclusion, où l'on résume les points essentiels du chapitre pour répondre aux objectifs fixés.

Il ne faut pas considérer ce livre comme une approche exhaustive de CUDA - tel n'en est pas le but -, il donne cependant les pistes nécessaires pour continuer son apprentissage de la technologie, comme le confirme le chapitre 12, où quelques pistes sont évoquées pour aller plus loin (livres de référence à consulter, bibliothèques utiles, etc.).

Par rapport à l'original, on remarquera l'ajout d'une annexe concernant CUDA 4.0, listant simplement les nouveautés de cette version, on aurait apprécié un peu plus de détails (des exemples, du code, notamment). On y apprend aussi que de nouvelles fonctionnalités du C++ sont supportées, alors que rien n'est précédemment dit sur ce langage. On n'apprendra rien sur l'architecture des GPU, pas plus sur la nouvelle architecture Fermi et les grandes nouveautés qu'elle apporte (elle n'est même pas citée), cela n'étant absolument pas l'objectif du livre.

Les prérequis ne sont pas exorbitants : la connaissance de la programmation en C est bien suffisante, inutile de connaître la programmation graphique. Dans cet ordre d'idées, chaque exemple est précédé d'une introduction plus théorique, qui explique ce qui va être réalisé par la suite, au cas où le lecteur ne le saurait pas. Ainsi, on explique brièvement le principe des réductions, des histogrammes, du lancer de rayons, etc.

Critique du livre par la rédaction Matthieu Brucher le 1er octobre 2011 

CUDA est à la mode depuis plusieurs années maintenant, et plusieurs ouvrages sont parus sur ce sujet. Celui-ci se veut pour débutant avec une approche simple, mais sur un grand nombre de sujets.

Les deux premiers chapitres sont consacrés à une introduction à CUDA dans le monde scientifique : pourquoi CUDA, pourquoi cette technologie peut être utile et que propose nVidia en terme matériel. Naturellement, nVidia propose maintenant plus que ce qui est indiqué dans le livre.

On trouve ensuite du véritable code CUDA. Les auteurs ajoutent des briques supplémentaires à chaque chapitre : d'abord la syntaxe spécifique, le parallélisme et le concept de threads, les blocs et la coopération de blocs, la mémoire constante et les flux, et pour finir la mémoire de texture.

La dernière étape est l'optimisation du code. On commence par l'interaction OpenGL (l'équivalent DirectX est mentionnée mais est laissé à titre d'exercice), les opération atomiques, les flux et enfin le multi-GPU. Certaines de ces optimisations ne sont accessibles que sur les nouveaux GPU, et ce n'est pas mentionné explicitement. Mais le code de test est fourni.

Le dernier chapitre aborde les supports utiles pour le développement : les outils, la documentation...

En réalité, il y a beaucoup de détails manquants. Le plus important à mon sens est l'optimisation des accès mémoire. Les accès dit coalescés ne sont pas mentionnés, et ils sont extrêmement importants, même si nVidia a fait des progrès dans les dernières version pour cacher ce point. Cela reste un des meilleurs moyens d'optimiser son code. Aussi les débogueurs sont mentionnés, mais il n'y a pas de tutoriel d'utilisation. Il faut donc compléter les trous par un apprentissage complémentaire.

En conclusion, CUDA By Example est un bon ouvrage d'introduction, avec des défauts. Les auteurs ont voulu ne pas plonger dans les détails architecturaux, mais il vous faudra les apprendre par vos propres lectures, soit dans un autre ouvrage, soit sur le net. Au moins, vous aurez fait un tour d'horizon assez complet.

 

  

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