IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Coprocesseurs et calcul hétérogène Discussion :

Limite d'un GPU


Sujet :

Coprocesseurs et calcul hétérogène

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 147
    Points : 66
    Points
    66
    Par défaut Limite d'un GPU
    Bonjour à tous,

    J'aimerais réaliser une application effectuant des calculs ( recherche opérationnelle) sur un GPU (nvidia 8800) .
    Avant de me lancer dans un dév laborieux, j'aimerais connaître les limites liées au traitement GPU dans ce cas de figure ( dsl si je suis un peu vague sur la finalité de mes dév. ).

    Par limite, j'entends limite en terme de fonctionnalités ( traitement impossible à effectuer, traitement inadapté en terme de temps d'exec ... ) , de ressources etc ...

    Je m'en réfère donc à votre expérience personnelle, votre vécu, afin de résoudre cette problématique.
    Cela pourra me permettre de compléter les avis, opinions d'experts, passionnés avec une recherche sur le net("Google is your friend").

    Thanks

  2. #2
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Je n'ai pas trop d'avis la dessus... manque d'expérience ... mais tu veux utiliser les librairies graphiques ( OpenGL et D3D ) ou faire directement du très bas niveau ?
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  3. #3
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Pareil je suis pas expert, mais tu peux regarder du côté de CUDA.
    Bibliothèque de NVidia qui est dédié principalement aux calculs sur GPU.

  4. #4
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    un GPU c'est massivement parallèle, la première limite qui se présente à mes yeux c'est donc de "simplifier" le traitement à quelque chose de massivement parallélisable pour obtenir un gain dans l'utilisation du GPU

    tu envisages l'utilisation de CUDA avec ta 8800 ?
    ou tu pars sur du GLSL ? du HLSL ?
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  5. #5
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Même s'il y a eu pas mal de progrès sur ce sujet, les GPUs, même récents, ont beaucoup de mal avec les boucles et les branchements conditionnels...

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Je pense que le seul moyen de savoir exactement ce que tu pourras faire est d'étudier la documentation de CUDA. Sinon ça va rester très vague.

  7. #7
    Membre averti
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    Août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 408
    Points : 392
    Points
    392
    Par défaut
    Il y a aussi le projet GPGPU qui va dans le même sens que CUDA, ainsi que la lib Sh qui me semblait offrir qqs possibilités dans ce domaine.

    Sinon, du côté livre, les ShaderX (à partir du 5, je crois) et GPU Gems (2 et 3) contiennent des chapîtres en traitant.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 147
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par shenron666 Voir le message
    un GPU c'est massivement parallèle, la première limite qui se présente à mes yeux c'est donc de "simplifier" le traitement à quelque chose de massivement parallélisable pour obtenir un gain dans l'utilisation du GPU

    tu envisages l'utilisation de CUDA avec ta 8800 ?
    ou tu pars sur du GLSL ? du HLSL ?
    Je souhaite à priori utiliser CUDA et faire un maximum de traitement en parallèle.
    Je ne connais ni GLSL ni HLSL car je n'ai pas encore faire de dév en OpenGl, CUDA etc ...

    J'en suis au stade expérimental et essaie de savoir si mon appli en RO (recherche opér.) serait programmable ou en partie programmable sur un GPU.

    Je vous remercie pour ces info.

  9. #9
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 360
    Points : 20 378
    Points
    20 378
    Par défaut
    Citation Envoyé par GLSpirit Voir le message
    J'en suis au stade expérimental et essaie de savoir si mon appli en RO (recherche opér.) serait programmable ou en partie programmable sur un GPU.

    Je vous remercie pour ces info.
    A quoi va te servir la programmation GPU ?
    La programmation GPU c'est bon pour faire du rendu graphique temps réel des objets 3d des bitmaps...
    ce qui n'est pas le cas de la recherche opérationnelle il me semble..
    Si ce que tu veux afficher à l'écran nécessite beaucoup de calculs je ne pense pas que la programmation GPU sera vraiment utile...
    Parce qu'un CPU central est bien plus sophistiqué qu'un GPU.

  10. #10
    screetch
    Invité(e)
    Par défaut
    le GPU est costaud pour faire beaucoup d'operations vectorielles en parallele. ca peut etre interessant, surtout que pendant ce templs le CPU est libre pour autre chose.

  11. #11
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    A quoi va te servir la programmation GPU ?
    La programmation GPU c'est bon pour faire du rendu graphique temps réel des objets 3d des bitmaps...
    ce qui n'est pas le cas de la recherche opérationnelle il me semble..
    les GPU ont beacoup évolué depuis les première geforce
    aujourd'hui avec un GPU, on peux faire de l'IA, du calcul de prévisions météo, de la physique, des calculs de fluides, ect

    Citation Envoyé par Mat.M Voir le message
    Si ce que tu veux afficher à l'écran nécessite beaucoup de calculs je ne pense pas que la programmation GPU sera vraiment utile...
    Parce qu'un CPU central est bien plus sophistiqué qu'un GPU.
    et un GPU bien plus spécialisé qu'un CPU
    si tu as énormément de calculs à faire, que ceux-ci sont répétitifs, et compatibles avec un système scalaire, le GPU peut être 10x plus rapide que qu'un CPU
    avec CUDA par exemple, nVidia a réécrit son compresseur de textures
    ça n'affiche rien à l'écran, ça fait juste les calculs de compression, et c'est 10x plus rapide que le programme qui utilise le cpu

    avec leur puissance grandissante, dans un futur proche les GPU vont intégrer les supercalculateurs pour les aider dans les calculs scientifiques complexes
    pour exemple, un PC équipé de 8 GPUs équivalent à un supercalculateur de 2005 avec 512 CPUs :
    http://www.tgdaily.com/content/view/37715/113/
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  12. #12
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 360
    Points : 20 378
    Points
    20 378
    Par défaut
    Citation Envoyé par shenron666 Voir le message
    les GPU ont beacoup évolué depuis les première geforce
    aujourd'hui avec un GPU, on peux faire de l'IA, du calcul de prévisions météo, de la physique, des calculs de fluides, ect


    et un GPU bien plus spécialisé qu'un CPU
    si tu as énormément de calculs à faire, que ceux-ci sont répétitifs, et compatibles avec un système scalaire, le GPU peut être 10x plus rapide que qu'un CPU
    D'accord mais l'auteur de ce post, GLSpirit qu'est ce qu'il a à afficher de précisément ?

    Il me semble que la recherche opérationnelle d'après le peu que je connaisse et mes vagues souvenirs de cours de BTS Info que j'ai eus c'est essentiellement à base d'algorithmes et d'arbres binaires gener Djikstra..
    Est-ce que le langage des GPU par exemple HLSL est-il assez performant et l'architecture de ce genre de technologie assez évoluée pour ce genre d'opération ?
    J'ai sous les yeux le SDK de Direct X et la référence de HLSL cela me semble relativement limité ,reste à voir ce que veut faire GLSpirit précisément..

  13. #13
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    D'accord mais l'auteur de ce post, GLSpirit qu'est ce qu'il a à afficher de précisément ?
    La programmation générique sur GPU (GPGPU) n'a rien de graphique à part l'utilisation d'un processeur autrement vendu comme processeur graphique pour ses calculs.

    La dernière génération de processeurs professionels Tesla de Nvidia (qui embarque des G80 en interne tout comme sur la geforce 8800) est vendu sans sortie vidéo (pas de connecteur VGA ou DVI). Parce que son but n'est pas d'afficher des choses mais de faire des calculs complexes.

    Citation Envoyé par Mat.M Voir le message
    Il me semble que la recherche opérationnelle d'après le peu que je connaisse et mes vagues souvenirs de cours de BTS Info que j'ai eus c'est essentiellement à base d'algorithmes et d'arbres binaires gener Djikstra..
    Est-ce que le langage des GPU par exemple HLSL est-il assez performant et l'architecture de ce genre de technologie assez évoluée pour ce genre d'opération ?
    J'ai sous les yeux le SDK de Direct X et la référence de HLSL cela me semble relativement limité ,reste à voir ce que veut faire GLSpirit précisément..
    On ne parle pas de HLSL déjà mais de Cuda, un langage proche du C avec des extensions orientées calcul parallèle qui est compilé pour tourner sur le processeur d'une carte graphique.

    Cuda est suffisamment évolué pour accélérer les calculs sur des matrices de taille imposante, être utilisé pour évaluer les risques dans la finance (et par ici), accélérer la simulation des fluides, améliorer la qualité et la vitesse de la reconstruction tomographique (à partir de projections) (également par ici), la prospection (pétrolière, minière et évaluation de sites pour enfouissement de déchets), le repliement de protéines etc.

    Bref plus les gens veulent faire de calculs compliqués plus ils ont intérêt à regarder dans les algorithmes parallèles. Et c'est une tendance forte, l'accroissement de la puissance de calcul disponible va entrainer la création de nouveaux besoins en calcul etc..

    Tous les algorithmes ne sont pas accélérables par des unités de calcul parallèle, notamment ceux qui ont une forte composante séquentielle (loi d'amdahl) mais :
    un calcul dont l'implémentation séquentielle met un temps non négligeable à s'éxecuter mais qui a une alternative parallèlisable, meme si elle parait moins efficace sur le papier (en terme de nombre total d'opérations à réaliser), peut y gagner. Auparavant la tendance pour paralléliser était la création de clusters (ordinateurs identiques reliés en réseau), dans le présent et le proche avenir il y a une tendance à accroître également le nombre d'unités de calcul sur le meme support ("processor dice") ce qui en diminue les coûts.

    Boule de cristal : le nombre de cores et leur flexibilité va continuer à augmenter sur les GPUs, le nombre de core va augmenter sur les CPUs (de 2 à 4 actuellement à bientot 16 peut-etre 64 cores) et leur flexibilité ~ ?.

    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  14. #14
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    Addition : Un article très complet sur le sujet (AcmQueue, le journal de l'ACM) :

    http://www.acmqueue.org/modules.php?...pid=532&page=1

    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  15. #15
    Membre du Club Avatar de davidly
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 47
    Points : 54
    Points
    54
    Par défaut
    Merci beaucoup pour le lien, de plus je ne connnaissais pas ce site.

  16. #16
    screetch
    Invité(e)
    Par défaut
    Citation Envoyé par shenron666 Voir le message
    avec CUDA par exemple, nVidia a réécrit son compresseur de textures
    ça n'affiche rien à l'écran, ça fait juste les calculs de compression, et c'est 10x plus rapide que le programme qui utilise le cpu
    nous avons explosé la vitesse de compression DXTC sur un CPU (simple core) en C++. la qualité etait aussi plus elevée. c'est un comparatif proche du debat Java-C++, c'est a dire assez biaisé pour faire gagner celui qu'on aime le plus

  17. #17
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Tout dépend du problème, et comment on l'aborde, mais on peut dire une chose, si on combine GPU + CPU, logiquement on devrait aller plus vite qu'avec 1 des 2 supports, ensuite c'est à GLSpirit de tester son algorithme et de le découper comme il le faut pour les 2 systèmes, en utilisant CUDA pour le GPU.

    Chaque problème est différent, et dire que tel algorithme est plus rapide sous un CPU ou un GPU dépend largement des personnes qui implémentent (du type de problème aussi) ainsi que du matériel utilisé, tout doit rester comparable, des tests sur une 8800GT n'ont rien de comparable à ceux d'une 6800GT, idem pour un système mono-core ou octo-core.

    Dur de répondre pour toi GLSpirit, il va falloir un moment "mettre les mains dans le cambouis" et tester par toi même !

  18. #18
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par screetch Voir le message
    nous avons explosé la vitesse de compression DXTC sur un CPU (simple core) en C++. la qualité etait aussi plus elevée. c'est un comparatif proche du debat Java-C++, c'est a dire assez biaisé pour faire gagner celui qu'on aime le plus
    Hey screech, si tu as une implémentation plus rapide n'hésite pas à la soumettre dans cette discussion là bas :
    http://developer.nvidia.com/forums/i...wtopic=13&st=0
    l'outil de compression de texture tourne aussi sur CPU (et a été pas mal optimisé depuis son introduction) et son amélioration peut bénéficier à tout le monde.

    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  19. #19
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 360
    Points : 20 378
    Points
    20 378
    Par défaut
    Citation Envoyé par LeGreg Voir le message
    On ne parle pas de HLSL déjà mais de Cuda, un langage proche du C avec des extensions orientées calcul parallèle qui est compilé pour tourner sur le processeur d'une carte graphique.
    Désolé alors pour la confusion mais tout cela porte à confusion
    et on ne sait toujours pas si cela peut profiter efficacement à la recherche opérationnelle.
    Pour la Finance je veux bien mais pour peu qu'il yait des entrées sorties comme lectures/écritures bases de données...

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 147
    Points : 66
    Points
    66
    Par défaut
    Magnifique !
    Merci pour toutes ces info. et liens que je vais consulter de ce pas !


    Citation Envoyé par Ti-R Voir le message
    Dur de répondre pour toi GLSpirit, il va falloir un moment "mettre les mains dans le cambouis" et tester par toi même !
    Oui malheureusement ... je vais devoir expérimenter un certain nombre de choses avant de me lancer dans le dév de mon appli.
    L' objectif finale étant pour moi de réaliser une thése et si possible une publication ( on peut toujours rêver ) sur l'utilisation spécifique des GPU en IA / recherche op.

    L'application que je voulais réaliser risque de prendre pas mal de temps en terme de dév.
    Pour le moment, je me pose 2 questions :
    1)Faisabilité : Es-ce que mon appli peut utiliser la puissance d'un GPU
    2)Performance : Si oui, le gain en terme de performance sera-t-il intéressant

    Pour le moment, je n'ai trouvé aucune publications, rapports sur ce que je désire réaliser (ce qui peut-être bon signe comme mauvais signe ...) .

    Malheureusement, je n'ai pas beaucoup de temps de libre pour le moment car je bosse pour une grosse boîte informatique (Accenture)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Limitation DirectSound
    Par Sub0 dans le forum DirectX
    Réponses: 1
    Dernier message: 28/02/2003, 11h21
  2. [Turbo Pascal] Limite de la mémoire virtuelle
    Par moon tiger dans le forum Turbo Pascal
    Réponses: 12
    Dernier message: 08/02/2003, 22h30
  3. Limiter le déplacement de la souris
    Par el_bouleto dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/11/2002, 23h56
  4. Comment limiter les mouvements du curseur??
    Par scorpiwolf dans le forum C++Builder
    Réponses: 9
    Dernier message: 07/07/2002, 22h09
  5. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo