2012-05-10 62 views
0

我使用一個線程和8個線程對Eigen SGEMM操作進行了基準測試,得到的結果是性能在512x512處達到峯值,但在超過該大小時會下降。我想知道是否有任何具體的原因可能與更大矩陣的複雜性有關?我在Eigen的網站上查看了基準矩陣矩陣運算的基準,但沒有看到任何類似的結果。當矩陣離線時,本徵並行性能下降512x512

在512x512處,我的並行速度提高了4倍。但在4096x4096我幾乎快了2倍。我使用openMP進行並行處理,並將其設置爲一個線程,我將num_of_threads設置爲兩個。

回答

2

您的結果表明此算法主要是在大矩陣大小的情況下限制內存帶寬。 4Kx4K矩陣(float?)超過了任何可用於單純人羣的CPU的緩存大小,而512x512則可以輕鬆適應大多數現代CPU的L3緩存。

-1

我使用包括Eigen在內的多個BLAS實現對矩陣乘法運行了一些測試。我已發佈結果here。你可能會覺得它很有用。