Release D 2.077.0

Mike Parker aldacron at gmail.com
Fri Nov 3 10:07:25 UTC 2017


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?


More information about the Digitalmars-d-announce mailing list