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 :

Sortie de CUDA 10.2


Sujet :

CUDA

  1. #1
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 609
    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 : 26 609
    Points : 188 580
    Points
    188 580
    Par défaut Sortie de CUDA 10.2
    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 (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
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 609
    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 : 26 609
    Points : 188 580
    Points
    188 580
    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 (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 !

  3. #3
    Membre éclairé Avatar de Matthieu76
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2013
    Messages
    568
    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 : 568
    Points : 890
    Points
    890
    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
    568
    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 : 568
    Points : 890
    Points
    890
    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 ?

  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 609
    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 : 26 609
    Points : 188 580
    Points
    188 580
    Par défaut Sortie de CUDA 10.1
    Sortie de CUDA 10.1, l'interface de calcul sur carte graphique de NVIDIA,
    avec une bibliothèque plus légère pour les produits matriciels

    Moins de six mois après la sortie de CUDA 10.0, voici la première version mineure qui apporte une série de nouveautés. Notamment, cuBLASLt est une variante allégée de cuBLAS pour l'algèbre linéaire, spécialement focalisée sur le produit entre matrices (GEMM). Cette bibliothèque propose une API plus flexible que BLAS (une interface qui existe depuis 1990), notamment au niveau de la représentation en mémoire des matrices, peu importe le type des données (notamment en précision réduite, sur huit ou seize bits).

    Les solveurs pour les valeurs propres ont également été revisités, avec des améliorations de performance leur permettant d'aller une fois et demi plus vite qu'avant. cuSOLVER propose aussi de nouveaux solveurs pour récupérer un sous-ensemble de valeurs propres ( SYEVDX et SYGVDX).

    Côté génération de nombres aléatoires, six algorithmes ont été retravaillés (MTGP32, MRG32k3a, Sobol32 et Sobol64), avec une amélioration de performance qui peut monter jusqu'à un facteur quatre ! nvJPEG, une bibliothèque d'encodage et de décodage de fichiers JPEG, accélère fortement les opérations en lots.

    Télécharger CUDA 10.1. Voir aussi les notes de version.
    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 !

  7. #7
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 609
    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 : 26 609
    Points : 188 580
    Points
    188 580
    Par défaut Sortie de CUDA 10.2
    Une nouvelle version de l'API de programmation généraliste des cartes graphiques NVIDIA vient de sortir, CUDA 10.2, près de dix mois après la version 10.1. Cette bibliothèque compte notamment l'ajout d'une API complète pour la gestion de la mémoire virtuelle sur la carte graphique, avec des fonctions plus précises pour l'allocation de la mémoire et de plages d'adresses en mémoire.

    libcu++ est une implémentation bibliothèque standard C++ en parallèle (une nouveauté ajoutée avec C++17), ce qui permet d'utiliser les algorithmes de la bibliothèque standard avec la syntaxe habituelle du C++.

    Cette version apporte également une nouvelle couche d'interopérabilité à destination de son système d'exploitation en temps réel (RTOS) pour l'automobile NVIDIA DRIVE OS, appelée NVIDIA Software Communication Interface Interoperability (NVSCI). Deux interfaces principales sont disponibles : NvSciBuf pour l'échange de zones de mémoire complètes et NvSciSync pour la synchronisation. Ces fonctionnalités sont en préversion.

    Au niveau des plateformes gérées, CUDA 10.2 est la dernière version qui sera disponible pour macOS : on ne devrait donc pas voir de sitôt de nouvelles cartes graphiques pour les ordinateurs de bureau Apple… RHEL 6 n'est plus une distribution Linux approuvée, elle ne sera plus du tout gérée dès la prochaine version de CUDA (tout comme les compilateurs Microsoft C++ 2010 à 2013). Sinon, de nouvelles distributions font leur apparition, voici la liste complète des distributions avec lesquelles CUDA est compatible : RHEL 7 et 8, Fedora 29, OpenSUSE 15, SUSE SLEC 12.4 et 15, Ubuntu 16.04.6 LTS et 18.04.3 LTS.

    NVIDIA prépare aussi un petit tri dans les fonctionnalités disponibles. Maintenant que nvJPEG est une bibliothèque à part, les fonctions correspondantes des NPP Compression Primitives s'apprêtent à disparaître. La gestion des plus vieux GPU atteint son crépuscule : les SM 3.0 à 5.2 ne seront bientôt plus gérés ; les SM 3.0 ne le seront plus dès la prochaine version. Il s'agit des architectures Kepler et Maxwell.

    Télécharger CUDA 10.2.

    Voir aussi : les notes de version complètes.
    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 !

Discussions similaires

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

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