为 AVX、m256 实现 ln(x) [关闭]

Posted

技术标签:

【中文标题】为 AVX、m256 实现 ln(x) [关闭]【英文标题】:Implementation of ln(x) for AVX, m256 [closed] 【发布时间】:2020-02-20 23:35:29 【问题描述】:

是否有用于 AVX 的 __m256 类型的快速实现自然对数​​的源代码?

有fmath,但它只适用于__m128

【问题讨论】:

在 glibc 的 libmvec 中? @MarcGlisse 能否提供源代码链接 @Kari Strictly AVX 还是 AVX2?单精度还是双精度?完整的 ISO-C++ 语义和完整的准确性,还是缩小范围和降低准确性? 试试Software Recommendations 【参考方案1】:

Glibc 在 github 存储库中有 AVX[-512] SIMD loglogf 实现:sysdeps/x86_64/fpu/multiarch。它依赖于很多支持代码,如多项式系数数据、宏、支持函数等。其中大部分位于父目录fpu 中。

GNU libc 的许可证是 LGPLv2,因此您可以从任何软件动态链接它,但只能将源代码复制到与 GPL 兼容的项目中。

Agner Fog's Vector Class Library (VCL) 现在已获得 Apache 许可,并且还具有一些 SIMD 数学函数。它可以与 __m256 一起使用,隐式转换到/从其内部 Vec8f 类型。

【讨论】:

以上是关于为 AVX、m256 实现 ln(x) [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用 AVX 与 NaN 的比较

加载指令与 AVX 中的 AVX2 __m256i const* mem_addr [关闭]

AVX2 等效于 std::clamp

用于整个 256 位寄存器的 AVX unpackhipd/unpacklopd 模拟

如何替换源代码或库中的 __ieee754_exp_avx 调用?

Linux上的AVX分段错误[关闭]