use*_*035 5 c++ gcc vectorization
在带有标志的上一代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
Run Code Online (Sandbox Code Playgroud)
(例如所有'下摆!)
我明白了:
.cpp:31:note: not vectorized: relevant stmt not supported: D.56044_367 = __builtin_logf (D.55726_232);
Run Code Online (Sandbox Code Playgroud)
对于该行:
for(i=0;i<N5;i++) d3[i]=std::log(d2[i]);
Run Code Online (Sandbox Code Playgroud)
这个'错误'消息是什么意思?(d3和d2是浮点数的向量).向量化日志功能是否无望?
To意味着将多个数据项打包到一个寄存器中,并使用(又名)指令vectorize并行操作它们。许多浮点运算都有形式,不是其中之一。以下是单精度打包形式向量指令的列表,来自http://docs.oracle.com/cd/E19253-01/817-5477/epmoa/index.htmlvectorpackedvectorLOG
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |