Thread overview | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
November 02, 2017 Release D 2.077.0 | ||||
---|---|---|---|---|
| ||||
Glad to announce D 2.077.0. This release comes with a new, more compact mangling, templated vector operations, reproducible dmd builds, and various fixes. Thanks to everyone involved in this 👏. http://downloads.dlang.org/releases/2.x/2.077.0/ http://dlang.org/changelog/2.077.0.html The dlang.org website will get updated soon. -Martin |
November 03, 2017 Re: Release D 2.077.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Martin Nowak | On 11/02/2017 06:35 PM, Martin Nowak wrote:
> reproducible dmd builds,
Curiosity: What exactly was preventing this before? Order of source files altering the order of output? Something else?
Also, just musing...Regarding the matter of __TIME__(etc) breaking this guarantee (breaking it for obvious reasons). Seems to me it would be helpful to have compiler switches to force lexer symbols to specific values in order to bring at least some level of reproducablity even to projects that do use such symbols.
|
November 03, 2017 Re: Release D 2.077.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Martin Nowak | On Thursday, 2 November 2017 at 22:35:03 UTC, Martin Nowak wrote:
> Glad to announce D 2.077.0.
>
> This release comes with a new, more compact mangling, templated vector operations, reproducible dmd builds, and various fixes.
> Thanks to everyone involved in this 👏.
>
> http://downloads.dlang.org/releases/2.x/2.077.0/
> http://dlang.org/changelog/2.077.0.html
> The dlang.org website will get updated soon.
>
> -Martin
How should I compile my program to enable array vectorization?
I have tried dmd -march=native, -march=avx2 as changlog suggest but does not work
I have tried even just -march=native or -march=avx2 but still does not compile
Error: unrecognized switch '-march=avx2'
Error: unrecognized switch '-march=native'
|
November 03, 2017 Re: Release D 2.077.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Daniel Kozak | 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 |
November 03, 2017 Re: Release D 2.077.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | 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?
|
November 03, 2017 Re: Release D 2.077.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | 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?
Yes, at least with ldc.
|
November 03, 2017 Re: Release D 2.077.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | 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?
|
November 03, 2017 Re: Release D 2.077.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | On Friday, 3 November 2017 at 10:07:25 UTC, Mike Parker wrote: > On Friday, 3 November 2017 at 10:02:18 UTC, Mike Parker wrote: >> [...] > > 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? See the linked druntime pull, core.simd is only imported for dmd: https://github.com/dlang/druntime/pull/1891/files#diff-c17bbc97c8719ab709a4a54e2f6924ceR67 |
November 03, 2017 Re: Release D 2.077.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Daniel Kozak | On Friday, 3 November 2017 at 09:28:37 UTC, Daniel Kozak wrote: > How should I compile my program to enable array vectorization? Array operations refers to https://dlang.org/spec/arrays.html#array-operations. > I have tried dmd -march=native, -march=avx2 as changlog suggest It's -mcpu= not -march= for dmd, my bad. Unfortunate that dmd uses different switches than gcc. If you're compiling for 64-bit, you'll get SSE2 by default. |
November 03, 2017 Re: Release D 2.077.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Joakim | On Friday, 3 November 2017 at 10:14:27 UTC, Joakim wrote:
> See the linked druntime pull, core.simd is only imported for dmd:
>
> https://github.com/dlang/druntime/pull/1891/files#diff-c17bbc97c8719ab709a4a54e2f6924ceR67
Ah, I see. I misunderstood Walter to be saying the user needed core.simd to get the vectorization. Thanks!
|
Copyright © 1999-2021 by the D Language Foundation