为 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 log
和 logf
实现: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 中的 AVX2 __m256i const* mem_addr [关闭]
用于整个 256 位寄存器的 AVX unpackhipd/unpacklopd 模拟