c++ - gcc:在 AMD 上启用 AVX
问题描述
我一直试图让 AVX 正常运行,但我无法编译我的 c++ 项目。我是 C++ 和编译新手,所以我将 CMake 与 CLion 和 GCC 一起使用。
我知道我的处理器支持 AVX 和 AVX2,我写了一个简单的测试程序:
#include <immintrin.h>
...
__m256 A{};
__m256 B{};
__m256 AB = _mm256_add_ps(A,B);
for(int i = 0; i < 8; i++){
std::cout << AB[i] << std::endl;
}
可悲的是,当尝试运行它时,我收到以下错误:
warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
91 | __m256 AB = _mm256_add_ps(A,B);
| ^
In file included from C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/10.1.0/include/immintrin.h:51,
from A:\OneDrive\ProgrammSpeicher\CLionProjects\Koivisto\src_files\main.cpp:85:
C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/10.1.0/include/avxintrin.h:147:1: error: inlining failed in call to 'always_inline' '__m256 _mm256_add_ps(__m256, __m256)': target specific option mismatch
147 | _mm256_add_ps (__m256 __A, __m256 __B)
我假设我需要在我的 CmakeLists.txt 中设置一些标志,但我在网上没有找到任何相关内容。
如果有人可以帮助我,我会很高兴!
问候,芬恩
解决方案
我不得不添加
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
它会很好地编译。
解决方案
推荐阅读
- sqlite - 我如何构建 sqlcipher .. mingw
- python - Python keyError: 'stop_time' / Facebook API 运行文件
- powershell - 在powershell选项卡自动完成中更改过滤器方法
- firebase - 类似 Tinder 的应用程序的 Firestore 数据建模和查询
- html - 如何防止滚动条推送元素?
- node.js - Array of Array 的 Vuex 状态未定义
- azure - 获取 azure 数据湖目录中所有文件的列表以在 ADFV2 中查找活动
- python - 使用字符串值在数据框中追加列
- swift - 在 UIImageView 中创建一个圆孔
- javascript - React Js If Else 使用来自 API 的数据