• # Un peu précipité, non ?

    Posté par . En réponse à la dépêche Processeur graphique : NVIDIA est mal parti pour les années à venir. Évalué à 10.

    Ça fait plusieurs années que Tim Sweeny dit que le GPU est mort, et à SIGGRAPH cette année (où j'étais), ça n'a pas semblé être très relayé. Au contraire, le nombre de papiers s'appuyant sur le GPGPU semblait encore avoir augmenté (si c'est possible).

    Après, qu'utiliser de manière efficace le GPU soit non trivial, certes (et je peux en parler, je l'utilise, et je trouve ça non trivial). Mais utiliser le SSE (et plus généralement les instructions vectorielles) de manière efficace peut être tout aussi casse-tête, et demande des adaptations majeures des algorithmes (au moins pour ceux que je connais, liés à la synthèse d'images). Utiliser les SPUs (vectoriels et avec gestion de la mémoire code/données explicite) de la PS3 au maximum de leurs perfs est tout aussi difficile (aussi testé). Et rien qu'utiliser un CPU efficacement (donc s'arranger pour ne pas exploser le cache, minimiser le nombre de défauts de pages, etc) demande là aussi des adaptations non négligeables sur les algos, et pas mal de réflexion (au moins pour moi). Bref, toute utilisation orientée performances nécessite une bonne connaissance du matériel et une adaptation des algos plus ou moins importante, il n'y a rien de nouveau ni de spécifique aux GPUs là dedans. Concernant la flexibilité des GPU et leur bonne capacité à traiter des problèmes liés au calcul scientifique, il suffit d'aller sur la CUDA zone [1] pour voir que ce n'est pas que de la 3D temps réel, loin de là.

    Donc au final, il y a toujours les mêmes problèmes qu'avant : quelle est la techno la plus adaptée à mon problème ? Sans essayer ou sans forte expérience sur chacune des technos disponibles, il me semble très difficile de le dire... Mais jeter à la poubelle une techno parce qu'on ne peut pas en tirer le maximum en codant avec ses pieds, je trouve ça un peu hâtif. De plus, la somme de travaux faits sur la programmation générique des GPUs est quand même bien moindre que celle faite sur l'utilisation des CPUs. Ça ne fait que quelques années que ca existe, et je trouve que les résultats sont plus que prometteurs quand on sait depuis combien de temps on utilise les CPUs actuels et qu'on compare les résultats pour des problèmes où les GPUs sont adaptés. Et les outils commencent à arriver eux aussi (debugger notamment, cf [2]). Donc voyons ce que ça va donner, je doute qu'on ait assez de recul actuellement pour juger.

    [1] http://www.nvidia.com/object/cuda_home.html# (je sais, c'est du flash....)
    [2] http://developer.nvidia.com/object/nexus.html (je sais, c'est que pour windows, je suis le premier que ca embête croyez le bien, mais bon, les outils arrivent !)