未在linux redhat 5.6上运行AVX优化代码

未在linux redhat 5.6上运行AVX优化代码,linux,redhat,icc,avx,Linux,Redhat,Icc,Avx,我有一些简单的测试代码,我正在尝试生成AVX优化代码,以便在linux Redhat 5.6上使用icc v12.1。代码如下所示: int main() { double sum = 0.0; for (unsigned int i = 0; i < 1024; i++) { sum += static_cast<double>(i); } std::cout << "Sum: "<< sum <

我有一些简单的测试代码,我正在尝试生成AVX优化代码,以便在linux Redhat 5.6上使用icc v12.1。代码如下所示:

int main() {
    double sum = 0.0;
    for (unsigned int i = 0; i < 1024; i++) {
        sum += static_cast<double>(i);
    }

    std::cout << "Sum: "<< sum << std::endl;
    return 0;
}
运行代码时,出现以下错误:

Fatal Error: This program was not built to run in your system.
Please verify that both the operating system and the processor support Intel(R) AVX.

我确信处理器具有AVX功能,但其他人对Redhat 5.6上的AVX有问题吗?

Red Hat Enterprise Linux 5.x系列使用的是基本Linux内核版本2.6.18。最重要的是,Red Hat从更高版本的内核中选择了补丁和新功能 在发行家族的整个生命周期中,它认为合适。因此,虽然内核是基于2.6.18的,但您可能会看到一些仅在以后的主线内核版本中出现的附加功能


话虽如此,Linux内核直到版本2.6.30()才支持AVX,因此这似乎不是Red Hat向后移植到5.x系列的功能之一。据波特兰集团(一家编译器制造商)论坛称,直到6.2版(CentOS基本上等同于RHEL)才出现完全支持。

Redhat5.6显然是在2010年发布的,所以我想它不识别Sandy Bridge/AVX也就不足为奇了。你是对的,Rehat5.6太旧了。我从英特尔得到了一个答案,说我需要内核2.6.32或更高版本,以及icc版本12.1更新8才能使它工作。
Fatal Error: This program was not built to run in your system.
Please verify that both the operating system and the processor support Intel(R) AVX.