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)).
Note
Les versions de développement de BLFS peuvent ne pas arriver à
contruire ou à exécuter certains paquets correctement si LFS ou
des dépendances ont été mises à jour depuis la dernière version
stable des livres.
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
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
.