mn416 / QPULib

Language and compiler for the Raspberry Pi GPU
Other
429 stars 64 forks source link

General Discussion #50

Open wimrijnders opened 6 years ago

wimrijnders commented 6 years ago

This is an issue for discussing general things.

robiwano commented 5 years ago

@mn416 I might have an actually useful application for QPULib: Goertzel transform. This is an alternative calculation for FFT.

I've been thinking about it. This transform can be parallelized something awesome, much better than FFT. Will get back on this after my vacation.

It's really not an alternative, as it only computes single bins from the DFT, albeit efficiently. Nonetheless, it is a very relevant and useful algorithm.

wimrijnders commented 5 years ago

Hi there, great some discussion here.

It's really not an alternative, as it only computes single bins from the DFT, albeit efficiently. Nonetheless, it is a very relevant and useful algorithm.

I can answer this in several layers, I will stick to this one: I did not state that the Goertzel should replace the DFT, I stated that goertzel can be parallelized much better than it. I hope you see the nuance difference.

I realize fully that the Goertzel would not be a direct replacement for FFT, but when you're dealing with limited number of frequencies it's a better alternative.

This will of course not stop me from wanting to do my utmost to get goertzel in competitive shape. I'm actually looking to make some form of progressive benchmarking for both, in the spirit of how the docs are set up in this project. Also, a great finger exercise for getting to grips with GPU programming....and indeed useful for my work, where we use goertzel massively.


EDIT: OK scrolling back I can definitely see how I might have implied it. I don't remember my line of thinking then any more, right now my above comment holds.

robiwano commented 5 years ago

Another issue I'd like input on, I plan to use both GPU_FFT and QPULib in a project for a RPi Zero. But I see potential collision problems, mainly due to mailbox, so I'd like to extract the handling of the mailbox into a separate repository, which I can then use from both GPU_FFT and QPULib.