www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Vectorisation Intrinsics for DMD?

reply Peter Alexander <peter.alexander.au gmail.com> writes:
Is there any plan to add vectorisation intrinsics to DMD?

I know that DMD generates vectorised instructions for array operations, 
but last time I checked, these were far from optimal for aligned 
float[4] objects. In fact, it appears to generate a function call for 
all vector operations, regardless of size or alignment.

I believe that these intrinsics would be very beneficial to D, and this 
is because I believe that one of D's biggest markets is indie game devs:

- They need a really high performance language, but are tired of C++
- They are not held back by legacy code
- They are generally risk takers, so are willing to invest in new tech

A lack on vector intrinsics in DMD gives them an extra reason to stick 
with C++.
Feb 06 2011
next sibling parent reply Iain Buclaw <ibuclaw ubuntu.com> writes:
== Quote from Peter Alexander (peter.alexander.au gmail.com)'s article
 Is there any plan to add vectorisation intrinsics to DMD?
 I know that DMD generates vectorised instructions for array operations,
 but last time I checked, these were far from optimal for aligned
 float[4] objects. In fact, it appears to generate a function call for
 all vector operations, regardless of size or alignment.
 I believe that these intrinsics would be very beneficial to D, and this
 is because I believe that one of D's biggest markets is indie game devs:
 - They need a really high performance language, but are tired of C++
 - They are not held back by legacy code
 - They are generally risk takers, so are willing to invest in new tech
 A lack on vector intrinsics in DMD gives them an extra reason to stick
 with C++.

I take it you've been lurking in D.gnu then? ;)
Feb 06 2011
parent Peter Alexander <peter.alexander.au gmail.com> writes:
On 6/02/11 6:31 PM, Iain Buclaw wrote:
 == Quote from Peter Alexander (peter.alexander.au gmail.com)'s article
 Is there any plan to add vectorisation intrinsics to DMD?
 I know that DMD generates vectorised instructions for array operations,
 but last time I checked, these were far from optimal for aligned
 float[4] objects. In fact, it appears to generate a function call for
 all vector operations, regardless of size or alignment.
 I believe that these intrinsics would be very beneficial to D, and this
 is because I believe that one of D's biggest markets is indie game devs:
 - They need a really high performance language, but are tired of C++
 - They are not held back by legacy code
 - They are generally risk takers, so are willing to invest in new tech
 A lack on vector intrinsics in DMD gives them an extra reason to stick
 with C++.

I take it you've been lurking in D.gnu then? ;)

Ha, actually I didn't know there was a D.gnu, but now that I've subscribed, I can see what made you say that :) Actually, I'm trying to optimize part of a game I'm writing and it could greatly benefit from vectorisation.
Feb 06 2011
prev sibling next sibling parent spir <denis.spir gmail.com> writes:
On 02/06/2011 05:01 PM, Peter Alexander wrote:
 Is there any plan to add vectorisation intrinsics to DMD?

 I know that DMD generates vectorised instructions for array operations, but
 last time I checked, these were far from optimal for aligned float[4] objects.
 In fact, it appears to generate a function call for all vector operations,
 regardless of size or alignment.

 I believe that these intrinsics would be very beneficial to D, and this is
 because I believe that one of D's biggest markets is indie game devs:

 - They need a really high performance language, but are tired of C++
 - They are not held back by legacy code
 - They are generally risk takers, so are willing to invest in new tech

- They need a sympathetic /data description language/, which D is not far to B. --> Lua, with the power of compilation and low-level coding, in a single language. What do you think? Denis -- _________________ vita es estrany spir.wikidot.com
Feb 06 2011
prev sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
Peter Alexander wrote:
 Is there any plan to add vectorisation intrinsics to DMD?
 
 I know that DMD generates vectorised instructions for array operations, 
 but last time I checked, these were far from optimal for aligned 
 float[4] objects. In fact, it appears to generate a function call for 
 all vector operations, regardless of size or alignment.
 
 I believe that these intrinsics would be very beneficial to D, and this 
 is because I believe that one of D's biggest markets is indie game devs:
 
 - They need a really high performance language, but are tired of C++
 - They are not held back by legacy code
 - They are generally risk takers, so are willing to invest in new tech
 
 A lack on vector intrinsics in DMD gives them an extra reason to stick 
 with C++.

I agree with everything you said. I think D's array op syntax form a sound basis for doing vector ops, and plan on doing them.
Feb 06 2011
next sibling parent reply Brad Roberts <braddr puremagic.com> writes:
On 2/6/2011 11:48 AM, Walter Bright wrote:
 Peter Alexander wrote:
 Is there any plan to add vectorisation intrinsics to DMD?

 I know that DMD generates vectorised instructions for array operations, but
last time I checked, these were far from
 optimal for aligned float[4] objects. In fact, it appears to generate a
function call for all vector operations,
 regardless of size or alignment.

 I believe that these intrinsics would be very beneficial to D, and this is
because I believe that one of D's biggest
 markets is indie game devs:

 - They need a really high performance language, but are tired of C++
 - They are not held back by legacy code
 - They are generally risk takers, so are willing to invest in new tech

 A lack on vector intrinsics in DMD gives them an extra reason to stick with
C++.

I agree with everything you said. I think D's array op syntax form a sound basis for doing vector ops, and plan on doing them.

Also hinted at in the above list.. I'd really like to explore how to get some of the runtime library functions to be inlineable. There's a lot of small functions that ought to be eligible, if exposed to the compiler as a candidate.
Feb 06 2011
parent bearophile <bearophileHUGS lycos.com> writes:
Brad Roberts:

 Also hinted at in the above list.. I'd really like to explore how to get some
of the runtime library functions to be
 inlineable.  There's a lot of small functions that ought to be eligible, if
exposed to the compiler as a candidate.

Like the two (or more than two) needed to allocate a class instance. Bye, bearophile
Feb 06 2011
prev sibling parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 2/6/11 2:48 PM, Walter Bright wrote:
 Peter Alexander wrote:
 Is there any plan to add vectorisation intrinsics to DMD?

 I know that DMD generates vectorised instructions for array
 operations, but last time I checked, these were far from optimal for
 aligned float[4] objects. In fact, it appears to generate a function
 call for all vector operations, regardless of size or alignment.

 I believe that these intrinsics would be very beneficial to D, and
 this is because I believe that one of D's biggest markets is indie
 game devs:

 - They need a really high performance language, but are tired of C++
 - They are not held back by legacy code
 - They are generally risk takers, so are willing to invest in new tech

 A lack on vector intrinsics in DMD gives them an extra reason to stick
 with C++.

I agree with everything you said. I think D's array op syntax form a sound basis for doing vector ops, and plan on doing them.

Are those swizzling ops part of the topic? Andrei
Feb 06 2011
parent Walter Bright <newshound2 digitalmars.com> writes:
Andrei Alexandrescu wrote:
 Are those swizzling ops part of the topic?

I'm keeping an open mind on that the moment! ---- "An open mind is an empty mind" -- Mark Stroberg
Feb 06 2011