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

问题描述 投票:3回答:1

最近我已升级到glibc 2.27,它显然支持新的CPU扩展,例如AVX2和AVX512。字符串函数(memcpy,memcmp等)现在正在使用这些指令。不幸的是,AVX2和更高版本导致Intel CPU减少时钟,这基于我正在研究的应用程序的基准,导致性能下降。是否有任何可以切换到glibc的编译开关,我可以在其中永久禁用选定的CPU功能,因此只能像普通的AVX或SSE4.2一样使用它?

linux simd glibc avx
1个回答
0
投票

由于您指出的原因,当前glibc中的字符串函数应仅使用便宜的AVX指令,这些指令不需要Turbo许可证。如果您知道还有任何有问题的说明,请please file a bug

根据一个旧的错误,需要注意的perf事件是:

  • cpu/event=0x28,umask=0x18,name=core_power_lvl1_turbo_license/
  • cpu/event=0x28,umask=0x20,name=core_power_lvl2_turbo_license/
  • cpu/event=0x28,umask=0x40,name=core_power_throttle/

希望您可以使用它们来确定各个说明。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.