gpt4 book ai didi

c++ - 当我想在 visual studio 2010 中使用 AVX2 指令时找不到符号“_mm256_max_epu8”

转载 作者:行者123 更新时间:2023-11-30 05:15:24 26 4
gpt4 key购买 nike

环境:Win10、Intel Core i7 5500U CPU、Visual Studio 2010 Ultimate

enter image description

enter image description here

现在我想使用 AVX2 中的“_mm256_max_epu8”Intel SIMD 指令,但是 Visual Studio 2010 告诉我:

1>..\svCore\svGrayMorph.cpp(838): error C3861: “_mm256_max_epu8”: 找不到标准符

我发现 AVX2 指令应该在文件中声明:

...\Microsoft Visual Studio 10.0\VC\include\immintrin.h

但是,该文件只有AVX指令,“_mm256_max_epu8”等指令不在该文件中。

而Visual Studio 2013的immintrin.h文件包含AVX2指令。

有人知道我可以做什么来在 Visual Studio 2010 中编译这段代码吗?

非常感谢。

最佳答案

因为它是早期编写的,Visual Studio 2010 不支持 AVX2,您必须使用 Visual Studio 2013。

但是如果你想使用可以在两个版本的 Visual Studio 中编译的通用代码,你必须使用条件编译和宏。

有一个例子:

#if defined(_MSC_VER) && _MSC_VER >= 1700 //Visual Studio 2013
#define AVX2_ENABLE
#endif

#ifdef AVX2_ENABLE
void func()
{
//code with AVX2
}
#else
void func()
{
//code without AVX2
}
#endif

Here您可以找到更多示例,了解如何在一个项目中使用不同的 SIMD 扩展。

关于c++ - 当我想在 visual studio 2010 中使用 AVX2 指令时找不到符号“_mm256_max_epu8”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43108354/

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