在硬件不足的情况下编码

时间:2018-12-05 17:40:04

标签: c++ ide simd

我目前正在使用C ++中的SIMD指令进行编码,并试图使用在实时编码时会显示错误,拼写错误等的IDE。问题是,我使用的是AVX512指令,我的硬件不支持该指令,仅使用我用于编译的服务器。有没有一种方法可以在IDE中进行带错误检查的代码,而不会受到AVX512功能的干扰而妨碍编译器?

1 个答案:

答案 0 :(得分:2)

首先,您不需要台式机即可支持AVX512来编辑源代码并编译一个需要AVX512的可执行文件。如果您可以在本地编辑/编译以及在服务器上运行/调试,就可以了。


您可以通过配置IDE在支持AVX512的仿真器上运行程序来在本地调试。 Intel's Software Development Emulator (SDE)将是一个不错的选择。它可以充当GDB远程服务器,因此您应该能够调试其中运行的程序。

或者另一个选择是使用一个兼容的内在头文件,该头文件根据AVX2类型和内在定义AVX512内在函数和__m512i。因此,您的源代码可以针对真实的AVX512进行编译,也可以针对AVX2进行编译(速度较慢,但​​您可以对其进行调试。)

显然,英特尔实际上发布了一个avxintrin-emu.h标头,用于在仅具有SSE4的计算机上开发AVX代码:Intel AVX intrinsics: any compatibility library out?我认为@Mysticial提到对AVX512做相同的事情,但我找不到任何提及google。

Agner Fog的漂亮的VCL包装器库(GPL许可证)具有针对512位和256位向量的兼容组件,但仅适用于VCL类型,不适用于我假设要使用的底层Intel内部函数。 https://www.agner.org/optimize/#vectorclass


几乎重复-