2

使用英特尔编译器,如果用户使用#pragma ivdep.

我在 GCC 中找到了一个#pragma GCC ivdep,但出现如下错误:

warning: ignoring #pragma GCC ivdep [-Wunknown-pragmas] #pragma GCC ivdep

4

1 回答 1

5

从 GCC4.9 开始完全支持“#pragma ivdep”

您使用哪个 GCC 版本?至少在 2013 年之前,GCC 并未正式支持 #pragma ivdep。

我不确定 2013 年至 2014 年间其他 GCC4.x 子版本的官方支持,尽管我已经看到在 4.9 版之前有一些 ivdep 支持的部分补丁。

在 ICC(您在问题标签中也提到过)#pragma ivdep 很久以前就支持(至少过去 5 年)。

对于其他编译器:微软从 MSVS 2013 开始支持“#pragma loop ivdep”。Cray 和其他一些“老派”编译器可能从 1990 年代开始支持它,但我不确定。

最后,如果您正在寻找跨平台和标准化的解决方案,请查看 OpenMP4.x #pragma omp simd。虽然它是不同的语义并且也仅受 GCC4.9 + ICC/IFORT 支持,但它在未来可能会更有益,因为(相对于 ivdep)- pragma omp simd 是真正的标准,所以所有编译器供应商或多或少都必须将来支持它,并且必须支持它的相同语法。

于 2015-06-22T17:15:42.550 回答