Vectorization Limitations - The step towards SIMD Programming

Vectorization Limitations - The step towards SIMD Programming

imagem de srimks

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
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.
imagem de TimP (Intel)

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.

imagem de srimks
Tim. I am not convinced, could you re-think again. ~BR
imagem de Igor Levicki
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 If you find my post helpfull, please rate it and/or select it as a best answer where applies. Thank you.

Faça login para deixar um comentário.