fftw-3.3.10

Introduction à fftw

FFTW est une bibliothèque de sous-routines C pour calculer la transformée de Fourier discrète (DFT) en une ou plusieurs dimensions, d'une taille d'entrée quelconque, et pour des données réelles ou complexes (mais aussi pour les données pair/impair c'est-à-dire la transformée cosinus / sinus (DCT/DST)).

Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.2.

Informations sur le paquet

  • Téléchargement (HTTP) : https://www.fftw.org/fftw-3.3.10.tar.gz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 du téléchargement : 8ccbf6a5ea78a16dbc3e1306e234cc5c

  • Taille du téléchargement : 4,0 Mo

  • Estimation de l'espace disque requis : 59 Mo

  • Estimation du temps de construction : 1,6 SBU (plus 3,4  pour les tests, tous deux avec parallélisme = 4)

Installation de fftw

[Note]

Note

Nous construisons fftw trois fois pour construire plusieurs bibliothèques dans des précisions numériques différentes : la précision en double flottant par défaut, l'ancienne version 32-bits (en simple précision) nommée float qui sacrifie la précision pour la vitesse et la double précision longue qui offre une meilleure précision contre une exécution plus lente.

La première construction correspond à l'arithmétique en double précision. Installez fftw en exécutant les commandes suivantes :

./configure --prefix=/usr    \
            --enable-shared  \
            --disable-static \
            --enable-threads \
            --enable-sse2    \
            --enable-avx     \
            --enable-avx2    &&
make

Pour tester les résultats, lancez : make check. Sur les systèmes 32 bits, les tests peuvent prendre bien plus de temps que pour les machines 64 bits.

Maintenant, en tant qu'utilisateur root :

make install

Maintenant construisez la simple précision :

make clean &&

./configure --prefix=/usr    \
            --enable-shared  \
            --disable-static \
            --enable-threads \
            --enable-sse2    \
            --enable-avx     \
            --enable-avx2    \
            --enable-float   &&
make

En tant qu'utilisateur root :

make install

Enfin, construisez la double précision longue :

make clean &&

./configure --prefix=/usr    \
            --enable-shared  \
            --disable-static \
            --enable-threads \
            --enable-long-double &&
make

En tant qu'utilisateur root :

make install

Explication des commandes

--enable-shared --disable-static : utilise les bibliothèques partagées plutôt que les bibliothèques statiques.

--enable-threads : ceci active la compilation de libfftw3_threads.so. Elle est utilisée par exemple par le greffon gimp de G'MIC.

--enable-{sse2,avx,avx2} : ces paramètres activent la construction des routines optimisées avec les instructions SSE2, AVX et AVX2. FFTW vérifiera si ces routines peuvent être utilisées sur le CPU actuel lorsque la bibliothèque FFTW est chargée, donc une construction de FFTW avec ces routines activées peut toujours fonctionner sur un CPU sans SSE2, AVX ou AVX2. Ces options ne sont pas compatibles avec --enable-long-double.

--enable-float : Cela active la compilation de la bibliothèque qui utilise l'arithmétique des flotants en simple précision. Elle est plus rapide mais moins précise que la bibliothèque en double précision par défaut. La bibliothèque s'appellera libhfftw3f.so et est requise par PulseAudio-17.0.

--enable-long-double : Cela active la compilation de la bibliothèque qui utilise l'arithmétique des flotants en double précision longue. La bibliothèque s'appellera libfftw3l.so.

--enable-avx512 : cela active la construction des routines optimisées avec les instructions AVX512F. FFTW vérifiera si ces routines peuvent être utilisées sur le CPU actuel lorsque la bibliothèque FFTW est chargée, donc une construction de FFTW avec ces routines activées peut toujours fonctionner sur un CPU sans AVX512F. Utilisez cette option si FFTW sera utilisé sur un CPU avec AVX512F. Cette option n'est pas compatible avec --enable-long-double.

Contenu

Programmes installés: fftw-wisdom et fftw-wisdom-to-conf
Bibliothèques installées: libfftw3.so, libfftw3_threads.so, libfftw3f.so, libfftw3f_threads.so, libfftw3l.so et libfftw3l_threads.so
Répertoires installés: Aucun

Descriptions courtes

fftw-wisdom

est un utilitaire pour générer des fichiers FFTW wisdom, qui contiennent les informations enregistrées sur le calcul optimal de transformées de diverses tailles

fftw-wisdom-to-conf

est une utilitaire pour générer des routines de configuration en C à partir des fichiers FFTW wisdom, ce dernier contenant les informations enregistrées sur le calcul optimal de transformées de diverses tailles

libfftw3.so

est la bibliothèque contenant la transformée de Fourier rapide

libfftw3_threads.so

est la bibliothèque parallèle contenant la transformée de Fourier rapide

libfftw3f.so

est la bibliothèque en précision simple contenant la transformée de Fourier rapide, décrite comme étant « float » pour des raisons historiques

libfftw3f_threads.so

est la bibliothèque parallèle à simple précision contenant la transformée de Fourier rapide

libfftw3l.so

est la bibliothèque contenant la transformée de Fourier rapide en double flottant long

libfftw3l_threads.so

est la bibliothèque parallèle contenant la transformée de Fourier rapide en double flottant long