Jac*_*kWM 1 gcc pragma vectorization icc auto-vectorization
使用intel编译器,如果用户确认没有使用依赖关系,则仍然可以对循环进行矢量化#pragma ivdep.
我在GCC找到了一个#pragma GCC ivdep,但收到如下错误:
warning: ignoring #pragma GCC ivdep [-Wunknown-pragmas]
#pragma GCC ivdep
从GCC4.9开始,完全支持"#pragma ivdep" .
您使用哪个GCC版本?至少在2013年之前,#pragma ivdep在海湾合作委员会中没有得到官方支持.
我不确定2013年和2014年之间其他GCC4.x子版本的官方支持,虽然我已经看到在版本4.9之前有一些部分补丁用于ivdep支持.
在ICC中(你也在问题标签中提到过)#pragma ivdep很久以前就已得到支持(至少过去5年).
对于其他编译器:Microsoft从MSVS 2013开始支持"#pragma loop ivdep".从20世纪90年代开始,Cray和其他一些"老派"编译器可能会支持它,但我不确定.
最后,如果您寻找跨平台和标准化的解决方案,请查看OpenMP4.x #pragma omp simd.虽然它是不同的语义,也只有GCC4.9 + ICC/IFORT支持,但它可能在未来更有利,因为(而不是ivdep) - pragma omp simd是真正的标准,因此所有编译器供应商或多或少都必须将来支持它,并且必须支持相同的语法.
| 归档时间: |
|
| 查看次数: |
3018 次 |
| 最近记录: |