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

Langage C++ Discussion :

Calcul matriciel pour plugin temps réel


Sujet :

Langage C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieux du son
    Inscrit en
    Février 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieux du son
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2013
    Messages : 29
    Points : 17
    Points
    17
    Par défaut Calcul matriciel pour plugin temps réel
    Salut à vous,
    Je planche sur un projet de plugins audio (dll type vst de Steinberg) qui utilise en grande du calcul matriciel, principalement additions multiplication et une inversion sur des matrices de tailles assez petites (environ 10 max).
    Pour le moment j'utilise la librairie Eigen, mais les opérations semblent très gourmandes...
    J'ai du mal à comprendre ce qu'est la vectorization, et j'ai des erreurs de compilation avec certaines options de Eigen.
    Est-ce que l'un d'entre vous connaît Eigen et aurait une piste pour utiliser au mieux cette librairie?
    Sinon est-ce que vous connaissez d'autres librairie de calcul matriciel qui serait adapté?
    Sachant que je souhaite une librairie C++, qui soit utilisable sur Visual ET XCode, qui ne soit pas très contraignante en terme de licence.
    On m'a aussi conseillé Mumps, mais la procédure pour compiler sous windows m'a vite refroidi... d'autant que je n'ai pas trouvé de Benchmark la comparant avec Eigen, et il me semble avoir lu que les librairies de type BLAS, ne sont pas vraiment avantageuse pour des matrices de petites tailles...
    Des experts sur la question?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 69
    Points : 53
    Points
    53
    Par défaut
    Salut,

    C'est peux être bête comme question, mais si c'est "juste" pour du calcul matriciel simple, pourquoi tu ne développes pas ta propre classe de calcul?

    Cordialement,

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieux du son
    Inscrit en
    Février 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieux du son
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2013
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Salut boubouboy,
    J'ai déjà écris ma propre classe de calcul matriciel, mais je ne pense pas avoir les compétences pour rivaliser avec les librairies existantes...
    J'ai écris un petit programme pour faire un "benchmark" entre la lib Eigen, la lib TooN et ma classe dédiée.
    En comparant des opérations simples sur des petites matrices, et un test plus concret sur le calcul à optimiser.
    Les résultats sont très variables, mais globalement TooN paraît nettement plus rapide devant ma librairie et Eigen dernier!
    Je vais faire des test plus approfondis et essayer d'autres librairies : Blitz++ et Armadillo pour le moment.
    Mais si vous connaissez des librairies ou des conseils efficaces je suis preneur!

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Salut,

    perso quand je bidouille du OpenGL j'utilise glm
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    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 : 624
    Points
    624
    Par défaut
    Salut

    Eigen est une bonne bibliothèque mais elle n'est pas des plus simples à utiliser.
    Utilise plutôt armadillo + openblas.
    http://arma.sourceforge.net/
    http://www.openblas.net/

    glm c'est surtout pour de la géométrie 3D en coordonnées homogènes (c'est à dire des matrices 4x4 max) donc non.
    mumps c'est pour du parcimonieux (c'est à dire des grosses matrices creuses) donc non.
    blitz++ c'est un concurrent de eigen/armadillo donc ça devrait convenir aussi.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieux du son
    Inscrit en
    Février 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieux du son
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2013
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Merci pour ces conseils, effectivement j'ai regardé rapidement GLM, mais pas du tout adapté à mon cas...
    Je n'ai pas encore eu le temps de tester une nouvelle lib, juste un peu de temps pour chiner encore des infos sur le net. Mais je vais sûrement me pencher sur Armadillo en premier en effet!
    Par contre Zobal je ne comprends pas pourquoi tu dis que Eigen est compliquée à utiliser?
    Aucune installation nécessaire, juste un header à inclure, pas d'autres librairies à installer.
    Aussi j'ai encore trouvé deux autres librairies intéressantes : Blaze et Elemental https://github.com/elemental/Elemental
    Et petite précision importante, toutes les tailles de mes matrices sont connues à la compilation donc je n'utilise que des matrices templates.

Discussions similaires

  1. Meilleur solution pour du temps réel
    Par Kartel dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 24/07/2009, 10h50
  2. calculs matriciels pour CDT et ICDT
    Par leberger6183 dans le forum Mathématiques
    Réponses: 1
    Dernier message: 14/05/2007, 16h30
  3. [Java]Solutions graphiques pour jeu temps réel (titre édité)
    Par Zeil dans le forum Développement 2D, 3D et Jeux
    Réponses: 6
    Dernier message: 18/03/2006, 05h53
  4. SGBDR pour jeu temps réel ?
    Par vmolines dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 20/07/2005, 16h17

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