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

OpenGL Discussion :

opengl GPU ou CPU


Sujet :

OpenGL

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 115
    Points : 47
    Points
    47
    Par défaut opengl GPU ou CPU
    Bonjour à tous,

    Lorsqu'on exécute un programme opengl, est ce que toutes les opérations du pipeline graphique 3D s'exécute sur le CPU ou bien il y a des opération tel que le "Display (rendering)" qui s'exécute sur le GPU

    Merci d'avance

  2. #2
    screetch
    Invité(e)
    Par défaut
    la plupart devrait être sur le GPU, a condition d'avoir le driver adéquat.

  3. #3
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Points : 174
    Points
    174
    Par défaut
    Bonjour,
    J'ai pas de carte graphique sur mon Pc et je peux exécuter des programmes openGl

  4. #4
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Points : 486
    Points
    486
    Par défaut
    Bonjour,

    principalement le GPU, les cartes graphiques offrant des implémentations hardware d'OpenGL et Direct3D.

    sous windows, s'il n'y a pas de carte graphique ou si les drivers manquent, c'est le driver OpenGL 1.1 de microsoft qui est utilisé, et qui travaille uniquement avec le CPU.

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    désolé les amis mais je crois que je commence à confondre certain notion

    C'est quoi la différence entre une programation CPU et une programmation GPU ?
    Pourquoi utilisé GLSL si opengl s'exécute sur le GPU ?
    est ce que quelqu'un peut me citer les opérations du pipeline graphique qui s'exécute sur le CPU et ceux qui s'exécute sur le gpu ?

    Merci encore

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 576
    Points : 1 528
    Points
    1 528
    Par défaut
    @3aychoucha
    Si tu n'avait pas de carte graphique, tu ne pourrais pas lire ce message. Tu n'a peut être pas un "grosse" carte, mais tu a forcement une carte graphique .
    Aujourd'hui, même les carte intel bas de gamme savent faire de l'openGL sans problème.
    La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. - Antoine de Saint-Exupéry

  7. #7
    screetch
    Invité(e)
    Par défaut
    Citation Envoyé par fleurdelys77 Voir le message
    désolé les amis mais je crois que je commence à confondre certain notion

    C'est quoi la différence entre une programation CPU et une programmation GPU ?
    Pourquoi utilisé GLSL si opengl s'exécute sur le GPU ?
    est ce que quelqu'un peut me citer les opérations du pipeline graphique qui s'exécute sur le CPU et ceux qui s'exécute sur le gpu ?

    Merci encore
    si tu as une carte graphique, presque toute les opérations sont effectuées sur le GPU, la seule chose qui s'execute sur le CPU c'est la sauce interne du driver:

    * copier les données de la mémoire RAM vers la mémoire graphique
    * ordonnancer les tâches a effectuer
    * compiler les shaders (GLSL vers langage machine)
    * transformer les données ou bufferiser les données


    toutes les opérations graphiques sont faites sur le GPU:
    * transformation des vertex
    * tesselation/generation de geometrie
    * fog
    * illumination
    etc etc

  8. #8
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Points : 486
    Points
    486
    Par défaut
    Re,

    C'est quoi la différence entre une programation CPU et une programmation GPU ?
    Ben...la différence est que le code CPU s'exécute sur le CPU et le GPU sur...le GPU!
    Bon, un exemple: disons que tu veuilles charger une texture:
    - tu vas lire une image sur le disque, ou depuis les resources de ton projet, la décoder et la stocker temporairement dans un buffer: tout ca se passe sur le GPU
    - Puis tu appeles glTexImage2D(...) pour créer ta texture OpenGL: à ce moment là ton buffer de données est transmis du CPU au GPU et ta texture est présente sur le GPU
    - Si plus tard tu veux, pour une raison ou une autre, acceder aux texelsde ta texture, tu peux faire un glGetTeximage, qui copiera les du GPU vers le CPU

    Pourquoi utilisé GLSL si opengl s'exécute sur le GPU ?
    Euh...je crois que tu n'as pas compris ce que sont les shaders:

    - La carte graphique implémente un "pipeline graphique", je ne vais pas tout détailler mais en gros il y a traitement des vertices, rasterization, traitement des pixels, etc etc jusqu'à ce que ton image apparaisse à l'écran.
    - Les shaders permettent de remplacer des étapes de traitement des vertices, et celle de traitement des pixels, par ton propre code, écrit en GLSL.
    avant celà on parlait de pipeline fixe et le programmeur n'était pas aussi libre. Depuis il y a aussi les géometry shaders et cie, mais c plus avancé.

  9. #9
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Points : 486
    Points
    486
    Par défaut
    Si tu n'avait pas de carte graphique, tu ne pourrais pas lire ce message. Tu n'a peut être pas un "grosse" carte, mais tu a forcement une carte graphique .
    Hum...désolé mais non, pas d'accord. Comme dit, en l'absence de carte graphique c'est le driver software qui prend le relai (sous windows en tout cas). C lent, c moche, limité à OpenGL 1.1, mais ca tourne à 100% sur le CPU.

  10. #10
    screetch
    Invité(e)
    Par défaut
    Sur les PC modernes il y a toujours un "chipset graphique", celui-ci a plusieurs fonctionnalités: accélération 2D, 3D, affichage.
    Des fois c'est une carte dédiée, des fois c'est une petite puce directement sur la carte mère, dés fois c'est integré au CPU.

    Ensuite, il y a un driver qui permet d'utiliser les fonctionnalités. La seule fonctionnalité requise explicitement, c'est l'affichage; si il y a rien qui envoie un signal vers le moniteur, pas d'affichage.....

    Certaines cartes ou puces n'ont que l'affichage; pas d'accélération 2D ou 3D, dans ce cas toute la 2D ou la 3D est faite sur le CPU.
    Des fois il y a de la 2D mais pas de 3D; c'est par exemple, une copie très rapide d'un bloc vers un autre (blit), scroll vertical/horizontal très rapide, dessin de formes géometriques (ronds, biseaux, etc etc) ou scaling de rectangles. La 3D est faite sur le CPU.

    La plupart des cartes actuelles sont 2D et 3D, si tu as le driver approprié alors le GPU se chargera de faire la 3D.
    Seuls quelques PC très spécifiques n'ont qu'une carte 2D.
    D'ailleurs, mêmes les telephones portables et les consoles de jeux suivent ce système.

  11. #11
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    Merci à vos tous les amis

  12. #12
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par screetch Voir le message
    Sur les PC modernes il y a toujours un "chipset graphique", celui-ci a plusieurs fonctionnalités: accélération 2D, 3D, affichage.
    Des fois c'est une carte dédiée, des fois c'est une petite puce directement sur la carte mère, dés fois c'est integré au CPU.

    Ensuite, il y a un driver qui permet d'utiliser les fonctionnalités. La seule fonctionnalité requise explicitement, c'est l'affichage; si il y a rien qui envoie un signal vers le moniteur, pas d'affichage.....

    Certaines cartes ou puces n'ont que l'affichage; pas d'accélération 2D ou 3D, dans ce cas toute la 2D ou la 3D est faite sur le CPU.
    Des fois il y a de la 2D mais pas de 3D; c'est par exemple, une copie très rapide d'un bloc vers un autre (blit), scroll vertical/horizontal très rapide, dessin de formes géometriques (ronds, biseaux, etc etc) ou scaling de rectangles. La 3D est faite sur le CPU.

    La plupart des cartes actuelles sont 2D et 3D, si tu as le driver approprié alors le GPU se chargera de faire la 3D.
    Seuls quelques PC très spécifiques n'ont qu'une carte 2D.
    D'ailleurs, mêmes les telephones portables et les consoles de jeux suivent ce système.
    désolé mais je viens de vérifier que mon PC n'a pas de carte graphique ni chipset graphique. alors comment puis je savoir si j'ai une accélération 2D ou 3D
    Merci infiniment

  13. #13
    screetch
    Invité(e)
    Par défaut
    tu as vérifié ca comment? tu peux me montrer?

  14. #14
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par screetch Voir le message
    tu as vérifié ca comment? tu peux me montrer?
    Panneau de configuration - systeme - matériel - gestionnaire des périphériques

  15. #15
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Points : 486
    Points
    486
    Par défaut
    désolé mais je viens de vérifier que mon PC n'a pas de carte graphique ni chipset graphique. alors comment puis je savoir si j'ai une accélération 2D ou 3D
    Merci infiniment
    Dans ton cas fleurdelys77, tu n'as aucune accélération, autant 2D que 3D, mais tu peux quand même éxécuter des programmes OpenGL car tout passe par le CPU.

  16. #16
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Points : 174
    Points
    174
    Par défaut
    Donc pas forcément que ça passe par le GPU,

  17. #17
    screetch
    Invité(e)
    Par défaut
    a partir du moment ou tu as un ecran, tu as une carte graphique dont le rôle (minimum) est de transformer la mémoire graphique en signal electrique pour l'envoyer au moniteur.

    Si ca n'apparaît pas dans le panneau de contrôle, c'est soit que tu n'as pas trouvé la bonne catégorie, soit que Windows l'a mise dans une autre catégorie car il n'a pas compris ce que c'était (pas les driver).

    mais il y a forcément un chipset pour générer un signal VGA/DVI/HDMI/DisplayPort

    (est-ce que tu conbnais la marque/le fabricant/le modèle de ton PC?)

  18. #18
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par screetch Voir le message
    (est-ce que tu conbnais la marque/le fabricant/le modèle de ton PC?)
    Oui c'est DELL Optiplex 780

  19. #19
    screetch
    Invité(e)
    Par défaut
    il y en a plusieurs versions, certains ont des cartes graphiques dediées NVidia ou ATI
    si il n'y a pas ces cartes, alors il y a une Intel® Graphics Media Accelerator X4500

    si tu veux verifier, tu peux lancer dxdiag.exe (installé avec DirectX, je pense qu'il est de base sur windows 7)
    il y aura des onglets (general, display 1...) et dans les onglets display, il donne le nom de la carte graphique.

    Sous OpenGL, après la création du contexte OpenGL, tu peux utiliser
    glGetString(GL_VENDOR) et glGetString(GL_RENDERER) qui te donneront le nom de la carte graphique si disponible. SI le driver n'est pas installé, ca doit retourner peut-être "Generic OpenGL" ou un truc bizarre.

  20. #20
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par screetch Voir le message
    il y en a plusieurs versions, certains ont des cartes graphiques dediées NVidia ou ATI
    si il n'y a pas ces cartes, alors il y a une Intel® Graphics Media Accelerator X4500

    si tu veux verifier, tu peux lancer dxdiag.exe (installé avec DirectX, je pense qu'il est de base sur windows 7)
    il y aura des onglets (general, display 1...) et dans les onglets display, il donne le nom de la carte graphique.

    Sous OpenGL, après la création du contexte OpenGL, tu peux utiliser
    glGetString(GL_VENDOR) et glGetString(GL_RENDERER) qui te donneront le nom de la carte graphique si disponible. SI le driver n'est pas installé, ca doit retourner peut-être "Generic OpenGL" ou un truc bizarre.
    Merci merci merciiiiiiiii infiniment c'est ati radeon hd 4350 (normalement elle contient une accélération 3D et 2D ? )
    Permettez moi de faire un petit résumé de ce que j'ai compris et veuillez me corrigé en cas d'erreur :
    1. Touts les PC sont dotés d'une carte graphique avec rôle principale est l'affichage.
    2. Certaines cartes ont plus que l'affichage comme fonctionnalité: l'accélération 2D ou 3D.
    3. Donc si un PC n'est pas doté ni d'accélération 2D ni 3D alors l’exécution du pipeline graphique c'est sur CPU
    4. Si il est doté d'une accélération 2D et pas de 3D alors La 2D s’exécute sur la carte et la 3D sur CPU
    5. et enfin s'il est doté d'une accélération 2D et 3D alors le pipeline graphique s'exécute sur le GPU

    Merci encore

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

Discussions similaires

  1. Les tampons GPU-CPU persistants en OpenGL
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 02/06/2015, 21h44
  2. Question sur l'utilsation cpu avec jogl/opengl
    Par Elendhil dans le forum Moteurs 3D
    Réponses: 6
    Dernier message: 21/10/2009, 13h47
  3. Choix de l'execution du code OpenGL : GPU ou CPU ?
    Par Invité dans le forum OpenGL
    Réponses: 2
    Dernier message: 29/11/2006, 16h56
  4. [FAQ] [3D] Comment exploiter le parallelisme entre CPU et GPU ?
    Par Laurent Gomila dans le forum Contribuez
    Réponses: 3
    Dernier message: 19/05/2006, 21h58
  5. Charge CPU avec prog opengl + win32
    Par TibobiT dans le forum MFC
    Réponses: 2
    Dernier message: 12/05/2004, 19h26

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