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 :

À la découverte de CUDA [Tutoriel]


Sujet :

CUDA

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 782
    Par défaut À la découverte de CUDA
    Bonjour,

    De nos jours, les calculs à effectuer sont de plus en plus nombreux, et de plus en plus complexes, tout en restant parallélisables. C'est pourquoi des ingénieurs se sont penchés sur le problème, en cherchant à savoir s'il était possible de déléguer ces calculs sur nos cartes graphiques, ces monstres de puissance parallèle. Leur réponse fut positive. Ceci fut le début du GPGPU.

    Depuis, nVidia a lancé sa propre solution de GPGPU, dénommée CUDA. Elle est utilisable sur toutes les cartes graphiques récentes (GeForce 8 et supérieures), et sera toujours supportée par les futures GeForce et autres GPU professionnels.

    Cet article se propose de vous montrer l'utilisation de CUDA, sans trop rentrer dans les détails, juste ce qu'il faut pour pouvoir employer son GPU pour des calculs parallèles. CUDA se présente sous la forme d'une extension au C, que je survole dans cet article.

    À la fin, vous pourrez même écrire vos premiers kernels, et bénéficier de la puissance de votre GPU pour tous vos calculs : physique, traitement du signal, et tous les autres calculs parallèles.


    En attendant la publication de cet article, n'hésitez pas à vous exprimer sur le GPGPU, son avenir :
    • Sera-t-il utile ?
    • Pourra-t-il subsister dans le futur ?
    • Avez-vous déjà entendu parler du GPGPU auparavant ?
    • Avez-vous déjà utilisé le GPGPU ? Quelles sont vos réactions ? Les gains promis peuvent-ils être atteints ? Facilement ou pas ? Dans quelle mesure ?
    • ...
    L'article est désormais disponible ici : http://tcuvelier.developpez.com/gpgp.../introduction/
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  2. #2
    Membre émérite
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    Mars 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Par défaut
    Hello

    Moi qui ai investit dans une carte graphique plutot balaise, j'ai hate de connaitre CUDA pour voir ce que je peux en tirer sur mon matériel. J'ai tenté les install de CUDA, mais j'ai pas trouvé de tuto abordable .. et donc j'ai hate de voir ce que tu nous a préparé pour découvrir ça, et pourquoi pas m'y mettre par la suite.

    On sait que de nos jours les processeurs stagnent en puissance, et que c'est le multi-threading qui fait leur puissance actuelle. CUDA, selon moi, est donc précisément dans les attentes des programmes contemporains, qui privilegient le parallelisme des calculs à la rapidité du processeur.

    Ce qui m'interroge, c'est que le GPGPU est une capacité de la carte graphique, et donc a la base la puissance de calcule parallele de cette derniere a été prévue pour elle et non pas en soutient du CPU. Ainsi, j'ai peur que si le GPGPU devient monnaie courante, il faille avoir une bonne carte graphique pour soutenir le CPU, meme si on n'utilise pas ses capacités graphiques.

    Pourquoi ne pas directement integrer la technologie du multi-threading des GPU dans les CPU à l'avenir ?

  3. #3
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 782
    Par défaut
    Citation Envoyé par Ange_blond Voir le message
    Pourquoi ne pas directement integrer la technologie du multi-threading des GPU dans les CPU à l'avenir ?
    C'est justement l'objectif d'Intel Larrabee, d'intégrer GPU et CPU dans une même puce. AMD prévoit la même chose, mais je ne connais plus le nom. Dans un premier temps, il est prévu que le GPU soit l'équivalent des chipsets graphiques intégrés, mais, comme toute chose, ça va changer !
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 124
    Par défaut
    Effectivement AMD a pour projet de concevoir un APU qui est n'est pas vraiment une fusion du GPU et CPU mais plutôt un hardware possédant 2-3 coeur CPU et 1 coeur GPU.

    J'ai travaille sur CUDA quand j'étais chez nvidia donc je connais bien et j'ai pas mal d'expérience avec et je vous garantis que le gains de performance est très important sur des applications pouvant être traite sur plusieurs thread.
    La physique par exemple ne fonctionne pas par récurrence il est donc assez facile de porter ce genre de calcul sous un GPU, je pense a physX et bullet qui utilisent le GPGPU.
    Le problème est que nous sommes dans la section Jeux donc on ne peut pas parler des simulations avance, de l'IA car les fsm n'ont pas besoin de ce genre de puissance de calcul.
    Je pense que dans le jeu vidéo les seules utilités sont pour la physique et les serveurs de jeux. La mémoire du GPU étant bien plus rapide que celle du CPU (je parle bien sur de la ram, pas des registres) il est plus intéressant de traite la logique d'un jeu du type MMORPG sur le GPU, c'est d'ailleurs ce que je fais sur mon projet personnel, permettant alors de permettre au CPU de gérer le réseau et uniquement le réseau, ce qui implique une meilleurs réactivité.

    CUDA n'est pas facile a aborder car il faut voir la conception de l'application différemment et il est dur de se défaire de ses habitudes. Mais après quelques mois ou semaines selon les personnes il est possible de se débrouiller seul sans trop de difficulté.

    La technologie de multi-thread du GPU ne peut pas être implanter dans un CPU pour la simple raison qu'ils n'ont pas la même utilité et pas la même architecture, pour plus d'informations je vous laisse lire des paper sur le multithreading de chez intel.

    Pour ce qui est de l'essor du GPGPU il est certain que ça va fonctionner car nous avons besoin de plus en plus de puissance de calcul et vu l'évolution actuel du hardware qui n'est plus une course a la fréquence mais une course au nombre de core, il faut afin d'avancer rendre nos applications multithreaded et le GPU offre un meilleurs support de ce genre d'architecture que le CPU.
    Par exemple l'encodage de video, avec le logiciel CUDA de nvidia l'encodage est bien plus rapide qu'avec le support CPU.

  5. #5
    Membre éprouvé Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 979
    Par défaut
    Citation Envoyé par yamashi Voir le message
    Je pense que dans le jeu vidéo les seules utilités sont pour la physique et les serveurs de jeux. La mémoire du GPU étant bien plus rapide que celle du CPU (je parle bien sur de la ram, pas des registres) il est plus intéressant de traite la logique d'un jeu du type MMORPG sur le GPU, c'est d'ailleurs ce que je fais sur mon projet personnel, permettant alors de permettre au CPU de gérer le réseau et uniquement le réseau, ce qui implique une meilleurs réactivité.
    Côté client ok, mais pour ce qui est des serveurs, il faut une carte vidéo compatible avec CUDA. Je ne pense pas qu'à l'heure actuelle, les serveurs proposés par les hébergeurs proposent autre chose qu'une simple carte intégrée... Par exemple, les dernières lames de dell ont une matrox g200 je crois (une carte de plus de 10 ans!)

  6. #6
    Membre expérimenté

    Inscrit en
    Février 2009
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 200
    Par défaut
    Côté client ok, mais pour ce qui est des serveurs, il faut une carte vidéo compatible avec CUDA. Je ne pense pas qu'à l'heure actuelle, les serveurs proposés par les hébergeurs proposent autre chose qu'une simple carte intégrée... Par exemple, les dernières lames de dell ont une matrox g200 je crois (une carte de plus de 10 ans!)
    Je ne suis pas sûr de bien comprendre le sens de ta réflexion:

    Le serveur ne fait que transmettre des données qui ne transitent pas via la carte graphique..

  7. #7
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par kain_tn Voir le message
    Côté client ok, mais pour ce qui est des serveurs, il faut une carte vidéo compatible avec CUDA. Je ne pense pas qu'à l'heure actuelle, les serveurs proposés par les hébergeurs proposent autre chose qu'une simple carte intégrée... Par exemple, les dernières lames de dell ont une matrox g200 je crois (une carte de plus de 10 ans!)
    Bonjour,
    J'ai deux questions de béotien par rapport à ça : 1/Une application intégrant CUDA doit-elle être distribuée avec des DLL (ou autres ressources) particulières ? 2/Si le poste n'a pas de carte nVidia, il y a-t-il une émulation ou faut-il prévoir dans l'appli une solution de repli ?
    Merci.

Discussions similaires

  1. Tres tres débutant(découverte de l'Oracle)
    Par argon dans le forum Oracle
    Réponses: 14
    Dernier message: 19/03/2006, 20h14

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