On Friday, 3 November 2017 at 10:02:18 UTC, Mike Parker wrote:
On Friday, 3 November 2017 at 09:33:31 UTC, Walter Bright wrote:
On 11/3/2017 2:28 AM, Daniel Kozak wrote:
How should I compile my program to enable array vectorization?
dmd doesn't do what is known as "auto-vectorization".
https://en.wikipedia.org/wiki/Automatic_vectorization
What D does is have vector data types, and when those are used
vector instructions are generated for them.
https://dlang.org/spec/simd.html
For clarity, where the changeling says that GDC & LDC use
auto-vectorization, that's actually happening with the array
operations and core.simd is not required, correct?
OK, I'm a bit confused here. This gives the impression that the
vectorization happens automatically with array operations:
"Array operations have been converted from dedicated assembly
routines for some array operations to a generic template
implementation for all array operations. This provides huge
performance increases (2-4x higher throughput) for array
operations that were not previously vectorized. Furthermore the
implementation makes better use of vectorization even for short
arrays to heavily reduce latency for some operations (up to 4x)."
Where does core.simd fit in?