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

CUDA Discussion :

Cuda vs C/C++ auto-vectorization


Sujet :

CUDA

  1. #1
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut Cuda vs C/C++ auto-vectorization
    Bonjour,

    je dois accélérer un GROS code java et j'hésite entre deux solutions, car je dispose d'un GROS cluster avec des centaines de CPU et bientôt quelques GPU.
    Les deux options qui me semblent possibles sont :
    - utiliser du C/C++ auto-vectorizé et lancé sur plusieurs CPU
    - utiliser Cuda et faire tourner tout cela sur un GPU. Je tiens à préciser que dans mon cas le temps pris par les IO vers le GPU n'ont pas vraiment d'importance.

    Est ce que quelqu'un aurait des informations sur ce qui est le plus rapide ?

    Merci par avance.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  2. #2
    Membre confirmé Avatar de TNT89
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 615
    Points
    615
    Par défaut
    Réponse très tardive...

    A optimisations égales, un code GPU est généralement entre 8x et 12x plus rapide qu'un processeur 4/6 coeurs a condition que tout le GPU soit utilisé et que la bande passante de la RAM ne soit pas un problème.
    Je travaille dans une situation proche (mini cluster de 600 cœurs et une dizaine de GPUs) mais je prends aussi en compte le fait que d'autre utilisateurs utilisent les ressources CPUs et aucun d'entre eux ne va exécuter du code sur les GPUs. Du coup j'essaie de viser les GPUs en priorité.

    Sans connaitre la "taille" du problème (opérations bien parallélisables? taille des matrices? Empreinte en mémoire? Convient a quel taille de cache?) il est difficile de donner une réponse précise.

    Cdt,

  3. #3
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Salut,

    merci infiniment pour la réponse !!!

    Alors, voici la situation. Je construit un GROS Deep Neural Network (+ convolutional layer, max-pooling et d'autres), spécialisé en traitement d'images 2D et 3D.
    TOUTES les opérations sont parallélisable, aussi bien lors de la phase "feed forward" que pour la "back propagation". En plus, je copie les données à traiter dans un buffer, comme ça tout peut être auto-vectorizer.
    Les gros DNN on plusieurs milliers de poids estimer et nécessitent des milliers d'itération (epochs).

    Pour le cluster, nous en sommes pour l'instant à 32 noeuds de 24 cores, ça devrait au moins doubler si ce n'est plus. Le tout est géré par HTCondor. Nous devrions avoir quelques GPU bientôt.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  4. #4
    Membre confirmé Avatar de TNT89
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 615
    Points
    615
    Par défaut
    Je ne connais pas du tout les techniques de Neural Networks. Si vous n'utilisez pas un outil externe, mon avis serait de commencer par faire une implémentation de référence sur CPU (avec des outils comme OpenMP, mais pas MPI). Il sera plus facile de transposer ensuite sur GPU. Pour atteindre les performances maximum, il faudra forcement passer a MPI a un moment mais dans ce cas je suppose que vous proposerez une interface unifie sans savoir l’unité de calcul de chaque clients (certains ne seront que CPU et d'autre CPU+GPU).

  5. #5
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Ok merci, je vais regarder du coté de MPI
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

Discussions similaires

  1. [sgbd] Backup de tables MySQL auto, qqun sait ???
    Par Joelindien dans le forum SGBD
    Réponses: 31
    Dernier message: 26/05/2003, 18h59
  2. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 13h05
  3. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 01h10
  4. Un Sender peut-il s'auto-détruire lors d'un onClick?
    Par Flo. dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/07/2002, 11h31
  5. Réponses: 8
    Dernier message: 17/05/2002, 10h08

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