AVX2 中的高效向量化對數實現
目標是使用4 個雙精度數字實現log2 函數的高效向量化版本AVX2 ,媲美SVML的__m256d的性能_mm256_log2_pd (__m256d a)但在其他編譯器上可用。
實作方法
log2(a) 的共同策略包括計算指數和 log2 的總和尾數,其範圍有限為 1.0 到 2.0。這使我們能夠對尾數的 log2 使用多項式近似。
最佳化
為了提高準確性,我們可以使用兩個多項式的比率而不是單一高階多項式。這種技術可以減少捨入誤差並保持高精度。
此外,如果已知輸入值為正且有限,我們可以跳過對下溢、溢位或非正規值的檢查。這種優化可以顯著加快實現速度。
效能注意事項
精度和範圍
實現的精度和範圍取決於特定的使用多項式近似。在特定範圍的尾數值上可以達到非常高的精度。
與現有實現的比較
建議的實現旨在提供快速高效的向量化 log2可以在任何支援 AVX2 的平台上使用的功能。它的目標是與英特爾編譯器的 SVML 實現相媲美的高效能,同時也可用於其他編譯器。
以上是如何使用 AVX2 高效實現向量化對數函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!