发布于 2018-02-13 18:41:25
不是的。
我在我的Skylake系统上禁用了AVX,方法是将noxsave添加到Linux内核引导选项中。当我这样做的时候,cat /proc/cpuinfo AVX (和AVX2)不再出现,当我用AVX指令运行代码时,它崩溃了。这告诉我AVX已被操作系统禁用。
但是,当我编译并运行以下代码时
#include <stdio.h>
int main(void) {
__builtin_cpu_init();
printf("%d\n", __builtin_cpu_supports ("sse"));
printf("%d\n", __builtin_cpu_supports ("avx"));
}它返回8和512。这意味着__builtin_cpu_supports不会检查操作系统是否禁用了AVX。
https://stackoverflow.com/questions/48677575
复制相似问题