BLAS 在矩陣乘法方面的卓越性能
您已經見證了您自己的矩陣乘法函數與布拉斯。這就提出了兩個問題:
1。 BLAS 如何達到極致效能?
BLAS 根據複雜度和最佳化技術分為三個層級:
2.為什麼您的實現速度較慢?
您的實作缺乏 BLAS 使用的快取最佳化。矩陣-矩陣乘法中的 O(N^3) 運算會導致記憶體和快取之間發生大量資料移動。透過實現最大限度地減少快取衝突的專用演算法,BLAS 顯著加速了這一過程。
雖然現代編譯器有助於最佳化程式碼,但它們無法完全彌補 BLAS 實作中使用的專業技術(如 ATLAS、GotoBLAS 和 OpenBLAS)。
BLAS 使用的演算法
BLAS 確實不使用像Coppersmith–Winograd 或Strassen 這樣的複雜演算法,因為:
以上是為什麼 BLAS 比我的矩陣乘法實作快得多?的詳細內容。更多資訊請關注PHP中文網其他相關文章!