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

Discussion: Sortie de CUDA 10

  1. #1
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    23 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 23 614
    Points : 147 482
    Points
    147 482

    Par défaut Sortie de CUDA 10

    NVIDIA annonce la nouvelle version de CUDA
    L'API de calcul sur processeur graphique s'enrichit d'une bibliothèque de décodage d'images JPEG

    En même temps que la sortie de sa nouvelle génération de cartes graphiques (Turing), NVIDIA annonce la prochaine version de sa suite logicielle pour l’exécution de codes de calcul sur ses processeurs graphiques : CUDA 10. Cette API est loin d’être remplacée par OpenCL et NVIDIA s’efforce de garder une certaine avance par rapport à l’API concurrente (mais librement implémentable). CUDA 10 n’est pas encore disponible au téléchargement, mais sa version finale sortira en 2018.

    La version 10, outre la gestion des cartes Turing, apporte des améliorations habituelles de performance dans ses bibliothèques de calcul : la transformée de Fourier rapide (FFT) s’exécute plus vite sur plusieurs GPU (NVIDIA parle même de mise à l’échelle forte sur seize cartes), les routines d’algèbre linéaire dense (factorisation de Cholesky et valeurs propres) sont plus rapides, certains noyaux ont été optimisés pour les spécificités de gestion des précisions multiples de Turing.

    Une nouvelle bibliothèque fait son apparition : nvJPEG, pour le décodage d’images au format JPEG (une par une ou bien en lot) et la conversion d’espaces colorimétriques. Le décodeur peut fonctionner tant uniquement sur la carte graphique qu’en mode hybride, en exploitant aussi le CPU. Les avantages sont un meilleur débit et une latence diminuée : nvJPEG peut décoder plus d’images par seconde qu’un CPU, mais prend aussi moins de temps par image. Ses applications prévues sont la vision par ordinateur, notamment par apprentissage profond : la plupart des images utilisées sont au format JPEG, qui prend relativement peu de place sur le disque. En sus, nvJPEG peut effectuer certaines opérations directement au même moment que le chargement, comme des translations, une mise à l’échelle, etc. Une préversion est déjà disponible.


    Dans les nouvelles fonctionnalités, on compte aussi un nouveau mécanisme d’interopérabilité avec les API de rendu comme DirectX 12 et Vulkan, à destination principalement des applications en temps réel comme les jeux. La famille d’outils de développement Nsight s’enrichit de Systems (pour l’analyse de performance à l’échelle d’un système complet) et de Compute (plus spécifiquement pour les noyaux de calcul, avec une collection de données rapide et une interface entièrement programmable).


    La microarchitecture de Turing promet également des modifications au niveau des capacités de calcul (Compute Capability). Par exemple, les cœurs tensoriels peuvent fonctionner avec d’autres précisions : jusqu’à présent, ils étaient limités à des nombres à virgule flottante sur demi-précision (seize bits) ; avec Turing, ils pourront descendre jusque des entiers sur huit et même quatre bits (avec des calculs respectivement deux et quatre fois plus rapides). Sur certaines applications, ces quelques modifications seront probablement très utiles à NVIDIA pour garantir une performance excellente — mais seulement sur quelques niches : avec quatre bits, on ne peut représenter que seize valeurs différentes…


    Les multiprocesseurs de flux (SM) évoluent également, dans les cœurs de calcul (CUDA). Notamment, Volta avait séparé les parties effectuant des calculs sur des entiers, de telle sorte qu’il devient possible de travailler, exactement en même temps, sur des entiers et des nombres à virgule flottante. Ceci permet d’accélérer grandement des opérations de génération d’adresse, notamment.

    Les unités arithmétiques et logiques de ces multiprocesseurs voient aussi la gestion des précisions inférieures de manière plus générale : toutes les opérations autrefois exclusivement FP32 peuvent être effectuées avec une précision moindre (FP16), à une vitesse double. Ceci était utile pour les réseaux neuronaux, mais l’est tout autant pour certains jeux.


    Sources : Announcing CUDA Toolkit 10, NVIDIA Reveals Next-Gen Turing GPU Architecture: NVIDIA Doubles-Down on Ray Tracing, GDDR6, & More.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), 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
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    23 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 23 614
    Points : 147 482
    Points
    147 482

    Par défaut

    Sortie de CUDA 10, l'API de calcul sur processeur graphique de NVIDIA,
    avec la possibilité de définir ses calculs comme un graphe de dépendances

    Dans le mois de l’annonce de CUDA 10, NVIDIA lance effectivement la nouvelle version de son API de calcul sur processeur graphique. Outre la gestion de la nouvelle architecture Turing, cette version 10 apporte bon nombre de nouveautés, partiellement déjà annoncées.

    Une grande nouveauté de CUDA 10 facilitera l’expression de programmes de calcul compliqués, où certaines opérations ne peuvent être lancées que quand d’autres sont terminées : par exemple, on ne peut copier les résultats d’un calcul sur le processeur central que quand il a fini de s’exécuter sur la carte graphique. CUDA disposait déjà de la notion de flux, mais elle n’autorisait pas une grande flexibilité : le processeur central doit toujours gérer l’ordonnancement des tâches, par exemple. Lancer un noyau de calcul prend toujours un certain temps, non négligeable quand le noyau est assez petit.

    L’idée des graphes de calcul est donc d’indiquer à CUDA les tâches à exécuter et leurs dépendances, de telle sorte que la carte graphique ou le pilote puisse décider, sans attendre l’application, des tâches à exécuter par la suite. Dans le cas de noyaux très rapides à l’exécution dans un processus plus long, les coûts de lancement sont en grande partie éliminés. Également, CUDA peut réordonner les tâches afin d’améliorer les temps d’exécution, notamment en réduisant les mouvements de données : la carte graphique sait quand des données seront réutilisées, par exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    cudaGraphCreate(&graph);
    cudaGraphAddNode(graph, kernel_a, {}, ...);
    cudaGraphAddNode(graph, kernel_b, { kernel_a }, ...);
    cudaGraphAddNode(graph, kernel_c, { kernel_a }, ...);
    cudaGraphAddNode(graph, kernel_d, { kernel_b, kernel_c }, ...);
    
    cudaGraphInstantiate(&instance, graph);
    
    for(int i = 0; i < 100; i++)
          cudaGraphLaunch(instance, stream);

    Une API spécifique permet de mélanger un code à base de flux et de graphe, en enregistrant les flux et en indiquant les moments où les flux doivent s’attendre.

    Source : CUDA 10 Features Revealed: Turing, CUDA Graphs and More.

    Et vous ?

    Qu'en pensez-vous ?
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), 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 !

  3. #3
    Membre éclairé Avatar de Matthieu76
    Homme Profil pro
    Consultant informatique
    Inscrit en
    mars 2013
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2013
    Messages : 488
    Points : 710
    Points
    710

    Par défaut

    Ça a l'air vraiment cool ce système de graph, ça me donne presque envie de me remettre au CUDA, malheureusement je n'ai pas le temps ...
    En tout cas cela semble beaucoup plus simple pour tout ce qui est calculs de graph, réseaux de neurones, et autres algorithmes. D'autant plus que la plupart des algos peuvent être représenter sous forme de graph.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    août 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2009
    Messages : 7
    Points : 9
    Points
    9

    Par défaut CUDA 10 et Visual studio 2017

    Bonjour,

    J'utilise Visual studio 2015 et CUDA. Passer à Visual Studio 2017 community et CUDA, annoncé récemment comme enfin possible, est tout sauf simple. Je n'ai pas encore réussi à les faire fonctionner ensemble. Existe-t-il une note détaillée d'installation ?

  5. #5
    Membre éclairé Avatar de Matthieu76
    Homme Profil pro
    Consultant informatique
    Inscrit en
    mars 2013
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2013
    Messages : 488
    Points : 710
    Points
    710

    Par défaut

    Je ne sais pas trop mais au début j'avais eu des problème d’installation, j'avais du repasser à MSVC2015. C'était il y a un peu plus d'un an et à l'époque j'utilisait QtCreator comme IDE. Je suis dispo pour d'aider si tu veux. C'est quoi ton problème exactement ?

Discussions similaires

  1. Sortie de CUDA 9.1
    Par dourouc05 dans le forum CUDA
    Réponses: 9
    Dernier message: 01/06/2018, 23h55
  2. Sortie de CUDA 7.5
    Par dourouc05 dans le forum CUDA
    Réponses: 10
    Dernier message: 09/09/2015, 09h02
  3. Réponses: 5
    Dernier message: 18/03/2015, 18h12
  4. CUDA, C++, Qt : Sortie anticipée de fonction
    Par brugere dans le forum C++
    Réponses: 6
    Dernier message: 07/03/2013, 11h05
  5. Réponses: 5
    Dernier message: 13/04/2010, 11h31

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