You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A StructOfArrays(JonesMatrix, dims...) creates 4 Array{Complex64}s. What we really want is 8 Array{Float32}s.
I experimented with a SplayedJonesMatrix type that stores the real and imaginary components of the elements separately (to fix the previous problem). However this makes the code pretty ugly.
Furthermore, I couldn't get the inner calibration loop to vectorize. Possibly because expanding the complex matrix multiplies in terms of real operations spooks the compiler with too much complexity. Not 100% sure though (I did make sure as much as possible was getting inlined..)
This may still be useful for the unpolarized calibration.
Closing because I no longer think this is the right thing to do to get SIMD vectorization. My current thinking is that maybe SIMD.jl might be helpful for this, but it will require some work that I don't think is terribly important right now.
I should be able to eek out some more performance by using StructsOfArrays.jl to SIMD vectorize the inner calibration loop.
The text was updated successfully, but these errors were encountered: