Bonjour à tous

Pour les besoins d'une application audio qui doit tourner en temps réel (un plug-in VST), je dois trouver une librairie de gestion de matrices performante. J'aimerais savoir quelle serait la meilleure pour moi.

J'utilise Visual C++ 2008, les compilateurs MS et Intel pour faire de la vectorisation automatique, avec les instructions SSE2 activées.

Dans mon programme, j'utilise des matrices 2x2 jusqu'à disons 20x20, avec une moyenne à 10x10, dont la taille n'est pas censée varier pendant l'exécution de mon code, sauf pour des interventions ponctuelles de l'utilisateur. J'exécute des opérations d'addition, de multiplication, et d'inversion/résolution de système linéaire seulement.

Bien sûr j'ai regardé déjà ce qui pouvait exister. J'ai développé mon programme avec la librairie eigen dans un premier temps. En utilisant des pointeurs de fonctions, je peux me débrouiller pour utiliser toujours des topologies de matrices à taille fixe, et ainsi optimiser de façon significative mon code, pour obtenir des perfs pas trop mal. Malheureusement, je trouve l'optimisation un peu poussive dans la pratique avec cette librairie. En effet, je dois utiliser l'instruction "noalias()" partout, découper mes opérations matricielles en plusieurs lignes, et utiliser uniquement des tailles de matrices multiples de 4 pour vectoriser.

J'aimerais donc savoir si il existe des alternatives que vous auriez testées et qui seraient plus performantes pour l'utilisation que je compte en faire. J'ai testé armadillo vite fait, mais j'ai des performances bien moins intéressantes et des tas de warnings à la compilation... Qu'est-ce que vaudrait OpenGL Mathematics, ou encore les librairies disponibles avec la suite Intel Composer XE (MKL + IPP) ? J'arrive pas à trouver de benchmarks récents concernant l'ensemble de ces librairies...

Merci d'avance !

Ivan