Loading...
You are not logged-in Login/Register





  • Posts   Search Threads
  • srimksNovember 29, 2008 10: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



    TimP (Intel)November 29, 2008 11:58 AM PST
    Rate
     
    Re: Vectorization Limitations - The step towards SIMD Programming

    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.



    srimksDecember 1, 2008 9:00 PM PST
    Rate
     
    Re: Vectorization Limitations - The step towards SIMD Programming

    Tim.

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

    ~BR


    Igor LevickiDecember 2, 2008 2:07 AM PST
    Rate
     
    Re: Vectorization Limitations - The step towards SIMD Programming

    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.

Forum jump:  

Intel Software Network Forums Statistics

16,371 users have contributed to 46,345 threads and 163,975 posts to date.

In the past 24 hours, we have 19 new thread(s) 94 new posts(s), and 64 new user(s).

In the past 3 days, the most popular thread for everyone has been Formula for the intersection of straight lines The most posts were made to Take a look at John Burkhard&# The post with the most views is \"-check none\" generates error

Please welcome our newest member theoriginalgunn


For more complete information about compiler optimizations, see our Optimization Notice.