我如何使用SVML指令

bbv*_*van 5 c++ x86 sse simd

我正在尝试exponential使用SIMD 计算函数。我发现了这个功能:https : //software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_exp_ps&expand=2136

我已经将其包含"immintrin.h"在代码中,并且我的cpu也有一个SSE标志。但是gcc在抱怨error: ‘_mm_exp_pd’ was not declared in this scope

如何检查SVML指令是否启用?

Pau*_*l R 5

SVML 是与英特尔编译器 (ICC) 配合使用的专有英特尔库。如果您不使用 ICC,则需要找到等效的库,例如sse_mathfunavx_mathfun

更新:Visual C++ 2019 支持 x86/x64 架构的 Intel SVML。

  • 我还要提到 [Agner Fog's Library - Vector Class Library (VCL)](http://www.agner.org/optimize/)。 (3认同)
  • 在安装了 Intel OpenCL SDK 运行时的系统上搜索 svml 发现了一些 svml dll。我的猜测是英特尔 OpenCL 使用 SVML,即您可以通过 OpenCL 免费间接获得 SVML。 (2认同)
  • 还有一个 [SLEEF](https://sleef.org/) 库,计划由 LLVM 使用。 (2认同)