• [^] # Re: Concentration?

    Posté par . En réponse au journal Le Power8 d'IBM pourra t-il s'imposer dans le monde des entreprises ?. Évalué à 7.

    Excuse-moi pour l'agressivité, mais purée t'as pas peur de la contradiction !

    J'affirme, en fournissant des références (benchs de Nvidia à l'appui), qu'en pratique les GPU sont 3-8x plus rapides que les CPUs (et non pas 100x).

    Tu rétorques qu'en théorie (peak flops), les GPUs sont plus puissants. Je réponds, là encore références à l'appui, que le rapport peak flops théorique GPU/CPU atteint 10x au max (7.5x dans mon exemple).
    Et tu reviens en disant que y'a plus de contraintes pour programmer du SIMD large que des GPU, donc qu'en pratique les GPUs sont plus avantageux.

    Au final, t'as pas fourni une seule référence pour justifier le fait que les GPUs seraient 100x plus puissants que les CPUs. J'entends ça souvent, et c'est juste complètement faux. Le rapport c'est 10 (au mieux), pas 100, faut arrêter de se laisser avoir par le marketing de nvidia comme une grand-mère devant les pubs de TF1.

    En plus, tu affirmes des choses qui sont factuellement fausses.

    avant tu avais une seul multiplication même en SSE.

    L'intructions MULPS (multiplication de 4 flottants en une seule instruction) est incluse dans le jeu d'instruction SSE qui date du... Pentium III.

    le SIMD 512 bits, efficace c'est récent

    Il n'y a pas de SIMD 512 bits dans les CPUs (à moins de considérer le Xeon Phi comme un CPU).

    16 opérations par cycle, c'est multiply-add (2 opérations) sur 8 flottants (256bits, 8x32bits), instruction VFMADD123PS des processeurs Intel Haswell.

    Il y a tout de même plus de contraintes d'utiliser du SIMD large par rapport à des GPU (un comble)

    Encore une affirmation en l'air, et franchement discutable. Déjà, en pratique, on arrive très bien à utiliser le SIMD 256bits (benchs qui montrent un rapport 3-8x entre les CPUs et les GPUs).
    Ensuite, sur un CPU y'a une gestion de la cohérence des caches et des prefetcher hardware ce qui facilite grandement la programmation par rapport à un GPU où il faut gérer ces choses là à la main.
    D'autre part, les GPUs schedulent leurs threads par wraps de 32 threads, qui doivent executer la même instruction pendant un cycle (ce qui revient un peu à du SIMD, Single Intruction Multiple Data). Je me repète mais à un instant donné, on a des groupes de 32 cœurs qui exécutent la même intruction sur un GPU.
    Bref, pas vraiment plus de contraintes que du SIMD...