CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Avis OpenCl

vive_cod4
vive_cod4
Niveau 9
06 mars 2016 à 14:05:20

Bonjour tout le monde,

J'ai toujours été habitué à utiliser CUDA pour des travaux soit sur des machines qui avaient quelques grosses cartes graphiques, soit sur un superordinateur à plusieurs millions.

Ayant un ordinateur avec une carte AMD, CUDA n'est malheureusement pas possible. Du coup, j'ai été voir l'équivalent et j'ai découvert OpenCl, qui est l'alternative open source. On peut comparé ça à Direct X - OpenGl.

En terme de performances, ça a l'air assez similaire, bien que CUDA ait plus souvent des MAJs et de nouvelles fonctionnalités. Avez-vous déjà eu des expériences avec ?

Sur ma machine, j'ai une AMD Radeon R9 M370X, et j'aurais voulu savoir si les performances que je pouvais gagner en utiliser le GPU pour certaines tâches pouvaient être grande ? Prenons un cas simple, si je multiplie 2 matrices de 4096x4096, à quel speedup puis espérer sur ma machine (partons sur une baseline à code séquentiel puis un deuxième avec 8 coeurs)? Est-ce que ça vaut vraiment la peine ? J'arrive pas tellement à m'en rendre compte avec des laptops.

De plus, ma carte graphique supporte OpenCl 1.2, alors que la dernière version est 2.1. Est-ce que ça a une grande différence en term "software" ? Par exemple, entre CUDA 4 et CUDA 5, il y avait peu de différences. De mémoire il s'agissait plutôt de hardware. Si je me souviens bien, il y avait le read only data cache qui est apparu en CUDA 5. Ou alors, OpenCl 1.2 - 2.1 et un peu l'équivalent à CUDA 2.0 - 4.0 ?

Merci de votre partage d'expérience et de vos avis !

godrik
godrik
Niveau 30
07 mars 2016 à 00:04:50

En moyenne opencl, c'est cuda N-3. Et il y a beaucoup de difference d'une version de cuda a une autre.
de memoire les cuda recent on des operations de shift d'un thread a l'autre (dans le meme block) qui est assez recent et critique pour plein d'algo (sequence alignment). Opencl 1.2, a m'a l'air vieux, mais je n'ai jamais ecrit d'opencl perso.

En terme de perf, c'est impossible de repondre a la question sans savoir precisement de quel materiel tu parles. Par exemple, il faut un support avx2 pour avoir un FMA en un cycle, donc c'est probablement arrive avec Haswell. Haswell a aussi introduit le deuxieme port d'io dans le coeur qui double les perfs memoire en cache compare a sandy bridge. Donc les perf que tu as en changeant simplement d'architecture est monstrueuse. Donc c'est difficile a dire.

La regle est que sur une machine balance, le gpu est en gros 8 fois plus rapide que le cpu en pic reel. Apres, si tu as ecris du code pour les supercalculateur, tu devrais arriver a bencher ta machine assez facilement :)

En passant, tu fais quoi dans la vie ?

vive_cod4
vive_cod4
Niveau 9
07 mars 2016 à 20:29:09

Salut,

Merci de ta réponse !

Enfaite, j'avais un peu de temps libre et je me suis dit que ça pouvait être utile de programmer certaines petites choses en GPU si j'en ai besoin, juste au cas où et j'aurais juste voulu savoir si sur mon macbook pro retina ça valait la peine de se plonger dans OpenCl 1.2 (malheureusement Apple n'a pas de hardware qui gère des versions plus récentes). J'ai effectué mon travail de bachelor avec CUDA et d'autres projets, du coup j'ai une bonne expérience avec CUDA (CUDA 5.0 si je ne me trompe pas, avant l'architecture Maxwell), sans pour être autant un professionnel dans le domaine. Mais si ma machine ne me donne pas un grand speadup que du code CPU multithread, je me donne pas plus de mal pour OpenCl et le jour où j'aurais besoin d'utiliser du GPU pour des projets, j'aurais une infrastructure adaptée pour faire du CUDA avec de vraies cartes.

Je pense que je vais essayer une fois d'écrire un code avec OpenCl qui fait une multiplication de matrice et comparer les perfs avec mon CPU et mon GPU, histoire de voir si ça vaut la peine de continuer.

Alors je suis actuellement au milieu de mon master :)

godrik
godrik
Niveau 30
07 mars 2016 à 21:54:58

Les machine d'apple sont connu pour avoir des GPUs a la con. Donc c'est difficile a dire. En plus des que tu sa un GPU dans un laptop, tu ne trouve pas les vrai info dessus. Parecque souvent ils mettent plus de ressource dans le cote graphique que dans le cote GPGPU de la carte.

Pour le bench, c'est certainement deja ecrit ces trucs la. Regarde du cote de plasma (ecrit par le groupe de dongarra) et du cote de autogemm (amd). Sinon, seulment des clown comparent les performance d'un GPU a du code single thread. S'il te plait, ne fait pas ton clown :)

En passant, PUB! Tu sais que je recrutes des thesards en ce moment ?

vive_cod4
vive_cod4
Niveau 9
08 mars 2016 à 19:39:50

Tiens je ne savais pas qu'au niveau des portables, on misait plus du côté graphique.

Pour le bench, j'entendais implicitement de faire un benchmark entre GPU et CPU multithread (soit à la main, mais j'aurais bien voulu voir si OpenCl faisait ça aussi efficacement, puisque d'après ce que j'ai compris, c'est un framework hétérogène), à voir). En relisant mon poste, c'est ce que j'avais dit non ?

Merci pour le nom des groupes. J'avais recherché vite fait, mais je n'avais rien de trouver qui fait ce que je voulais tout seul sans avoir à le remanier. Je pense que je vais trouver mon bonheur du coup.

Intéressant, je ne savais pas. Je vais t'écrire en MP prochainement alors. Tu entends PhD ?

Message édité le 08 mars 2016 à 19:41:35 par vive_cod4
godrik
godrik
Niveau 30
08 mars 2016 à 21:13:23

Tiens je ne savais pas qu'au niveau des portables, on misait plus du côté graphique.

Ouais en general, les GPU des laptop sont un peu rachetique. Il y a typiquement beaucoup moins de CUDA core que sur une carte normal et une bande passante GDDR<->cudacores qui est beaucoup plus faible aussi.

En relisant mon poste, c'est ce que j'avais dit non ?

Dans ton premier message non :)

J'avais recherché vite fait, mais je n'avais rien de trouver qui fait ce que je voulais tout seul sans avoir à le remanier.

C'est etonnant parceque gemm, c'est vraiment le blcok de base du top-500.

Tu entends PhD ?

Yep

vive_cod4
vive_cod4
Niveau 9
10 mars 2016 à 20:12:19

Merci de tes remarques.

Pour le coup du singlethread, c'était pour comparer avec mon multithread voir si j'obtiens bel et bien le gain espéré (et voir si j'ai pas fait une erreur d'implémentation parallèle).

En passant, je t'ai écrit un MP :)

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment