-
Notifications
You must be signed in to change notification settings - Fork 18
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
Use SIMD #40
Comments
I haven’t tested it, but I bet it would.
If you want to do a little of this yourself, a good place to start would be
some simple loops. In mixed_radix.rs, search for “// STEP 3: Apply twiddle
factors”
On one hand, this loop is simple enough that it would be easy to convert to
a SIMD iterator. On the other hand, it’s simple enough that he compiler
might be automatically converting it. So a helpful place for you to start
would be, what is the compiler currently putting out for this loop in
optimized builds?
If it turns out that it’s not already putting out simd instrucions, I can
think of several simple loops like that that wcould be easily converted to
a SIMD iterator
…On Wed, Dec 12, 2018 at 9:34 AM Jim Rybarski ***@***.***> wrote:
Would it be feasible and beneficial to add SIMD instructions?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#40>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABGmepouK36CLeUPP3wZuYx2lPJ80kR5ks5u4T47gaJpZM4ZQHQy>
.
|
For a more complicated function that might benefit, check out “butterfly_4”
in radix4.rs. This would require more thinking to convert, but I bet the
compiler has a harder time auto-converting it
|
I looked into the assembly of DFT and there is definitely no auto-vectorization going on. I will try to fix it and create a PR afterward |
Hi @superblaubeere27 and @jimrybarski you might be interested to know that in the "simd" branch, I currently have an AVX implementation that outperforms FFTW. It's not ready for release yet (Requires nightly, will fail to compile if you're not targeting x86_64, no way to opt-out of all the AVX code, way too much unsafe) but if you want some faster FFTs, I would love to have someone test it out! |
The simd branch in my own fork https://github.com/ejmahler/RustFFT/tree/simd |
RustFFT 5.0 has an implementation of AVX. I will implement SSE Some Time Soon, and neon/avx512 when i can get a machine to test them on + rust stabilizes them. FYI, all rust developemt will be happening in https://github.com/ejmahler/RustFFT from now on. |
Would it be feasible and beneficial to add SIMD instructions?
The text was updated successfully, but these errors were encountered: