在AVX2 環境下,Intel 的__m256d _mm256_log2_pd (__m2566d _mm256_log2_pd (__m2566d _mm256_log2_pd (__m2566) 除其他函數。器不相容據報道,AMD處理器的效能有所下降。為了解決這個問題,讓我們探索一種提供效率和廣泛相容性的替代實現。
通常,log2(ab) 計算為 log2(a) log2 (二)。由於a由2^指數尾數表示,因此計算簡化為指數log2(尾數)。尾數的有限範圍(1.0 到 2.0)允許定制多項式近似來計算 log2(尾數)。
泰勒級數展開式通常用作係數的起點,但是建議使用極小極大擬合來最小化目標範圍內的誤差。為了獲得接近 1.0 的值的更高精度,可以使用尾數 1.0 作為多項式輸入,從而無需常數項。
所需的精度等級將影響實現選擇。由於額外的計算步驟,更高的精度通常會以速度為代價。 Agner Fog 的 VCL 函式庫提供了高度精確的函數,但採用了複雜的技術,這些技術可能不是所有應用程式都必需的。
VCL 的 log2 函數涉及以下步驟:
以上是如何在不依賴 Intel 編譯器的情況下在 AVX2 中高效實現 log2(__m256d)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!