Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在编译时禁用glibc中的AVX512和/或AVX2?_Linux_Simd_Glibc_Avx - Fatal编程技术网

Linux 如何在编译时禁用glibc中的AVX512和/或AVX2?

Linux 如何在编译时禁用glibc中的AVX512和/或AVX2?,linux,simd,glibc,avx,Linux,Simd,Glibc,Avx,最近我升级到了Glibc2.27,它显然支持新的CPU扩展,如AVX2和AVX512。字符串函数(memcpy、memcmp等)现在正在使用这些指令。不幸的是,AVX2和更高版本导致Intel CPU减少了时钟,这是基于我正在开发的应用程序基准测试的,导致了性能下降。是否有任何到glibc的编译切换,我可以永久禁用选定的CPU功能,这样它将被限制为与普通AVX或SSE4.2类似的功能?出于您指出的原因,当前glibc中的字符串函数应仅使用不需要turbo许可证的廉价AVX指令。如果您知道剩下的任

最近我升级到了Glibc2.27,它显然支持新的CPU扩展,如AVX2和AVX512。字符串函数(memcpy、memcmp等)现在正在使用这些指令。不幸的是,AVX2和更高版本导致Intel CPU减少了时钟,这是基于我正在开发的应用程序基准测试的,导致了性能下降。是否有任何到glibc的编译切换,我可以永久禁用选定的CPU功能,这样它将被限制为与普通AVX或SSE4.2类似的功能?

出于您指出的原因,当前glibc中的字符串函数应仅使用不需要turbo许可证的廉价AVX指令。如果您知道剩下的任何有问题的说明

根据一个老bug,需要注意的
perf
事件有:

  • cpu/event=0x28,umask=0x18,name=core\u power\u lvl1\u turbo\u license/
  • cpu/event=0x28,umask=0x20,name=core\u power\u lvl2\u turbo\u license/
  • cpu/event=0x28,umask=0x40,name=core\u power\u throttle/

希望您可以使用这些工具精确定位各个说明。

请参阅ld手册和glibc手册。不过,我使用它们的运气不太好。在测试过程中,我的更改似乎被忽略了。测试是几年前的事了。是的,实际上我使用的是glibc2.25,它使用的是“昂贵的”AVX。当升级到2.26时,问题消失了。所以升级lib为我解决了这个问题。