gpt4 book ai didi

gcc - 禁用所有 AVX512 扩展

转载 作者:行者123 更新时间:2023-12-03 23:08:21 33 4
gpt4 key购买 nike

我需要在 gcc 编译的代码中禁用所有 AVX512 扩展。原因是 Valgrind 在 AVX512 指令上窒息。有没有办法用一个标志来做到这一点?

我知道如何单独禁用每个扩展( -mno-avx512f-mno-avx512pf 等),但这很麻烦,因为不同的 gcc 版本支持这些扩展的不同子集。

我使用 CMake。如果有一种方法可以使用 CMake 机器自动化标记,这也适用于我。

最佳答案

gcc -mno-avx512f 也暗示没有其他 AVX512 扩展。 AVX512F 是“基础”,禁用它会告诉 GCC 机器不会解码 EVEX 前缀。

同样,-mno-avx 禁用 AVX2、FMA3 等,因为它们都是基于 AVX 构建的。 (由于 GCC 的工作方式,-mavx512f -mno-avx 甚至可能会禁用 AVX512F。)

例如gcc -march=icelake-client -mno-avx512f 将拒绝 AVX512DQ 或 AVX512VL 指令等的内在函数,以及在自动矢量化时不使用它们。

关于gcc - 禁用所有 AVX512 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60815316/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com