我正在Ubuntu-64bit 12.04LTS上运行我的笔记本电脑(coreI5)。 我正在尝试进入AVX以进行一些随机数生成。
在Eclipse-CDT中,我使用Linux GCC创建了一个新的C ++“Hello World”项目。我包括了immintrin.h并尝试仅加载__m256类型的内容。
编译器会抛出错误:
在此范围内未声明类型“__m256”
我查看了immintrin.h文件,并查找了avxintrin.h文件,以防有拼写错误。当我在avxintrin.h上点击打开声明时,Eclipse会显示:
Could not find include file 'avxintrin.h' on include paths
尽管该文件在 /usr/lib/gcc/x86_64-linux-gnu/4.6/include/avxintrin.h 可用。
有人能给我提示,该怎么做吗?在线上关于AVX的教程或帮助并不多。我认为我需要在编译器选项中进行一些调整或类似这样的操作(!?)
无论如何,下面是代码:
#include <immintrin.h>
#include <iostream>
using namespace std;
int main() {
float out[8];
float a[8] = { 0.0,1.0,2.0,3.0,4.0,5.0,6.0,7};
__m256 test = _mm256_load_ps(&a[0]);
cout << "" << endl; // prints
return 0;
}
这里是错误:
../src/seminar.cpp:15:2: error: '__m256' was not declared in this scope
../src/seminar.cpp:15:9: error: expected ';' before 'test'
提前致谢!
-march=native
吗?默认情况下,GCC不会启用AVX指令。 - Nemogcc -mavx ...
进行编译。 - Paul R