+ Répondre à la discussion Actualité déjà publiée

Discussion: Sortie de CUDA 9.1

  1. #1
    Responsable Qt


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

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

    Informations forums :
    Inscription : août 2008
    Messages : 22 590
    Points : 125 680
    Points
    125 680

    Par défaut Sortie de CUDA 9.1

    NVIDIA annonce CUDA 9,
    la nouvelle version de son API de programmation des processeurs graphiques avec la notion de groupe coopératif

    Parallèlement à ses derniers GPU (de génération Volta), NVIDIA annonce une nouvelle version de son API CUDA. Cette neuvième itération se concentre sur les nouvelles fonctionnalités des GPU annoncés, mais propose également de nouveaux algorithmes dans cuSolver et nvGraph, ainsi qu’un compilateur amélioré — plus rapide, compatible avec le code C++14 pour l’hôte — et une intégration pour les environnements de programmation les plus récents — Visual Studio 2017, Clang 3.9, PGI 17.1 et GCC 6.

    Groupes coopératifs

    Les algorithmes parallèles imposent souvent aux fils d’exécution de travailler de manière collective (et non parfaitement en parallèle et sans synchronisation), ce que le développeur peut faire en groupant certains et en synchronisant ces groupes. CUDA 9 apporte justement cette notion de groupes coopératifs.

    De manière historique, le degré le plus fin de découpage des fils d’exécution est le bloc, qui correspond à une limite physique des premiers GPU entièrement programmables. La synchronisation ne pouvait ainsi se faire qu’entre ces blocs. Cette manière de programmer est difficile à bien assimiler et limite la performance. De plus, les interactions avec les bibliothèques extérieures sont plus compliquées.

    Au contraire, un groupe coopératif est une subdivision plus fine du travail à effectuer, qui peut correspondre à un morceau de bloc ou à plusieurs blocs… voire plusieurs GPU. Les opérations collectives peuvent alors s’effectuer par rapport à ces groupes. Ainsi, le nombre de fils d’exécution par bloc peut varier pour s’adapter au matériel (et donc en extraire un maximum de performance), tandis que la synchronisation n’en pâtit pas.

    Cette fonctionnalité est disponible sur toutes les générations de processeurs graphiques, mais pas tous les détails. Ainsi, la synchronisation entre GPU n’est possible qu’avec les processeurs Pascal et Volta, en dessous d’une trame d’exécution uniquement avec Volta (grâce à un ordonnancement des fils d’exécution entièrement repensé).

    Outils pour développeurs

    Le profileur visuel a reçu deux améliorations majeures pour faciliter l’analyse de la performance des applications utilisant la mémoire unifiée. D’un côté, il montre maintenant les lignes de code où se produit chaque défaut de page du côté CPU (et donc où l’exécution du code doit être interrompue le temps de charger la zone de mémoire demandée).


    De l’autre, la ligne du temps du profileur affiche trois types d’événements liés à l’utilisation de la mémoire unifiée :

    • les goulots d’étranglement (page throttling) qui se produisent quand un processeur est bloqué sur une page de mémoire le temps pour laisser un autre y accéder sans interruption ;
    • les écroulements (thrashing) qui indiquent qu’au moins deux processeurs accèdent à une même région en mémoire virtuelle à tour de rôle, ce qui fait que les pages concernées sont déplacées sans cesse d’un processeur à l’autre ;
    • une correspondance éloignée (remote map) pointe une région en mémoire virtuelle qui a été assignée à un autre processeur, notamment pour éviter un écroulement ou pour combler un manque de mémoire sur le processeur courant.




    Cœurs tensoriels

    Volta est la première architecture GPU de NVIDIA à fournir tant des cœurs de calcul génériques (CUDA) que spécifiques (tensoriels). Ces derniers sont prévus spécifiquement pour une opération : un cœur tensoriel peut mémoriser quatre matrices de seize éléments et effectuer l’opération D = A × B + C.


    Chacun de ces cœurs effectue soixante-quatre opérations de multiplication-addition par coup d’horloge. Rassemblés dans une trame d’exécution, ils peuvent effectuer cette opération de multiplication et d’addition entre seize matrices carrées de seize éléments de côté. En continuant d’assembler ainsi les groupes de cœurs, on peut traiter des matrices de n’importe quelle taille, et cela très rapidement. La principale limitation concerne la précision : les deux matrices à multiplier sont forcément FP16, tandis que les deux matrices d’accumulation peuvent être FP16 ou FP32.

    Source et détails : CUDA 9 Features Revealed : Volta, Cooperative Groups and More.

    Et vous ?

    Qu'en pensez-vous ?

    Voir aussi

    NVIDIA présente sa nouvelle génération de cartes graphiques, Volta accélère d'un facteur trois l'apprentissage profond grâce à ses cœurs tensoriels
    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
    Membre expérimenté Avatar de marsupial
    Homme Profil pro
    DevOp, Tech leader
    Inscrit en
    mars 2014
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : DevOp, Tech leader

    Informations forums :
    Inscription : mars 2014
    Messages : 673
    Points : 1 665
    Points
    1 665

    Par défaut

    J'espère me tromper, mais je ne saurai dire pourquoi, j'ai le vague pressentiment que celui qui arrivera à coder intelligement un jeu dessus n'est pas encore né...
    Il a fallu des années pour appréhender le µ de la PS2, alors ce bestiau destiné au deep learning... j'ai des doutes...
    Repeat after me
    Le monsieur lutte pour la défense des libertés individuelles et collectives

    Repeat after me...

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    mai 2012
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2012
    Messages : 163
    Points : 622
    Points
    622

    Par défaut

    Citation Envoyé par marsupial Voir le message
    J'espère me tromper, mais je ne saurai dire pourquoi, j'ai le vague pressentiment que celui qui arrivera à coder intelligement un jeu dessus n'est pas encore né...
    Il a fallu des années pour appréhender le µ de la PS2, alors ce bestiau destiné au deep learning... j'ai des doutes...
    CUDA sert à faire du calcul scientique pas des jeux. D'ailleurs on le fait souvent tourner sur des cartes GPU qui n'ont même pas de sortie graphique.

  4. #4
    Responsable Qt


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

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

    Informations forums :
    Inscription : août 2008
    Messages : 22 590
    Points : 125 680
    Points
    125 680

    Par défaut

    D'un côté, si, CUDA sert à faire des jeux : plus précisément, certaines simulations physiques. C'est le cas de certaines solutions de NVIDIA GameWorks — même s'ils semblent migrer vers Direct Compute. Dans ces cas-là, vu qu'on n'a pas forcément besoin d'une précision dingue, ces cœurs tensoriels pourraient être utiles (mais pas forcément difficile à exploiter, vu que ces simulations sont assez classiques au niveau des méthodes numériques).
    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 !

  5. #5
    Membre actif Avatar de Matthieu76
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2013
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : mars 2013
    Messages : 212
    Points : 217
    Points
    217

    Par défaut

    Nan mais la question n'est pas là car de plus en plus de boîte de jeu vidéo ne développe plus leur propre moteur mais utilise des moteurs déjà existant tel que Unity ou Enreal Engine. Développer un jeu et développer un moteur de jeu n'est pas le même travaille. Et puis je trouve que certains jeux comme League of legends ou encore Starcraft 2 sont vraiment très bien optimiser et tourne sur des grille-pains.

    En coup cas je viens de commencer il y a 2 semaine la programmation en CUDA et je trouve que le laguage et très clair avec une bonne documentation, rien à redire de ce côté

  6. #6
    Responsable Qt


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

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

    Informations forums :
    Inscription : août 2008
    Messages : 22 590
    Points : 125 680
    Points
    125 680
    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 !

  7. #7
    Responsable Qt


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

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

    Informations forums :
    Inscription : août 2008
    Messages : 22 590
    Points : 125 680
    Points
    125 680

    Par défaut

    La version finale de CUDA 9 vient de sortir, le téléchargement est maintenant libre, à l'occasion de l'édition chinoise de la GTC, la conférence technologique de NVIDIA.
    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 !

  8. #8
    Responsable Qt


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

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

    Informations forums :
    Inscription : août 2008
    Messages : 22 590
    Points : 125 680
    Points
    125 680

    Par défaut Sortie de CUDA 9.1

    Sortie de CUDA 9.1 avec des améliorations de performance
    et intègre des améliorations de performance et de nouvelles fonctionnalités pour accélérer l'apprentissage profondnd

    NVIDIA veut rester à la pointe de la performance pour tout ce qui concerne l’apprentissage profond et investit donc massivement dans le développement de CUDA, sa solution pour exécuter du code sur ses processeurs graphiques. Un peu plus de six mois après la version 9.0, voici que CUDA 9.1 est disponible.

    Cette nouvelle mouture se concentre sur des améliorations de performance, notamment au niveau des pilotes. Ainsi, lancer un noyau peut être jusque douze fois plus rapide que précédemment. Toujours au niveau du cœur de CUDA, le compilateur est maintenant plus rapide et est compatible avec de nouvelles versions d’autres compilateurs : XLC 13.1.6 pour AIX, Clang 4 sur Linux et Intel C++ 17.0 (pour ce dernier, toutes les fonctionnalités C++14 sont maintenant disponibles). Une petite restriction a été apportée au niveau du langage : les opérateurs ne peuvent plus être marqués __global__ ; en réalité, précédemment, cette annotation était tolérée dans le langage, mais ne fonctionnait pas à tous les coups et pouvait occasionner des plantages à l’exécution.

    Les bibliothèques standard CUDA ont vu plus de modifications. Pour les calculs de FFT, cuFFT est nettement plus efficace sur plusieurs GPU grâce à une série d’heuristiques qui diminuent la consommation de mémoire. En algèbre linéaire, cuBLAS dispose de deux nouvelles fonctions de multiplication entre matrices en spécifiant les précisions données et voulues : ainsi, on peut exploiter au mieux les cœurs tensoriels des nouveaux GPU Volta ; ces deux fonctions seront surtout utiles pour les applications de traduction et de modélisation de séquences avec des réseaux neuronaux profonds. Les NPP (NVIDIA Performance Primitive) reçoivent plus de nouvelles fonctionnalités, de nouvelles routines d’augmentation des images. Celles-ci incluent un bon nombre d’opérations morphologiques, mais aussi d’étiquetage de composantes connectées.

    Télécharger CUDA 9.1.

    Sources : What’s New in CUDA, notes de version.

    Et vous ?

    Que pensez-vous de cette nouvelle version de CUDA ?
    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 !

Discussions similaires

  1. Sortie de CUDA 7.5
    Par dourouc05 dans le forum CUDA
    Réponses: 10
    Dernier message: 09/09/2015, 10h02
  2. Réponses: 5
    Dernier message: 18/03/2015, 19h12
  3. CUDA, C++, Qt : Sortie anticipée de fonction
    Par brugere dans le forum C++
    Réponses: 6
    Dernier message: 07/03/2013, 12h05
  4. Réponses: 5
    Dernier message: 13/04/2010, 12h31
  5. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 12h28

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