Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pure xtensor FFT implementation #2782

Merged
merged 3 commits into from
Jul 1, 2024
Merged

Conversation

spectre-ns
Copy link
Contributor

@spectre-ns spectre-ns commented Apr 24, 2024

Checklist

  • The title and commit message(s) are descriptive.
  • Small commits made to fix your PR have been squashed to avoid history pollution.
  • Tests have been added for new features or bug fixes.
  • API of new functions and classes are documented.

Description

@spectre-ns
Copy link
Contributor Author

spectre-ns commented Apr 24, 2024

@tdegeus Try again on the FFT PR. :)

@spectre-ns
Copy link
Contributor Author

@JohanMabille I thought you might like this to help fill out the numpy interface farther.

@JohanMabille
Copy link
Member

JohanMabille commented Jul 1, 2024

Thanks! We also have FFTW bindings, although not maintained for a while. It might be interesting to compare the results and performance.

@JohanMabille JohanMabille merged commit edc67a3 into xtensor-stack:master Jul 1, 2024
13 checks passed
@spectre-ns
Copy link
Contributor Author

We also have FFTW bindings, although not maintained for a while. It might be interesting to compare the results and performance.

@JohanMabille Yeah I use the FFTW binding in some production code but it's nice to get something for prototyping without the extra dependencies. Also, FFTW is GPL licensed which meant we had to link against MKL instead.

I expect the performance from FFTW will be far superior because I didn't implement any memory pools or plans. Thus, there is dynamic memory allocation each time this is called in the hot path. We could implement it such that when used with xfixed the operation is completely fused and unwrapped which would have an advantage over FFTW... FFTW is crazy fast though so I don't know if xtensor would win versus the hand rolled implementation in FFTW.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants