-
Notifications
You must be signed in to change notification settings - Fork 28
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
Disable Threading for NFFT | does not work and produces NaN
s
#117
Comments
NaN
s
The NFFT plan has state and is therefore not thread safe. You need to make one plan per thread. We do this within MRIReco. |
Ah, thanks! 😄 But still, NFFT is using more than 1 core if |
yes, that is probably because in The more deeper problem is that |
For FFTW I believe that How do you do it in MRIReco? Is that NFFT threaded and you thread the for loop over it? |
In general we try to use nested parallelism, which seems to work ok. This means we have cases that are highly oversubscribed. I just recall that there was some issue with FFTW. Therefore if we copy the NFFTPlan, we do set the number of FFTW threads to 1 (implicitly) in this line: Nested parallelism requires the |
I see. Do you have an idea what's the best performance for CUDA in this case? A naive for loop and calling CuNFFT in each iteration is not that fast. Hence, I was wondering if we can speed this up by using KernelAbstractions to parallelize the loop with CUDA. |
Hi!
I wanted to disable threading such that I can calculate the NFFT along the first two dimensions, and loop myself along the third dim.
The for loop should be threaded since that should be more beneficial than threading the NFFT itself.
However, I can still see some threading happening.
Even worse, if I wrap a manual
Threads.@threads
in a loop, the results containNaN
s. Interestingly, usingnfft
directly, and not the plan, noNaN
s.Code:
The text was updated successfully, but these errors were encountered: