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

Calcul scientifique Python Discussion :

matplotlib exploiter gpu


Sujet :

Calcul scientifique Python

  1. #1
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Billets dans le blog
    9
    Par défaut matplotlib exploiter gpu
    Bonjour, est il possible d'exploiter le gpu avec matplotlib ?

    En regardant sur internet y'a pas mal de discussion la dessus, mais aucun ne donne de code comme exemple

    http://cyrille.rossant.net/hardware-...ion-in-python/
    https://devtalk.nvidia.com/default/t...ion-in-python/
    http://droettboom.com/blog/2013/03/2...ssons-learned/
    https://groups.google.com/forum/#!to...py/52EVKpEbt8I

    Ils disent que c'est possible, mais pas comment..., quelqu'un a t'il un exemple à me montrer ?

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 754
    Par défaut
    Salut,

    Citation Envoyé par sazearte Voir le message
    est il possible d'exploiter le gpu avec matplotlib ?
    matplotlib n'est qu'un outil de visualisation de données qui utilise un backend graphique (Tk, Qt,...) pour afficher ses graphiques. De fait, la biblio. est seulement capable de faire ce que la bibliothèque graphique utilisée "en dessous" saura faire.
    Les GPU permettant de faire des calculs parallèles, la question serait plutôt de savoir si une bibliothèque comme numpy serait capable d'en profiter. Et là votre moteur de recherche favori devrait sortir solutions et exemples.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Billets dans le blog
    9
    Par défaut
    Les GPU permettant de faire des calculs parallèles, la question serait plutôt de savoir si une bibliothèque comme numpy serait capable d'en profiter. Et là votre moteur de recherche favori devrait sortir solutions et exemples.
    Oui et non.

    En faite je trouve matplotlib lent, quand y'a beaucoup de données à afficher, sa lag, le cpu monte a 25% (j'ai un processeur 4core, matplotlib n'en exploite qu'1).
    J'aimerais optimiser l'affichage. peut importe si j'utilise numpy ou une simple liste, le plotting c'est matplotlib qui le gère.

    Comme je sais que l'on peut faire de la visualisation de donnée avec le gpu, je me suis dit y'a peut être moyen de dire a matplotlib de passer par le gpu.

    Voici un exemple montrant mon problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import numpy
    import matplotlib
    import pylab
     
    matplotlib.use('TkAgg')
    pylab.plot(numpy.random.random_integers(0,100,10000))
    pylab.show()
    J'ai beaucoup de points à afficher.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 754
    Par défaut
    Citation Envoyé par sazearte Voir le message
    Comme je sais que l'on peut faire de la visualisation de donnée avec le gpu, je me suis dit y'a peut être moyen de dire a matplotlib de passer par le gpu.
    Relisez votre code: vous utilisez explicitement le backend tkinter.
    La liste des backends actuellement disponibles pour matplotlib est donnée ici.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Billets dans le blog
    9
    Par défaut
    Relisez votre code: vous utilisez explicitement le backend tkinter.
    La liste des backends actuellement disponibles pour matplotlib est donnée ici.
    Ok, vous pensez qu'en changeant de backend il pourrais y avoir de meilleur performance ?:

    http://matplotlib.org/faq/usage_faq.html

    GTKAgg
    GTK3Agg
    GTK
    GTKCairo
    GTK3Cairo
    WXAgg
    WX
    TkAgg
    Qt4Agg
    Qt5Agg

    Le quelle serait le plus performant ?
    A part QT et Tk, les autres je ne les connais pas.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 754
    Par défaut
    Citation Envoyé par sazearte Voir le message
    Ok, vous pensez qu'en changeant de backend il pourrais y avoir de meilleure performance
    Votre question était "est il possible d'exploiter le gpu avec matplotlib ?". J'ai essayé de vous expliquer que c'était d'abord une question de backend.

    Si elle devient "comment obtenir de meilleures performances", probable qu'il existe de meilleures façons d'utiliser matplotlib pour tracer plein de lignes (et sans GPU). Peut être que les performances que vous attendez dans vos cas d'utilisation ne sont pas réalistes que ce soit avec matplotlib ou une autre bibliothèque. Pour moi, le problème que vous cherchez à résoudre n'est pas clair.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Billets dans le blog
    9
    Par défaut
    Je vais reformuler:

    Actuellement matploltib utilise le CPU avec le backend Tk.
    Malheureusement ce système n'utilise qu'un core de processeur, sa limite sa puissance à 25% chez moi.

    J'aimerais optimiser cela, soit en permettant à matplotlib d'exploiter plus d'1 core, soit en utilisant le GPU.

    En faisant des recherche, j'avais eu l'impression que le GPU était la meilleur solution.

    Au final CPU/GPU je m'en tamponne, ce que je veut c'est que matplotlib ne soit plus bridé a 25% du cpu.
    A parlant du backend, je pense que le problème viens de tkinter qui lui ne peut tourner que dans 1 seul core, c'est peut être lui qui bride matploltib ? En utilisant QT sa peut peut être améliorer les choses ?

    Pour faire simple, j'aimerais optimiser ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import numpy
    import matplotlib
    import pylab
     
    matplotlib.use('TkAgg')
    pylab.plot(numpy.random.random_integers(0,100,10000))
    pylab.show()
    Évidement, ce que je souhaite optimiser c'est pas le random ni le plot, mais le pylab.show()
    Quand je déplace la souris dans le graphique sa ram, et mon core cpu montre a 25%. J'ai donc 2 solutions: j'arrive à faire du multi-core, ou j'exploite le gpu. Mais es ce possible ?

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 754
    Par défaut
    Citation Envoyé par sazearte Voir le message
    JAu final CPU/GPU je m'en tamponne, ce que je veut c'est que matplotlib ne soit plus bridé a 25% du cpu.
    CPython et la plupart des bibliothèques graphiques (y compris Qt) ne savent pas utiliser plus d'un CPU...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Billets dans le blog
    9
    Par défaut
    D'ou ma question initial, peut on utiliser le gpu

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 754
    Par défaut
    Citation Envoyé par sazearte Voir le message
    D'ou ma question initial, peut on utiliser le gpu
    Et ben la réponse est non, et je dirais même que c'est pas demain la veille compte tenu du "gap" qu'il y a dans l'interface entre matplotlib et ses backends et celle que propose un OpenGL.
    Ceci dit, pour visualiser de gros ensembles de données, il y a d'autres solutions (vispy par exemple). Et elles sont plus ou moins stables, portables, adaptées,... à ce que vous voulez faire.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 83
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 57
    Par défaut Possibilité que je n'ai pas explorée
    Bonjour
    tu peux éventuellement regarder du coté de vispy à http://vispy.org/
    C'est, si j'ai bien compris, un projet non finalisé mais quand même opérationnel.

Discussions similaires

  1. [FAQ] [3D] Comment exploiter le parallelisme entre CPU et GPU ?
    Par Laurent Gomila dans le forum Contribuez
    Réponses: 3
    Dernier message: 19/05/2006, 21h58
  2. Exploitation de base sur un serveur Web
    Par Oz-WereWolf dans le forum Installation
    Réponses: 10
    Dernier message: 07/03/2004, 22h52
  3. [VB6] Exploiter un doc PowerPoint avec VB
    Par Tranber dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 04/09/2002, 16h22
  4. [TP7]systeme d'exploitation
    Par numeror dans le forum Turbo Pascal
    Réponses: 10
    Dernier message: 15/08/2002, 08h47
  5. PB mise en exploitation
    Par DiceChris dans le forum CORBA
    Réponses: 21
    Dernier message: 05/07/2002, 16h05

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