Forum Jump

Select Group :
Select Forum :
Sorted By :
Sort Order :
From The :
 
Thread Tools  Search this thread 
srimks
Total Points:
5,285
Status Points:
4,785
Brown Belt
November 29, 2008 9:38 AM PST
Vectorization Limitations - The step towards SIMD Programming

Hi All.

Since vectorization in one way to achieve parallelization of code within a section of code through Compiler's directives within SMP system.

It seems auto-vectorization is not infallible as in many cases the compiler can't prove independence of statements, so code stays scalar, or even if the compiler appears to have vectorised the code - it might still under-exploit some hardware features and hence generate less efficient code than the programmer would have written using vector intrinsics.

Could anyone explain what are key Compilers limitations for executing efficient vectorization code which makes a sinerio for SIMD programming to take it's importance?

Any papers or publications which discusses above thoughts?

~BR

tim18
Total Points:
50,887
Status Points:
50,887
Black Belt
November 29, 2008 10:58 AM PST
Rate
 
#1

Besides the Intel Press publications on this subject, many historic and more recent papers have been on line. Mine have been taken down (for lack of interest?).

As you appear to be interested in the combination of auto-vectorization (Instruction Level Parallel) and SMP (threaded parallel), you might look at my post on the subject

http://software.intel.com/en-us/forums/threading-on-intel-parallel-architectures/topic/61470/

As I show, auto-vectorization in C often depends on C99 restrict, and frequently on pragmas.

If you don't like Intel or gnu compilers, you may be more interested in vector intrinsics, but then maybe you shouldn't be on this forum.  I show just one case where the intrinsics accomplish optimization which is not otherwise supported by current compilers, but is effective only on Barcelona and Core i7 processors.

The value of auto-vectorization has been verified repeatedly, since long before Intel began to support it.  It was already  a significant minority view when C89 was defined but declined to support it to the desired extent. By the time C99 came along, there was sufficient interest to revive the restrict proposal and begin implementation of the typed aliasing features of C89 (icc -ansi_alias).  I suppose you could take the widespread reluctance to follow the language rules which support vectorization, to implement C99, or to standardize equivalent features in C++, as a significant vote against auto-vectorization.



srimks
Total Points:
5,285
Status Points:
4,785
Brown Belt
December 1, 2008 8:00 PM PST
Rate
 
#2 Reply to #1
Tim.

I am not convinced, could you re-think again.

~BR


Igor Levicki
Total Points:
10,170
Status Points:
10,170
Black Belt
December 2, 2008 1:07 AM PST
Rate
 
#3 Reply to #2
Quoting - srimks
Tim.

I am not convinced, could you re-think again.

~BR

You are not convinced in what? Using full sentences would help in understanding any issues you might have.


--------
If you find my post helpfull, please rate it and/or select it as a best answer where applies. Thank you.




Intel Software Network Forums Statistics

6668 users have contributed to 28284 threads and 87462 posts to date.
In the past 24 hours, we have 5 new thread(s) 32 new posts(s), and 37 new user(s).

In the past 3 days, the most popular thread for everyone has been Fortran and Matlab The most posts were made to Larger Test Data The post with the most views is Quoting - nabeels Hello e

Please welcome our newest member karolbe