digitalmars.D - Vectorisation Intrinsics for DMD?
- Peter Alexander <peter.alexander.au gmail.com> Feb 06 2011
- Iain Buclaw <ibuclaw ubuntu.com> Feb 06 2011
- Peter Alexander <peter.alexander.au gmail.com> Feb 06 2011
- spir <denis.spir gmail.com> Feb 06 2011
- Walter Bright <newshound2 digitalmars.com> Feb 06 2011
- Brad Roberts <braddr puremagic.com> Feb 06 2011
- bearophile <bearophileHUGS lycos.com> Feb 06 2011
- Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> Feb 06 2011
- Walter Bright <newshound2 digitalmars.com> Feb 06 2011
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
== Quote from Peter Alexander (peter.alexander.au gmail.com)'s articleIs 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
On 6/02/11 6:31 PM, Iain Buclaw wrote:== Quote from Peter Alexander (peter.alexander.au gmail.com)'s articleIs 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
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
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
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
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
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
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









Peter Alexander <peter.alexander.au gmail.com> 