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

Moteurs 3D Discussion :

CPU et GPU comment ça marche ?


Sujet :

Moteurs 3D

  1. #1
    Membre actif
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Points : 202
    Points
    202
    Par défaut CPU et GPU comment ça marche ?
    Bonjour,

    Je n'ai pas trouvé de place plus appropriée, j'espère ne pas être totalement hors sujet ...

    Je me suis remémoré une question existentielle de mes années 3dfx, que je n'ai jamais assouvie, en lisant un article sur les GPU ...

    Comment est fait, physiquement, le choix entre le CPU et le GPU pour les traitement 3D (et aujourd'hui pour des traitements autres aussi ) ? Est-ce le CPU qui forward des infos au GPU, y a t'il un intermediaire qui fait le lien, ou bien le GPU est actif ?

    Si vous avez des références ça m'intéresse par pur culture générale

  2. #2
    Membre actif
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Points : 202
    Points
    202
    Par défaut
    A priori c'est pas si évident.

    La réponse la plus direct que j'ai trouve : C'est l'API 3D (OpenGL ...) qui fait le boulot.

    Avant d'aller plus loin, je vais déjà lire les articles suivant qui n'ont pas l'air mal :

    -http://www.extremetech.com/article2/0,2845,9722,00.asp

    - http://www.tomshardware.com/reviews/...-gpu,1954.html

    A moins que vous ayez de bonnes références, une simplification de fonctionnement des drivers ...

    Merci d'avance

  3. #3
    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 377
    Points
    20 377
    Par défaut
    Citation Envoyé par Clercq Voir le message
    Bonjour,

    Je n'ai pas trouvé de place plus appropriée, j'espère ne pas être totalement hors sujet ...

    Je me suis remémoré une question existentielle de mes années 3dfx, que je n'ai jamais assouvie, en lisant un article sur les GPU ...
    La différence entre les cartes 3dfx et les cartes de maintenant c'est qu'il me semble qu'on ne pouvait pas accéder à une couche plus bas-niveau c.a.d qu'il n'y avait pas encore de langage HLSL.
    Je crois bien qu'il fallait programmer directement en assembleur x86 avec des IN et OUT

    Comment est fait, physiquement, le choix entre le CPU et le GPU pour les traitement 3D (et aujourd'hui pour des traitements autres aussi ) ? Est-ce le CPU qui forward des infos au GPU, y a t'il un intermediaire qui fait le lien, ou bien le GPU est actif ?
    Il n'y a pas de choix entre CPU et GPU c'est le CPU qui est le coeur d'un système informatique !
    Quand tu mets ton ordinateur sous tension le CPU traite les instructions du BIOS que tu aies une carte graphique avec chipset d'accélération 3d
    Si tu fais de la bureautique ou autre le GPU ne servira basiquement qu'à afficher des images et pour l'affichage à l'écran c'est tout.
    Si tu veux faire de la 3d tu est obligé de passer par un logiciel , ton aplication logicielle, qui sera compilé en code machine que seul le CPU comprendra.
    Après le CPU fera des entrées/sorties pour envoyer des commandes à la carte graphique et à son processeur graphique.
    Encore une fois c'est le CPU qui gèrent tout dans un système informatique c'est le maitre absolu.

    a t'il un intermediaire qui fait le lien, ou bien le GPU est actif ?
    non il n'ya pas d'intermédiaire encore une fois c'est le CPU le processeur fut-il Intel ou AMD qui est le coeur du système.
    Sais-tu comment c'est fait une carte mère avec de la RAM,une carte graphique +VRAM et GPU , un PIC ?
    Je ne comprends pas ce que tu veux dire par GPU actif..

    peut-être que certains systèmes industriels ( par exemple un simulateur de vol ) voire même les consoles de jeux ont des systèmes particuliers avec un controleur intermédiaire qui gère de concert les chipsets graphiques et le reste de la machine ( CPU, RAM..)

    Nvidia's CUDA: The End of the CPU?
    attention l'auteur écrit n'importe quoi ,le titre est trompeur : cela peut-être valable exclusivement pour une application logicielle qui fait de la 3d temps réel.
    Sinon si je fais de la bureautique et du traitement de texte sur un PC à quoi va me servir un GPU ?

  4. #4
    Membre actif
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Points : 202
    Points
    202
    Par défaut
    Sais-tu comment c'est fait une carte mère avec de la RAM,une carte graphique +VRAM et GPU , un PIC ?
    Ça va oui je connais , pour avoir beaucoup programmé en bas niveau, et être avoir été programmeur.

    Je me demandé si justement c'était aussi "basique" qu'un simple appel du GPU par le CPU.

    En ayant la réponse ça parait logique, mais j'ai pensé qu'il pouvait y avoir un système plus complexe, genre des thread spéciales GPU qui recevrais des signaux par le CPU pour que celui-ci aille chercher des données sur un buffer spécialement dédié a cette communication ... , des trucs un peu sérieux quoi lol .

    [...]ou bien le GPU est actif ?
    Ici je pensais (de façon un peu rapide ...) que le GPU pouvais accéder aux instruction, genre il y aurait des parties lisible par le CPU et d'autre par le GPU. Mais en y réfléchissant c'était ... Stupide...

    Nvidia's CUDA: The End of the CPU?
    Ce qui m'intéressais dans cette article c'est plus les infos qui pourrait répondre a ma question plus que le fond .

    Merci pour ta réponse . L'evocation du langage haut niveau HLSL a ajouter une pierre qui me manquait pour construire le mur de ma connaissance . (J'ai pas encore lu les articles entièrement du coup je ne sais pas si ils en parlent, au cas ou quelqu'un reprocherait que je n'ai pas lu les articles )

  5. #5
    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 377
    Points
    20 377
    Par défaut
    Salut Clercq
    Citation Envoyé par Clercq Voir le message
    En ayant la réponse ça parait logique, mais j'ai pensé qu'il pouvait y avoir un système plus complexe, genre des thread spéciales GPU qui recevrais des signaux par le CPU pour que celui-ci aille chercher des données sur un buffer spécialement dédié a cette communication ... , des trucs un peu sérieux quoi lol .
    Cela c'est une fonctionnalité que va gérer l'API de rendu ( il n'y en a pas des millions c'est soi Direct X ou Open GL maintenant ) ; je sais que Direct X depuis la version 10 permet ce genre de chose de manière optimale donc le mieux c'est de vraiment regarder dans le SDK de Direct X.

    Pour ce qui est du bas-niveau tu n'y touches plus avec Direct X cette couche fait l'interface entre le hardware et la couche logicielle.
    Je pense que les fabricants de carte se conforment en fait aux standards Microsoft pour faire leurs Device Drivers et la programmation de leurs chipsets 3d ( quoique ce que je dis est peut-être erroné avec CUDA notamment parce que c'est ouvert je crois bien ).
    Donc si tu veux faire de la programmation GPU il faut apprendre le HLSL.

  6. #6
    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 Clercq Voir le message
    A priori c'est pas si évident.
    A moins que vous ayez de bonnes références, une simplification de fonctionnement des drivers ...
    Un driver prend la spec de l'API (D3D/OpenGL/GDI/autre), convertit les commandes d'un programme écrite pour cette spec en commandes compréhensibles par le hardware et les envoie au hardware pour exécution. En général on considère le driver comme la partie qui s'exécute sur le CPU, mais évidemment une partie du problème de l'affichage est résolu de l'autre côté de la barrière (le BUS PCI-E étant généralement là où la distinction se fait).

    Pour savoir comment ça fonctionne en interne faudra des questions un peu plus précises que ça.. La description ci-dessus est la plus générale sans devoir trop faire d'exceptions que l'on peut donner pour un driver.

    -> "Est-ce que c'est "aussi basique qu'un simple appel du GPU par le CPU". Ben oui et non. Pour quelqu'un qui a fait du bas niveau, tu peux faire mieux que ça. Memory mapped IO, interruptions, front end, transactions de BUS, direct memory access, décodeurs, schedulers, tout le tralala.

    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

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 124
    Points : 148
    Points
    148
    Par défaut
    cela peut-être valable exclusivement pour une application logicielle qui fait de la 3d temps réel.
    Qu'est ce qu'il faut pas entendre...
    Soit tu n'es pas renseigné soit tu ne sais pas ce qu'est CUDA et le GPGPU.
    Le GPGPU comme son nom l'indique (General-purpose computing on graphics processing units) permet de faire n'importe quel calcul sur le GPU. Il est totalement faux de dire que CUDA est exclusivement pour de le 3d temps réel car CUDA n'est pas concu pour ca. Il y a bien sur quelques fonctions OpenGL et Directx dedans pour permettre de s'interfacer avec mais rien de plus.
    Et je parle en connaissance de cause, mes recherches étant basé sur l'utilisation de CUDA côté serveur, je serais au courrant si CUDA était uniquement pour la 3D.
    De plus, petite anecdote, les cartes CUDA qui font QUE du CUDA soit les Tesla ne sont pas muni d'une sorti graphique.

    Sinon si je fais de la bureautique et du traitement de texte sur un PC à quoi va me servir un GPU ?
    A tout ? Et oui c'est qui qui va dessiner ton interface à l'écran ?

  8. #8
    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 377
    Points
    20 377
    Par défaut
    Citation Envoyé par yamashi Voir le message
    Qu'est ce qu'il faut pas entendre...
    Soit tu n'es pas renseigné soit tu ne sais pas ce qu'est CUDA et le GPGPU.
    tu as mal lu ce que j'ai écris je crois que c'est une mauvaise interprétation
    En aucun cas j'ai écris que CUDA se dédiait à aux rendus 3d temps réel exclusivement ,relire serait approprié
    J'ai écris que l'auteur de l'article avait un slogan erroné ce qui est différent

    Soit tu n'es pas renseigné soit tu ne sais pas ce qu'est CUDA et le GPGPU.
    c'est exact et cela ne m'intéresse pas particulièrement..

    A tout ? Et oui c'est qui qui va dessiner ton interface à l'écran ?
    ? la carte graphique tout simplement.
    Tu n'as pas besoin d'un PC dernière technologie pour faire de la bureautique

Discussions similaires

  1. Réponses: 7
    Dernier message: 10/03/2008, 09h29
  2. [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
  3. [SYNEDIT] -> Comment ça marche ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2004, 19h11
  4. [TP][Turbo Vision] comment ça marche ??
    Par Costello dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 05/08/2003, 00h24
  5. [update][req. imbriquee] Comment ca marche ??
    Par terziann dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/07/2003, 12h51

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