如何使用 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 位整数与掩码相除

如何在服务和指令脚本文件中使用angular2内置日期管道[重复]

使用指令将类添加到宿主元素[重复]

如何在种类的单子中重复单子指令?

Angular如何将数据从指令传递到父组件

如何将不同的类传递给元素指令