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

Threads & Processus C++ Discussion :

Passer tableau 6 dimensions de C++ a CUDA


Sujet :

Threads & Processus C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Par d�faut Passer tableau 6 dimensions de C++ a CUDA
    Bonjour
    Je viens tout juste de r�ussir a passer ce tableau � une dll C++ mais le passage d'un tel tableau � CUDA semble compromis. CUDA permet uniquement les tableaux de deux ou trois dimensions? Ou il y a un moyen d'allouer et de copier les donn�es d'un tel tableau en entr�es et en sortie?
    Merci d'avance

    Edit: Je pr�cise que mon tableau est sous la forme d'un pointeur double****** dans le C++.

  2. #2
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,

    La toute premi�re question que j'ai d�j� envie de te poser, c'est: pourquoi diable voudrais tu passer un tableau � six dimensions

    G�n�ralement, on �vitera d�j� de cr�er un tableau � deux dimensions, parce que cela ne va d�j� pas sans poser un certain nombre de probl�mes. Mais on �vitera encore d'avantage de cr�er un tableau � trois dimensions, parce que cela pose encore plus de probl�mes. Alors, un tableau � six dimensions !!!!

    Ceci dit, oui, il est toujours possible d'envisager de copier le contenu d'un tableau, mais cela d�pend �norm�ment du contenu de ce tableau : certaines donn�es ont effectivement vocation � �tre copi�es, d'autres n'ont aucune vocation � l'�tre (cf dualit� entre s�mantique d'entit� et s�mantique de valeur
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  3. #3
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    En effet, quels sont les six axes d'indexations?

    J'arrive � imaginer quatre axes, pour un suivi temporel de donn�es spatiales discr�tis�es ([t][x][y][z]), et encore, j'aurai tendance � lin�ariser sur x,y,z.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Par d�faut
    hum et bien en fait, il s'agit d'un gros programme qui effectue beaucoup de calcul et qui met un certain temps � s'�x�cuter. Ainsi, je dois acc�l�rer ces calculs � l'aide de Cuda, et dans ce programme, il utilise ce tableau � 6 dimension.

    Les index ne repr�sente pas ici des variable spatiales ou temporelle. Il s'agit surtout de parall�liser les calculs afin d�acc�l�rer la vitesse du programme. Pour l'instant dans mes kernels, seul l'index n�2 change soit double [fixe][var][fixe][fixe][fixe][fixe] qui est repr�sent� par double [fixe][threadidx.x][fixe][fixe][fixe][fixe] dans mon kernel.

    Alors je pourrais effectivement r�cup�rer les valeurs dans un tableau une dimension et les pass� au kernel mais du coup je ne sais pas lequel serait le plus optimis� et pour plus tard je ne sais pas si je n'aurais pas besoin non plus du tableau dans son int�gralit�.

  5. #5
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    si seul cet index change, r�ordonne ton tableau pour avoir cet index en dernier. Ca te permettra d'utiliser directement tab[fixe][fixe][fixe][fixe][fixe] comme le tableau 1D qu'il est.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Par d�faut
    Je ne peux pas toucher � la d�claration de ce tableaux, �a impacterait le programme entier. Et c'est seulement pour l'instant qu'un seul indice change, d'ou cette question de passer le tableau en entier, afin de ne plus avoir � ce pr�occuper de quelle variables varie dans quel kernel. Je n'en suis qu'au d�but de "l'optimisation" du programme, Mais j'essaie de pr�voir plus loin que ce que je fais actuellement.

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    D�cembre 2010
    Messages
    734
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2010
    Messages : 734
    Par d�faut
    Citation Envoy� par leternel Voir le message
    En effet, quels sont les six axes d'indexations?

    J'arrive � imaginer quatre axes, pour un suivi temporel de donn�es spatiales discr�tis�es ([t][x][y][z]), et encore, j'aurai tendance � lin�ariser sur x,y,z.
    Espace param�trique, sur un probl�me sensible � six variables?

  8. #8
    Expert confirm�

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Software Developer
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par d�faut
    Tu souhaites passer � CUDA. Mais as-tu essay� OpenMP ? Ca te simplifierait la vie, par contre le gain est � timer entre CUDA et OpenMP, pour ton calcul particulier.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert � rien, mais qu'il est joli (des fois) : ProceduralGenerator (G�n�ration proc�durale d'images, et post-processing).

  9. #9
    Membre �m�rite
    Avatar de Ekleog
    Homme Profil pro
    �tudiant
    Inscrit en
    Janvier 2012
    Messages
    448
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 448
    Par d�faut
    CUDA : Calcul sur GPU
    OpenMP : Calcul parall�le sur CPU

    Ou alors j'ai rat� quelque chose ? Peut-�tre parlais-tu de OpenCL, biblioth�que cens�ment portable de calcul sur GPU ?

Discussions similaires

  1. Passer tableau multi-dimension ByRef
    Par Chris@Xerox dans le forum VBA Access
    R�ponses: 6
    Dernier message: 10/03/2011, 15h07
  2. Comment passer un tableau � deux dimensions dans une fonction
    Par Niko_de_bordo dans le forum D�buter
    R�ponses: 2
    Dernier message: 02/07/2009, 15h15
  3. [VBA-E] passer en param�tre un tableau � 2 dimensions
    Par websurfeur dans le forum Macros et VBA Excel
    R�ponses: 3
    Dernier message: 20/04/2006, 10h46
  4. R�ponses: 1
    Dernier message: 18/11/2005, 11h38
  5. R�ponses: 4
    Dernier message: 06/10/2005, 10h21

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