【问题标题】:Coding on insufficient hardware在硬件不足的情况下编码
【发布时间】:2019-05-07 08:27:06
【问题描述】:

我目前正在使用 C++ 中的 SIMD 指令进行编码,并尝试使用在实时编码时显示错误、拼写错误等的 IDE。问题是,我正在使用我的硬件不支持的 AVX512 指令,只有我用于编译的服务器。有没有办法在带有错误检查等功能的 IDE 中进行编码,而不受 AVX512 功能的干扰而阻碍编译器?

【问题讨论】:

  • 一种方法是设置 X2Go/NXClient 或其他一些 VNC 服务器-客户端设置。然后你可以在你的服务器上获得一个 GUI 并直接在那里开发?
  • 我不明白这个问题。编译与执行不同。 ide 不必与目标编译在同一台机器上。
  • 你能告诉你 IDE 定义了__AVX512F__ 吗?那么它应该足够聪明来解析相应的头文件——如果没有尝试不同的 IDE。

标签: c++ ide simd


【解决方案1】:

首先,您不需要您的桌面支持 AVX512 来编辑源代码并编译需要 AVX512 的可执行文件。如果你可以在本地编辑/编译,并在服务器上运行/调试,那就没问题了。


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

或者另一种选择是使用兼容的内在函数头文件,该文件根据 AVX2 类型和内在函数定义 AVX512 内在函数和 __m512i。所以你的源代码可以编译为真正的AVX512,也可以编译为AVX2(速度慢但可以调试)

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

Agner Fog 不错的 VCL 包装器库(GPL 许可)具有适用于 512 位和 256 位向量的兼容功能,但仅适用于 VCL 类型,不适用于我假设您想要使用的底层 Intel 内在函数。 https://www.agner.org/optimize/#vectorclass


接近重复 -

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多