如何使用 SVML 指令 [重复]
Posted
技术标签:
【中文标题】如何使用 SVML 指令 [重复]【英文标题】:how can I use SVML instructions [duplicate] 【发布时间】:2017-02-09 02:26:39 【问题描述】:我正在尝试使用 SIMD 计算 exponential
函数。我发现了这个功能: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 指令?
【问题讨论】:
【参考方案1】:SVML 是一个专有的英特尔库,可与英特尔编译器 (ICC) 配合使用。如果您不使用 ICC,那么您需要找到一个等效的库,例如sse_mathfun 或 avx_mathfun。
更新:Visual C++ 2019 支持适用于 x86/x64 架构的英特尔 SVML。
【讨论】:
在安装了英特尔 OpenCL SDK 运行时的系统上搜索 svml 会发现一些 svml dll。我的猜测是英特尔 OpenCL 使用 SVML,即您可以通过 OpenCL 间接免费获得 SVML。 我还要提到Agner Fog's Library - Vector Class Library (VCL)。 请注意,VS 2019 包含对 SVML 的支持 还有一个SLEEF库,计划被LLVM使用。以上是关于如何使用 SVML 指令 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 AVX512 或 SVML 内在函数将压缩的 16 位整数与掩码相除