Vectorization Limitations - The step towards SIMD Programming

Vectorization Limitations - The step towards SIMD Programming

Hi All.

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

It seemsauto-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 vectorisedthe 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 arekey Compilers limitations for executing efficient vectorization code which makes a sinerio for SIMD programming totake it's importance?

Any papers or publications which discusses above thoughts?

~BR

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

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/showthread.php?t=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.

Tim.

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

~BR

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.

Regards,
Igor Levicki

Leave a Comment

Please sign in to add a comment. Not a member? Join today