Matlab/mex - vitesse d'exécution

Fermé
bipbip - 5 oct. 2012 à 13:30
 tchouf - 15 mars 2013 à 14:58
Bonjour,

J'ai un programme sous Matlab qui appelle un histogramme à mémoire. Celui-ci étant plutôt lourd (environ 1 à 6 histogrammes de taille 1500*120*25 de type single), je l'ai codé en C et passé dans un mex pour accélérer les calculs. Seulement, au bout d'une certain nombre N de passages (toujours le même quels que soient les données d'entrée ou le nombre d'histogrammes), le temps d'exécution de mon programme prend un sacré coup...
J'ai testé l'histogramme seul (fichier mex dans un .m) dans une boucle avec des données d'entrées aléatoires. A la N-ième boucle, le temps d'exécution est multiplié par 10.
Je l'ai testé de la même façon mais purement en C. Le temps d'exécution reste constant quel que soit le nombre de boucles.
Ce qui m'a fait penser que ce serait plus un problème de gestion des mex dans Matlab qu'un mauvais codage de mon fichier source.
Du coup, j'ai tenté un clear mex tous les N-x passages. Aucune amélioration.

Quelqu'un a-t-il déjà rencontré ce genre de problème et aurait-il une solution ?
Merci !
A voir également:

1 réponse

Pb tout con en réalité...
Et le pb vient bien de Matlab.
Le truc, c'est qu'il doit y avoir, au fameux Nieme passage, des valeurs qui deviennent trop faibles (du genre de l'ordre de 10e-38 ou moins). Et à ce niveau là, doit y avoir une histoire de re-cast par Matlab, qui fait que ça prend bcp de temps.
0