【问题标题】:Pragmas swp,ivdep,prefetch support in various compilers各种编译器中的编译指示 swp、ivdep、预取支持
【发布时间】:2010-04-24 21:43:53
【问题描述】:

在良好的 Altix 手册 (altix_single_cpu_optimization http://wwwuser.gwdg.de/~parallel/parallelrechner/altix_documentation/altix_single_cpu_optimization.pdf) 中,我找到了这个用于优化编译器的 pragmas-hints 列表

#pragma ivdep               // no aliasing
#pragma swp                 // try to software-pipeline
#pragma noswp               // disable software-pipelining
#pragma loop count (NN)     // hint for SWP
#pragma distribute point    // split this large loop
#pragma unroll (n)          // unroll n times
#pragma nounroll            // do not unroll
#pragma prefetch a          // prefetch array “a”
#pragma noprefetch c        // do not prefetch array “c”

哪些编译器支持这些编译指示?什么实现了链接优化(软件流水线是低 ipc 和低 reg 计数处理器的相当困难的优化之一)?

【问题讨论】:

  • Altix 列表看起来像 Intel 编译器编译指示

标签: c optimization compiler-construction c99 pragma


【解决方案1】:

Sun Studio 12 http://docs.oracle.com/cd/E19205-01/819-5265/bjaby/index.html

#pragma nomemorydepend
#pragma no_side_effect (funcs)
#pragma opt N (funcs)
#pragma pipeloop(n)          // like swp, m.b. noswp 
#pragma rarely_called(funcs)
#pragma unroll (N)

英特尔http://software.intel.com/en-us/articles/use-pragmas-with-the-intel-c-compiler-for-linux-on-64-bit-architecture/

 #pragma swp
 #pragma noswp
 #pragma unroll
 #pragma distribute point
 #pragma prefetch *arrays*
 #pragma loop count 
 #pragma ivdep

IBMhttp://publib.boulder.ibm.com/infocenter/comphelp/v7v91/topic/com.ibm.vacpp7a.doc/compiler/ref/rupragen.htm

#pragma block_loop
#pragma disjoint
#pragma execution_frequency
#pragma isolated_call
#pragma stream_unroll
#pragma unroll
#pragma unrollandfuse

Open64 http://wiki.open64.net/index.php/Pragmas_Support_in_Open64(带有束或指向其他编译器的链接)

#pragma unroll
#pragma blockable
#pragma prefetch
#pragma ivdep

PGI 9 http://www.math.hkbu.edu.hk/parallel/pgi/doc/pgiws_ug/pgi32u10.htm

#pragma depchk 
#pragma opt 
#pragma unroll 
#pragma vector 

MSvs2003 http://msdn.microsoft.com/en-us/library/d9x1s805(VS.71).aspx

#pragma optimize

惠普http://www.docs.hp.com/en/B3901-90024/ch03s06.html

#pragma if_convert
#pragma rarely_called
#pragma unroll // or unroll factor

克雷http://docs.cray.com/books/004-2179-001/html-004-2179-001/xgaslrwh.html

#pragma _CRI ivdep
#pragma _CRI opt // or noopt
#pragma _CRI novector // novsearch
#pragma _CRI shortloop
#pragma _CRI prefervector
#pragma _CRI split
#pragma _CRI unroll [n]

【讨论】:

    猜你喜欢
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 2019-09-18
    • 2017-07-14
    • 2012-09-14
    相关资源
    最近更新 更多