fftw_flags
choix de la méthode pour la sélection de l'algorithme de planification pour la fft
Séquence d'appel
[a,[S]]=fftw_flags(flag)
Paramètres
- flag
une chaîne de caractères ou bien un entier. Sert à spécifier l'algorithme de planification. Voir ci-dessous.
- a
un entier. Code de l'algorithme de planification. Voir ci-dessous.
- S
une chaîne de caractères. Le nom de l'algorithme de planification.
Description
Cette fonction permet la sélection de l'algorithme utilisé pour déterminer l'algorithme de planification de fftw. Le planificateur est utilisé pour déterminer un moyen efficace pour calculer la fft.
Attention: la valeur par défaut "FFTW_ESTIMATE" donne le plus
souvent de bonnes performances. N'essayez d'autres choix que si
la performance est cruciale et que vous avez beaucoup d'appels
du même type à effectuer. |
Les entrées possibles sont :
{FFTW_ESTIMATE} ou 64. Selectionne une heuristique simple et peu couteuse pour choisir un plan (probablement sous-optimal). C'est la valeur par défaut.
FFTW_MEASURE ou 0. Selectionne une méthode consistant a effectuer plusieurs calcul de fft avec des planifications différentes, à mesurer leur temps d'exécution et de choisir la meilleure planification. En fonction de votre machine, cela peut prendre un certain temps (souvent quelques secondes).
FFTW_PATIENT ou 32. Similaire à "FFTW_MEASURE", mais considère un plus large éventail d'algorithmes et produit souvent un plan plus efficace (en particulier pour les transformations importantes). En revanche, le coût de la détermination du plan peut être largement supérieur (en particulier pour les transformations importantes).
FFTW_EXHAUSTIVE ou 8. Comme "FFTW_PATIENT", mais considère une gamme encore plus large d'algorithmes, visant a trouver le plan optimal , mais avec un temps de planification sensiblement augmenté.
Remarque : Lors de l'utilisation des méthodes FFTW_MEASURE/FFTW_PATIENT/FFTW_EXHAUSTIVE la fonction fftw doit être appélée au moins deux fois. (le premier appel est pour l'initalisation, le second et les autres pour le calcul)
Exemples
A=rand(1, 2^9 + 2^15); fftw_forget_wisdom(); fftw_flags("FFTW_ESTIMATE"); timer(); y=fft(A); timer()//premier appel, détermine le plan timer(); y=fft(A); timer() //appels similaires suivants fftw_flags("FFTW_MEASURE"); fftw_forget_wisdom(); timer(); y=fft(A); timer()//premier appel, détermine le plan, prend environ 5min timer(); y=fft(A); timer() //appels similaires suivants
Voir aussi
- fft — Transformée de Fourier discrète directe ou inverse uni-, bi-, ou N-dimensionnelle
- set_fftw_wisdom — charge un wisdom fftw
- get_fftw_wisdom — retourne le wisdom fftw
- fftw_forget_wisdom — Réinitialise le wisdom fftw
Report an issue | ||
<< FFTW | FFTW | fftw_forget_wisdom >> |