Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2638 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Utiliser la puissance de sa carte vidéo pour effectuer des calculs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Utiliser la puissance de sa carte vidéo pour effectuer des calculs

n°1002043
initial
Posté le 05-03-2005 à 21:19:49  profilanswer
 

Je fais de gros calculs mathématiques qui prennent beaucoup de temps. On m'a dit qu'il était possible en C/C++ d'utiliser la puissance de calcul de la carte vidéo (en plus du couple carte mère et processeur)... Est-ce vrai?
Comment réalise-t-on cela? Quel est l'ordre de grandeur des gains, en terme de puissance?
 
Merci pour vos lumières!

mood
Publicité
Posté le 05-03-2005 à 21:19:49  profilanswer
 

n°1002051
chrisbk
-
Posté le 05-03-2005 à 21:24:15  profilanswer
 

pas terrible. la CG est effectivement super couillue, mais seulement pour effectuer des operations bien precises. Bon, ok, avec les derniers CG, qui ont moultes VS et PS, et surtout des textures pouvant stocker des flottants, on doit pouvoir arriver a qqchose.  
 
normalement sur une CG on ne fait qu'envoyer des données, on en recoit pas (c'est possible mais ca ralenti salement le biniou), mais bon, avec une CG recette, moi je dis : pourquoi pas ? essaye et regarde si tu peux te servir de la CG pour decharger un peu le proc. Par contre garde a l'esprit que meme si bcp de progres ont ete fait, une CG n'offre pas la flexibilité d'un CPU (et les performances se cassent mechamment la gueule si le shader devient trop long)
 
 
 

n°1002068
initial
Posté le 05-03-2005 à 21:34:46  profilanswer
 

D'ac! merci pour ces indications. Mais en terme de programmation pure (instructions, variables, structures), comment procède-t-on pour faire réaliser des opérations à la CG ?

n°1002071
chrisbk
-
Posté le 05-03-2005 à 21:37:05  profilanswer
 

ah bin la il faut te pencher du coté des langages de shader : soit cui de DX (nommé HLSL), soit de celui d'opengl (jsais pu le nom) ou ptet encore du coté de celui de nvidia (cg, mais je sais pas trop non plus si il est tjs maintenu....)
 
ca a une vague tronche de C (sans pointeur, ni allocation dynimaque... evidemment. Et les instructions dont tu disposeras (et le nombre de celle ci) dependront de ta cg)

n°1002096
initial
Posté le 05-03-2005 à 21:59:13  profilanswer
 

ouais, en gros : beaucoup de soucis pour peu de résultats à la sortie...  
 
topic over

n°1002111
LeGreg
Posté le 05-03-2005 à 22:06:33  profilanswer
 

quelques ressources là :
http://www.gpgpu.org/
 
les problèmes des gpus actuels : capacités de readback pas super adapté (si tu as beaucoup de calculs dépendants les uns des autres dont une partie doit être traité par le CPU). Fournir les données du calcul à la carte graphique est couteux en temps CPU et les modeles de shaders actuels limitent les accès aléatoires à la mémoire (ce qui fait que le CPU doit prévoir à l'avance quelles données seront accédées + hardcoder certains accès ou données dans les programmes, ce qui augmente la dépendance ci dessus).
 
Les modèles complexes style appel récursif avec pile, sont à oublier et le modèle de branchement est très différent des CPUs (les GPUS actuels privilégient la cohérence, les CPUs privilégient la prédiction).
 
Les GPUS sont fortement SIMD, pour atteindre la pleine vitesse il faut qu'une meme instruction puisse s'appliquer à 4 vecteurs de 4 flottants simultanément. Le pipeline graphique contient de nombreuses unités "logiques" qui paraissent dupliquées pour privilégier le parallélisme mais qui parfois utilisent les meme ressources physiques pour économiser des transistors. Le nombre de registres est limité mais n'est pas backupé par un espace de stockage intermédiaire ce qui fait que les programmes qui ont besoin de stockage intermédiaire doivent être découpés en passes multiples.
 
Aucun GPU actuel ne travaille sur de simples entiers, tous les calculs se font en flottant.
 
Il n'y a pas d'exceptions, pas de capacités de déboguage (à part en émulation software).
 
A cause et grace à tout ça, un GPU sera toujours plus rapide au traitement graphique pur (tel que défini par les APIs OpenGL et Direct3D) qu'un simple CPU. Mais il faudra un peu se casser la tete pour tout le reste.
 
Bien entendu plus on avance plus les modèles se complexifient et bientot il sera possible de faire fonctionner des programmes complexes sur les GPUs, voire d'avoir l'équivalent d'un CPU Intel sur la carte graphique ou intégré au die du GPU (mais tu peux oublier ça pour cette année..)

n°1002118
LeGreg
Posté le 05-03-2005 à 22:12:16  profilanswer
 

exemple commercial :
http://film.nvidia.com/page/home.html
 
Gelato délègue certains calculs couteux à la carte graphique pour faire du rendu offline (non temps réel).

n°1002130
LeGreg
Posté le 05-03-2005 à 22:16:59  profilanswer
 

exemple académique:
http://graphics.stanford.edu/projects/brookgpu/
 
BrookGPU introduit un modèle abstrait de stream programming pour pouvoir programmer plus facilement les cartes graphiques et effectuer des calculs géneriques sur les GPUs.

n°1002478
fucky_fuck
Posté le 06-03-2005 à 10:22:11  profilanswer
 

me semblait bien que j'avais déjà vu ça quelque part ...
 
http://www.hardware.fr/html/news/?date=26-12-2003#6253
 
j'ai eu du mal a le retrouver vu le titre de l'article : Une GeFFX pour remplacer le P4 ?
 
@ +


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Utiliser la puissance de sa carte vidéo pour effectuer des calculs

 

Sujets relatifs
player de video 3D, quel langage choisir???L'opération doit utiliser une requête qui peut être mise à jour.
Programmer un codec videoComment utiliser JAXP 1.3 avec JDK 1.4 ??
probleme compatibilité vidéo avec ie, demande d'aide.aide lecteur carte telephone
utiliser c++ sur mandrake10 debutantPop-up redimensionné sans utiliser js?
Quel langage/API utiliser ? 
Plus de sujets relatifs à : Utiliser la puissance de sa carte vidéo pour effectuer des calculs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR