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

common use cases of FFTs in image processing/analysis #4

Open
psteinb opened this issue Jul 15, 2020 · 4 comments
Open

common use cases of FFTs in image processing/analysis #4

psteinb opened this issue Jul 15, 2020 · 4 comments

Comments

@psteinb
Copy link

psteinb commented Jul 15, 2020

Dear @haesleinhuepf @bnorthan ,

don't panic, nothing wrong with clij2. ;-) Not sure if this is the right place to ask, maybe the imagej forums might be worth trying as well.
My student @zyzzyxdonta is working on benchmarking FFTs on Power9 and ARM platforms. One of his examiners critized our benchmarking approach as non-realistic. We basically conduct warm-up runs on our synthetic data and then "only" measure the hot cache runs following this to obtain an ensemble of time measurements. This gives us more sound statistics to make inferences and compare.

So I'd love to know, where people use FFTs and with which data. So I am interested in the following questions:

  • what transforms do people use most of the time
    a) real2complex
    b) complex2complex
    c) complex2real
    My guess for the image analysis community would be a+c.
  • what are the typical signal sizes/shapes and types for the inputs: how many elements, how many dimensions, what are the datatypes used (float or double)
    No guess for this one.
  • Are FFTs used mostly in a one-off manner or or people interested in fast FFTs only if they are executed in recursive/iterative applications (think Richardson-Lucy deconvolutions)
    My guess would be that people are interested in fast FFTs for the latter exclusively.

I know that these are quite general questions, but at least some sample answers would help us.

Best,
@psteinb

@bnorthan
Copy link
Collaborator

Deconvolution using Richardson Lucy involves repeated iterations (usually 100+) of a) followed by c). I've always used floats to save memory and improve speed.

I think this would be a great question for the forum. I'm very interested in hearing about other projects and algorithms that need fast FFTs. It may lead to some opportunities for collaboration.

@jkelling
Copy link

* Are FFTs used mostly in a one-off manner or or people interested in fast FFTs only if they are executed in recursive/iterative applications (think Richardson-Lucy deconvolutions)
  **My guess would be that people are interested in fast FFTs for the latter exclusively.**

I would like to point out, that iterative is not identical with cache-reuse. You are probably right, that most applications use FFTs in iterative settings, but during each iteration step other things will have happen which may expel the FFT inputs from cache.

@psteinb
Copy link
Author

psteinb commented Jul 16, 2020

@bnorthan I'll take your comment as a motivation to stick my neck out. ;-) What could possibly go wrong?

@psteinb
Copy link
Author

psteinb commented Jul 16, 2020

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

No branches or pull requests

3 participants