# Applications > Dveloppement 2D, 3D et Jeux > Moteurs 3D >  CPU et GPU comment a marche ?

## Clercq

Bonjour,

Je n'ai pas trouv de place plus approprie, j'espre ne pas tre totalement hors sujet ... 

Je me suis remmor une question existentielle de mes annes 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 rfrences a m'intresse par pur culture gnrale  ::):

----------


## Clercq

A priori c'est pas si vident.

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

Avant d'aller plus loin, je vais dj 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 rfrences, une simplification de fonctionnement des drivers ...

Merci d'avance  :;):

----------


## Mat.M

> Bonjour,
> 
> Je n'ai pas trouv de place plus approprie, j'espre ne pas tre totalement hors sujet ... 
> 
> Je me suis remmor une question existentielle de mes annes 3dfx, que je n'ai jamais assouvie, en lisant un article sur les GPU ...


La diffrence entre les cartes 3dfx et les cartes de maintenant c'est qu'il me semble qu'on ne pouvait pas accder  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 systme informatique !
Quand tu mets ton ordinateur sous tension le CPU traite les instructions du BIOS que tu aies une carte graphique avec chipset d'acclration 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.
Aprs le CPU fera des entres/sorties pour envoyer des commandes  la carte graphique et  son processeur graphique.
Encore une fois c'est le CPU qui grent tout dans un systme 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'intermdiaire encore une fois c'est le CPU le processeur fut-il Intel ou AMD qui est le coeur du systme.
Sais-tu comment c'est fait une carte mre 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 systmes industriels (  par exemple un simulateur de vol ) voire mme les consoles de jeux ont des systmes particuliers avec un controleur intermdiaire qui gre 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 rel.
Sinon si je fais de la bureautique et du traitement de texte sur un PC  quoi va me servir un GPU ?  :8O:

----------


## Clercq

> Sais-tu comment c'est fait une carte mre 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 rponse a parait logique, mais j'ai pens qu'il pouvait y avoir un systme plus complexe, genre des thread spciales GPU qui recevrais des signaux par le CPU pour que celui-ci aille chercher des donnes sur un buffer spcialement ddi a cette communication ... , des trucs un peu srieux quoi lol  :;): .




> [...]ou bien le GPU est actif ?


Ici je pensais (de faon un peu rapide ...) que le GPU pouvais accder aux instruction, genre il y aurait des parties lisible par le CPU et d'autre par le GPU. Mais en y rflchissant c'tait ... Stupide...




> Nvidia's CUDA: The End of the CPU?


Ce qui m'intressais dans cette article c'est plus les infos qui pourrait rpondre a ma question plus que le fond  :;): .

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

----------


## Mat.M

Salut Clercq



> En ayant la rponse a parait logique, mais j'ai pens qu'il pouvait y avoir un systme plus complexe, genre des thread spciales GPU qui recevrais des signaux par le CPU pour que celui-ci aille chercher des donnes sur un buffer spcialement ddi a cette communication ... , des trucs un peu srieux quoi lol .


Cela c'est une fonctionnalit que va grer 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 manire 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.

----------


## LeGreg

> A priori c'est pas si vident.
> A moins que vous ayez de bonnes rfrences, 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 comprhensibles par le hardware et les envoie au hardware pour excution. En gnral on considre le driver comme la partie qui s'excute sur le CPU, mais videmment une partie du problme de l'affichage est rsolu de l'autre ct de la barrire (le BUS PCI-E tant gnralement l o la distinction se fait).

Pour savoir comment a fonctionne en interne faudra des questions un peu plus prcises que a.. La description ci-dessus est la plus gnrale 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, dcodeurs, schedulers, tout le tralala.

----------


## yamashi

> cela peut-tre valable exclusivement  pour une application logicielle qui fait de la 3d temps rel.


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 rel 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 ct 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 ?

----------


## Mat.M

> 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 interprtation
En aucun cas j'ai cris que CUDA se ddiait  aux rendus 3d temps rel exclusivement ,relire serait appropri
J'ai cris que l'auteur de l'article avait un slogan erron ce qui est diffrent




> 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'intresse pas particulirement..




> 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 dernire technologie pour faire de la bureautique  :8O:

----------

