Skip to content

Features list

rtobar edited this page May 9, 2018 · 6 revisions

TODO

  • Add optimized convolution for finesampling case
  • Brute-force OpenCL convolution can use some associative math to speed up further – I have a kind-of-working prototype in a local branch
  • The brute-force associative CPU convolver can still also use some love, probably using SIMD instructions in available platforms. We can also study using float instead of double types during convolution.
  • Using float values instead of doubles is also an option that could be studied for the FFT convolvers.
  • The radial profile profile evaluation can probably be improved, specially during subsampling
    • One easy thing to do is to calculate the val and testval using double2/float2 types to probably execute them in parallel
    • A better understanding of what each kernel is actually doing would be great.
    • I should also think whether organizing this nicely in work groups would bring any benefit
    • Probably a nicer handling of the memory buffers would benefit us...
  • Add Dan's mythical FFT optimization.
    • Dan already added some R/C++ code that does this, it simply needs to be ported, in theory
  • Better implement skinny ellipses. There is a whole mail thread discussion with Dan about this.

Done

  • Add finesampling support in 1.7.0
    • And the "return finesampled" option in 1.7.1
  • Use Dan's R2C/C2R transformations instead of the C2C transformations to implement convolution. This saves up memory and time!
  • Implement FFTW wisdom storage
    • The FFTW wisdom is tread-enablement-dependent, and therefore we basically need to maintain to wisdom files. Alongside this I created a new "profit home" directory concept, which is $HOME/.profit by default but can be something else via an environment variable.
  • Include Dan's improvements to the brokenexp profile – both double and float versions, including my latest patches on ProFit
  • Implement on-disk OpenCL kernel cache. First iteration released in 1.7.0, should work, but we'd need some feedback from our users.
  • Returning uncropped image from convolvers

Cancelled

  • Finish clfft integration.
    • I found an issue with clfft, but on their end they responded that the library is currently in maintenance mode only. Since I didn't try to reproduce the other problem with other platforms back at the time, this means that I would need more time to investigate whether the bug is seen in Beignet only or in other platforms, and then maybe find out whether the bug actually lives in clfft or in Beignet. This is probably not going to happen.
Clone this wiki locally