Introduksjon til fftw
FFTW er et C subrutinebibliotek for å beregne den diskrete Fourier
transform (DFT) i en eller flere dimensjoner, av vilkårlig
inngangsstørrelse, og av både reelle og komplekse data (så vel som
partall/oddetallsdata, dvs diskrete cosinus/sinus transformasjoner
eller DCT/DST).
Notat
Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen
pakker riktig hvis LFS eller avhengigheter har blitt oppdatert
siden den siste stabile versjonene av bøkene.
Pakkeinformasjon
-
Nedlasting (HTTP): https://www.fftw.org/fftw-3.3.10.tar.gz
-
Nedlasting MD5 sum: 8ccbf6a5ea78a16dbc3e1306e234cc5c
-
Nedlastingsstørrelse: 4.0 MB
-
Estimert diskplass som kreves: 59 MB
-
Estimert byggetid: 1.6 SBU (legg til 3,4 SBU for tester,
begge med parallellisme=4)
Installasjon av fftw
Notat
Vi bygger fftw tre ganger for ulike biblioteker i ulike numeriske
presisjoner: standard flytepunkt med dobbel presisjon, den eldre
32-biters (enkel presisjon) versjon kalt float som ofrer
presisjon for hastighet, og den lange doble som tilbyr økt
presisjon på bekostning av tregere utførelse.
Det første bygget er for aritmetikk med dobbel presisjon.
Installere fftw ved å kjøre
følgende kommandoer:
./configure --prefix=/usr \
--enable-shared \
--disable-static \
--enable-threads \
--enable-sse2 \
--enable-avx \
--enable-avx2 &&
make
For å teste resultatene, utsted: make
check. På 32-bits systemer kan testene ta betydelig
lengre tid enn de ville på 64-bits maskiner.
Nå, som root
bruker:
make install
Bygg nå enkeltpresisjon:
make clean &&
./configure --prefix=/usr \
--enable-shared \
--disable-static \
--enable-threads \
--enable-sse2 \
--enable-avx \
--enable-avx2 \
--enable-float &&
make
Som root
bruker:
make install
Bygg til slutt lang dobbel presisjon:
make clean &&
./configure --prefix=/usr \
--enable-shared \
--disable-static \
--enable-threads \
--enable-long-double &&
make
Som root
bruker:
make install
Parameterforklaringer
--enable-shared
--disable-static
: Bruk delte
biblioteker i stedet for statiske biblioteker.
--enable-threads
: Dette
aktiverer libfftw3_threads.so
til å
bli kompilert. Det brukes av f.eks. gimp programtillegget fra G'MIC.
--enable-{sse2,avx,avx2}
:
Disse aktiverer bygging av de optimaliserte rutinene ved å bruke
SSE2, AVX og AVX2 instruksjoner. FFTW vil sjekke om disse rutinene
virkelig kan brukes på gjeldende CPU når FFTW biblioteket er
lastet, så et FFTW bygg med disse rutinene aktivert kan fortsatt
kjøre på en CPU uten SSE2, AVX eller AVX2. Disse alternativene er
ikke kompatible med --enable-long-double
.
--enable-float
: Dette
aktiverer bygging av biblioteket som bruker enkeltpresisjon
flytepunktaritmetikk. Det er raskere, men mindre presis enn
standard dobbel presisjonsbibliotek. Biblioteket blir kalt
libfftw3f.so
som trengs av PulseAudio-17.0.
--enable-long-double
: Dette
aktiverer bygging av biblioteket som bruker høyere presisjon
lang-dobbel flytende punkt-aritmetikk. Biblioteket blir kalt
libfftw3l.so
.
--enable-avx512
: Dette aktiverer
bygging av optimaliserte rutiner ved hjelp av AVX512F
instruksjoner. FFTW vil sjekke om disse rutinene virkelig kan
brukes på gjeldende CPU når FFTW biblioteket er lastet, så et FFTW
bygg med disse rutinene aktivert kan fortsatt kjøres på en CPU uten
AVX512F. Bruk dette alternativet hvis FFTW bygget skal brukes på en
CPU med AVX512F. Dette alternativet er ikke kompatibelt med
--enable-long-double
.