我在哪里可以找到 AVX 指数双精度函数?

Posted

技术标签:

【中文标题】我在哪里可以找到 AVX 指数双精度函数?【英文标题】:Where can I find an AVX exponential double-precision function? 【发布时间】:2016-11-15 20:48:53 【问题描述】:

我最近正在研究矢量化指数函数的实现。找到单精度的代码实际上很简单,但很难找到双精度的代码。我还没有找到任何双精度 AVX 求幂的实现。 SSE 的代码几乎可以适应,但通常用于乘以 2^n 的技巧似乎不适用于 AVX。

有人知道这样的实现吗?

【问题讨论】:

英特尔的 SVML 库中总是有 _mm256_exp_pd。另外我相信 Agner Fog 的向量类库支持 exp 用于双精度向量:agner.org/optimize/vectorclass.pdf 另一个支持 AVX2 和双精度的数学库是 Yeppp!。 Agner Fog 的矢量库做得很好!如果您将其发布为答案,我会接受@PaulR @BaptisteWicht:感谢您的反馈 - 很高兴它为您解决了问题 - 我已按照您的建议将我的评论转换为答案。 【参考方案1】:

如果您使用的是 Intel 的 ICC 编译器,那么 SVML 库中有 _mm256_exp_pd

另外,Agner Fog 的 vector class library 支持 exp 用于双精度向量。

【讨论】:

Agner Fog的向量库正是我要找的,代码也够全面。

以上是关于我在哪里可以找到 AVX 指数双精度函数?的主要内容,如果未能解决你的问题,请参考以下文章

c 改变双精度数的指数

使用 AVX 一次性完成 4 个水平双精度求和

加速图像处理的神器: INTEL ISPC 编译器迁移图像旋转算法 - 从 ISPC双精度到 ISPC单精度

加速图像处理的神器: INTEL ISPC 编译器迁移图像旋转算法 - 从 ISPC双精度到 ISPC单精度

加速图像处理的神器: INTEL ISPC 编译器迁移图像旋转算法 - 从 ISPC双精度到 ISPC单精度

使用内在函数将双 SSE2/AVX/AVX512 存储为浮点数的最佳方法