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

  FORUM HardWare.fr
  Programmation
  C++

   Grid3D Pb Parralèlisme - CUDA - GTX690

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Grid3D Pb Parralèlisme - CUDA - GTX690

n°2196334
jojoa69
Posté le 03-07-2013 à 08:30:09  profilanswer
 

Bonjour,
 
j'exécute un ptit program en cuda pour tester le parallèlisme des calcules ...
Je suis en grid 3D et sur une instruction simple, je lance de plus en plus de threads
 
Voilà mes résultats :
-Block(16,16,1) et Thread(32,32,1) -> 16 * 16 * 1 * 1024 = 262144 Threads, ce qui me donne 20 ms d'execution
-Block(16,16,2) et Thread(32,32,1) -> 16 * 16 * 2 * 1024 = 524288 Threads, ce qui me donne 40 ms d'execution
-Block(16,16,3) et Thread(32,32,1) -> 16 * 16 * 3 * 1024 = 786432 Threads, ce qui me donne 60 ms d'execution
-Block(16,16,4) et Thread(32,32,1) -> 16 * 16 * 4 * 1024 = 1048576 Threads, ce qui me donne 80 ms d'execution
 
et je me prend 20 ms à chaque fois que j'augmente le block.z
 
Ma carte est une GTX 690 avec 1536 Cuda Cores par GPU (DUAL), mono utilisation pour le moment.  
 
Chacun de mes blocks sont donc composés par 32*32 Threads, excuté pas en même temps (par Warp)
 
Voilà mes questions,  
quelle est la correlation entre Cuda Core et Thread ?  
quel est le facteur limitant ?
Pourquoi ce traitement séquentiel au niveau des blocks ? mes cores seraient déjà saturé ?
 
Merci pour vos réponses.
 
voilà la méthode globale :
 

Code :
  1. __global__ void computeDetection(int numberAircraft, int *deviceArrayC)
  2.  {
  3.   int indiceSlave = blockDim.y * blockIdx.y + threadIdx.y;
  4.   int indiceMaster = blockDim.x * blockIdx.x + threadIdx.x;
  5.   int indiceSample = blockIdx.z;
  6.   int localIdx = indiceMaster * numberAircraft + indiceSlave;
  7.   if (indiceMaster <= indiceSlave)
  8.    return;
  9.   if (indiceMaster > numberAircraft)
  10.    return;
  11.   deviceArrayC[localIdx] = -1;
  12.   int tmp = 10000;
  13.   for (int indVolumeMaster = 0; indVolumeMaster < 364; indVolumeMaster++)
  14.   {
  15.    for (int indVolumeSlave = 0; indVolumeSlave < 364; indVolumeSlave++)
  16.    {
  17.     tmp = (tmp < indVolumeSlave) ? tmp : indVolumeSlave;
  18.    }
  19.   }
  20.   deviceArrayC[localIdx * 120 + indiceSample] = tmp;
  21.  }


Message édité par jojoa69 le 03-07-2013 à 08:31:03
mood
Publicité
Posté le 03-07-2013 à 08:30:09  profilanswer
 


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

   Grid3D Pb Parralèlisme - CUDA - GTX690

 

Sujets relatifs
Pb blocage php COMPb lancement exe via cmd = Unknown picture file extension(.)
langage C - PB unsigned charPb pour fermer programme avec touche clavier. (VB)
[Résolu] Pb de perfs pour traiter un planningPb de synthaxe pr colorer cellules en boucle avec une FUNCTION
Pb formulaires sur dreamweaverPb affichage de jimdo sous IE
Pb Protocole TCP[Résolu]Pb de DLL ?
Plus de sujets relatifs à : Grid3D Pb Parralèlisme - CUDA - GTX690


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