gpt4 book ai didi

visual-c++ - GCC 和 MSVC 中是否存在 "simd reduction(:)"?

转载 作者:行者123 更新时间:2023-12-01 10:52:16 25 4
gpt4 key购买 nike

simd pragma 可与 icc 编译器一起使用以执行归约运算符:

#pragma simd
#pragma simd reduction(+:acc)
#pragma ivdep
for(int i( 0 ); i < N; ++i )
{
acc += x[i];
}

在 msvc 或/和 gcc 中是否有任何等效的解决方案?

引用(第 28 页):http://d3f8ykwhia686p.cloudfront.net/1live/intel/CompilerAutovectorizationGuide.pdf

最佳答案

对于 Visual Studio 2012:使用选项 /O1/O2/GL,报告矢量化使用 /Qvec-report:(1/2)

int s = 0; 
for ( int i = 0; i < 1000; ++i )
{
s += A[i]; // vectorizable
}

在缩减“float”或“double”类型的情况下,向量化要求抛出 /fp:fast 开关.这是因为向量化缩减操作取决于“浮点重新关联”。只有在抛出 /fp:fast

时才允许重新关联

Ref(associated doc;p12) http://blogs.msdn.com/b/nativeconcurrency/archive/2012/07/10/auto-vectorizer-in-visual-studio-11-cookbook.aspx

关于visual-c++ - GCC 和 MSVC 中是否存在 "simd reduction(:)"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17602290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com