基本上就是标题。例如,我试图运行如下指令:
_mm256_load_pd,_mm256_add_pd,_mm256_stream_pd和处理器上的128位版本: Intel,E5630,2.53 GHz,IBM HS22。但是,我得到了Illegal instruction的任何想法,在一个网站,我可以看到哪些功能是可用的这个处理器?
发布于 2021-05-02 11:35:43
检查您的/proc/cpuinfo,如果您是在一个操作系统有一个。
或者使用clang或gcc -march=native -他们将拒绝编译任何你的CPU不支持的本质。(与MSVC或ICC不同,后者允许您在不告诉目标机器支持它们的情况下使用本机。)
要通过CPU模型查找它,请搜索该模型,例如Xeon, E5630 -> https://ark.intel.com/content/www/us/en/ark/products/47924/intel-xeon-processor-e5630-12m-cache-2-53-ghz-5-86-gt-s-intel-qpi.html
所以根本没有AVX,因为它是2010年的韦斯特米尔-EP微体系结构(在沙桥之前)。
对于更详细的CPU,您还可以检查http://instlatx64.atw.hu/并检查该模型的CPUID转储(或相同的微体系结构之一),如果可以找到的话。例如,Aida64 CPUID的屏幕截图运行在Westmere和指令延迟/吞吐量基准输出上,文本文件顶部有信息,包括解码后的CPUID信息,显示它有哪些ISA扩展名。还有原始CPUID转储,您可以通过您感兴趣的任何扩展(比如cmpxchg16b或FSGSBASE,英特尔的ark页面不会提到)交叉引用CPUID功能比特要求(https://sandpile.org/x86/cpuid.htm)。
关联:https://software.intel.com/sites/landingpage/IntrinsicsGuide/告诉您对应的asm指令对每个内部的需要什么ISA扩展。
https://stackoverflow.com/questions/67355751
复制相似问题