AVX2 中的高效向量化对数实现
目标是使用 4 个双精度数字实现 log2 函数的高效向量化版本AVX2,媲美SVML的__m256d的性能_mm256_log2_pd (__m256d a) 但在其他编译器上可用。
实现方法
log2(a) 的常见策略包括计算指数和 log2 的总和尾数,其范围有限为 1.0 到 2.0。这使我们能够对尾数的 log2 使用多项式近似。
优化
为了提高准确性,我们可以使用两个多项式的比率而不是单个高阶多项式。这种技术可以减少舍入误差并保持高精度。
此外,如果已知输入值为正且有限,我们可以跳过对下溢、溢出或非正规值的检查。这种优化可以显着加快实现速度。
性能注意事项
精度和范围
实现的精度和范围取决于具体的使用多项式近似。在特定范围的尾数值上可以实现非常高的精度。
与现有实现的比较
建议的实现旨在提供快速高效的向量化 log2可以在任何支持 AVX2 的平台上使用的功能。它的目标是与英特尔编译器的 SVML 实现相媲美的高性能,同时也可用于其他编译器。
以上是如何使用 AVX2 高效实现矢量化对数函数?的详细内容。更多信息请关注PHP中文网其他相关文章!