Discussion:
[julia-users] ANN: StructsOfArrays.jl
Simon Kornblith
2015-07-30 17:38:17 UTC
Permalink
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
Stefan Karpinski
2015-07-30 18:14:07 UTC
Permalink
The ease with which you were able to put that together is pretty amazing.
Post by Simon Kornblith
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
Matt Bauman
2015-07-30 18:32:37 UTC
Permalink
I absolutely love that it's only 43 lines of code!
Post by Stefan Karpinski
The ease with which you were able to put that together is pretty amazing.
Post by Simon Kornblith
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
Loading...