python - 确定处理器架构

标签 python gfortran processor avx waf

我们在 2013 年末的 MacBook Pro 上编译 Lapack 时遇到问题。编译器提示使用 -march=native 编译时不支持向量指令:

no such instruction: `vmovss (%rdx), %xmm0'

使用-march=core2一切都很好。

问题是:如何检测中的处理器架构?目前,waf 可以在 Darwin 操作系统的机器上运行,但问题与操作系统无关,而是与处理器有关,因此这没有帮助。

我不是问如何修复汇编器错误!我问的是如何让 waf 检测处理器架构。

最佳答案

这可以帮助识别 INTEL 处理器系列。 运行这段代码

#include "stdio.h"
int main () {

  int ebx = 0, ecx = 0, edx = 0, eax = 1;
  __asm__ ("cpuid": "=b" (ebx), "=c" (ecx), "=d" (edx), "=a" (eax):"a" (eax));

  int model = (eax & 0x0FF) >> 4;
  int extended_model = (eax & 0xF0000) >> 12;
  int family_code = (eax & 0xF00) >> 8;
  int extended_family_code = (eax & 0xFF00000) >> 16;

  printf (" model %x\n extended_model %x\n family_code %x\n extended_family_code %x \n", eax, ebx, ecx, edx);
  printf ("CPUID: %02x %x\n", extended_family_code | family_code, extended_model | model);
  return 0;
}

然后查看此处给出的表格 processor arch 。 您将了解您的处理器系列。

关于python - 确定处理器架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23223765/

相关文章:

C 编程优化和处理器扩展

Python内存模型

python - 如何在集合级别的 pymongo 中添加 wiredTiger?

python - 使用 headless Chrome 通过 Python 为 Selenium 禁用代理

arrays - 使用 Julia 的数组参数调用 Fortran 子程序

compiler-errors - Fortran - 无法从主机范围单元导入 `c_char`

fortran - 较新的 gfortran 不编译 Fortran90 代码

处理器架构

python - 如何使用 Boost Python 将 Python 派生类升级到它的 c++ 基类?

performance - Intel Core Duo 上的硬件性能计数器