Implement Circular Gauss Mask Optim AVX
Closed, ResolvedPublic

Description

Implement vectorized Circular Gauss

  • Create prototype
  • Refine prototype, adjust it to be less of a prototype
  • Gauss Soft passes test
  • Code profiling: Optimize!
  • Release
vanyossi created this task.May 17 2018, 6:49 AM

Done so far:

  • CircularGauss Passes all tests. However this cases proved that the test case needs to add Fade variation to the mix
  • Optimization: First BIG issue was the erf() function to calculate gaussian fadeout, They were some improvements in time but doing the heavy calculations as scalar made the new version almost as slow as the scalar version.
  • Erf vectorized function: vectorized numeric aproximation proved to be sufficient to aproximate value to the used error used by GaussMask. some normalization problems due to Vc::float_v precision must be investigated further ( difference exact values yields a round error, instead of zero). Vectorized function makes Gauss mask 6x faster than scalar version

Release : Need code review! Possibly all Vectorize functions would need a header for them. So far only one function is necesary si it lies inside the struct that needs it. however this is not very good for organization... probably.

vanyossi added a revision: Restricted Differential Revision.May 23 2018, 2:22 AM
vanyossi closed this task as Resolved.Sep 5 2018, 5:30 PM