gpt4 book ai didi

c++ - 这个编译器消息(矢量化,GCC)是什么意思?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:29:34 24 4
gpt4 key购买 nike

在带有标志的上一代 i7 处理器上使用 GCC 4.8.1:

 -O3 -ftree-vectorizer-verbose=5  -fomit-frame-pointer -DNDEBUG -fno-operator-names -msse2 -mfpmath=sse -march=native -funsafe-math-optimizations -ffast-math

(例如,所有的下摆!)

我得到:

.cpp:31:note: not vectorized: relevant stmt not supported: D.56044_367 = __builtin_logf (D.55726_232);

对于行:

for(i=0;i<N5;i++)   d3[i]=std::log(d2[i]);  

这个“错误”信息是什么意思? (d3 和 d2 是浮点 vector )。对数函数向量化是不是无望了?

最佳答案

vectorize 意味着将多个数据项打包到一个寄存器中,并使用 vector(又名 packed)指令对它们进行并行操作。许多浮点运算都有vector形式,LOG不是其中之一。这是来自 http://docs.oracle.com/cd/E19253-01/817-5477/epmoa/index.html 的单精度压缩形式 vector 指令列表

  • ADDPS 添加压缩单精度浮点值
  • DIVPS 对压缩单精度浮点值进行除法
  • MAXPS 返回最大压缩单精度浮点值
  • MINPS 返回最小压缩单精度浮点值
  • MULPS 乘以压缩单精度浮点值
  • RCPPS 计算压缩单精度浮点值的倒数
  • RSQRTPS 计算压缩单精度浮点值的平方根的倒数
  • SQRTPS 计算压缩单精度浮点值的平方根
  • SUBPS 减去压缩单精度浮点值

关于c++ - 这个编译器消息(矢量化,GCC)是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22696696/

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