View Single Post
Old 15-Feb-2012, 01:46  
rpg.314
Senior Member
 
Join Date: Jul 2008
Location: /
Posts: 4,070
Send a message via Skype™ to rpg.314
Default

Quote:
Originally Posted by Nick View Post
The STL is built on top of the C++ language. It doesn't add any native types. The main advantage of that is that it doesn't burden the implementation of the compiler, and doesn't dirty the top namespace. So if the standard committee wants to define a standard vector library they can knock themselves out for all I care.

I just don't think it will help auto-vectorization.
We are not using consistent terminology here.

For me, auto vectorization is compiler detecting independent iterations of loops and generating SSE/AVX. Also, I don't consider these instructions to be vector. So obviously, a standard float4 class is not going to help auto vectorization.

Quote:
Actually I'd rather agree with you, but then I'd like to understand your reasoning.
Because compilers aren't perfect and they have to be very conservative. Which pales in front of the trap of un intended serial implementation of a potentially vectorizable algorithm. SPMD, by forcing independce of lanes, allows much more robust vectorization.

Quote:
So... What ATI has been doing for the longest time is more fragile than auto-vectorization,
Of course. Why do you think they got rid of it? It's really hard to pack general variables into VLIWish form while honoring register file constraints.


Quote:
A few keywords like 'restrict' or 'foreach' can help a lot with determining independence, but I don't think you need much else. Definitely not something as invasive and restrictive as C++ AMP.
There is a lot more C++ needs, and could use. You just have to consider integer codes.
__________________
The views presented here are my own and not my employer's.
Quote:
Originally Posted by Alexko View Post
So in a nutshell, model [BLANK] will have [BLANK], up to [BLANK], and even [BLANK] for a power consumption of just [BLANK]. Impressive.
rpg.314 is offline   Reply With Quote