Use libsleef for power-of-two-sized DFTs #558

Open
opened 2025-08-10 10:27:54 +00:00 by martinwguy · 0 comments
martinwguy commented 2025-08-10 10:27:54 +00:00 (Migrated from codeberg.org)

Use libsleef for power-of-two-sized DFTs

Description

Sleef contains (power-of-two-sized-only?) DFT routines
hand-optimized for SIMD instructions that are usually faster than FFTW3
and should be faster than SoX's built-in power-of-two DFT.

Analysis

libsleef is included in most major distros.

sox_ng wants to move towards allowing non-power-of-two-sized DFTs where
they are currently of fixed size #280 (everywhere except spectrogram #283)
but in the meantime, if SleefDFT proves significantly faster than SoX's
built-in power-of-two-size routine, it would be worth using it if available.

Conclusion

Try using SleefDFT for the 2^n FFTs and see if it's significantly faster.

# Use libsleef for power-of-two-sized DFTs ## Description [`Sleef`](https://sleef.org) contains (power-of-two-sized-only?) [DFT routines](https://sleef.org/dft.xhtml) hand-optimized for SIMD instructions that are [usually faster than FFTW3](https://sleef.org/benchmark.xhtml#dft) and should be faster than SoX's built-in power-of-two DFT. ## Analysis [`libsleef` is included](https://repology.org/project/sleef/versions) in most major distros. `sox_ng` wants to move towards allowing non-power-of-two-sized DFTs where they are currently of fixed size #280 (everywhere except `spectrogram` #283) but in the meantime, if SleefDFT proves significantly faster than SoX's built-in power-of-two-size routine, it would be worth using it if available. ## Conclusion Try using SleefDFT for the 2^n FFTs and see if it's significantly faster.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
martinwguy/sox_ng#558
No description provided.