Yichao, Oscar, and I were unhappy with the current state of vectorization 
of operations involving complex numbers and other immutables so I decided 
to do something about it. I'm pleased to announce StructsOfArrays.jl 
<https://github.com/simonster/StructsOfArrays.jl>, which performs the Array 
of Structures -> Structure of Arrays memory layout optimization without 
requiring code changes. This alternative memory layout permits SIMD 
optimizations for immutables for which such optimizations would not 
otherwise be possible or profitable, either because of limitations of the 
Julia codegen and LLVM optimizer or because of the type of the operations 
performed. The benchmark in the README shows that StructsOfArrays can give 
non-negligible speedups for simple operations involving arrays of complex 
numbers.

Simon

Reply via email to