微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 gcc 检测 AVX2 支持

如何解决如何使用 gcc 检测 AVX2 支持

我需要在我的代码中检测到 AVX2 支持,然后做出相应的决定。
我知道两种方法 - __builtin_cpu_supports("avx2")#if defined(__AVX2__)。现在的问题是一个返回真,另一个返回假。 测试代码如下-

int main(){
    if(__builtin_cpu_supports("avx2")){
        std::cout<< "Builtin methods supports" << std::endl;
    }
    
    
#if defined(__AVX2__)
    std::cout<<"Builtin symbol present"<<std::endl;
#endif
return 0;
}

输出如下-

Builtin methods supports

我正在运行 i7 - 9750h。而且我的处理器确实支持 AVX2 指令集。

正确的识别方法是什么。我的 GCC 版本是 9.3.1

解决方法

我认为你弄错了。您可以在编译时使用宏检查是否已将 "test.db" 配置为使用 AVX2 支持进行编译。内置函数可以在运行时检查当前运行的 CPU 是否支持 AVX2 扩展。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。