2010-08-09 57 views
3

你覺得呢?什麼會更快,速度更快:在GPU或CPU(多線程)上執行稀疏矩陣(CSR)乘法(使用向量)?GPU或CPU上的稀疏矩陣乘法?

+0

Bell et al。 「CUDA上的高效稀疏矩陣 - 矢量乘法」具有以下答案:在GPU上計算速度更快。 – Dirk 2013-02-01 14:37:05

回答

4

它取決於矩陣的大小和需要執行的迭代次數。這是因爲您需要將矩陣數據從CPU內存複製到GPU內存,並將GPU的結果複製回CPU。如果你要在矩陣上只執行一次迭代,那麼在CPU上執行它總是更好,而不是在GPU上執行。而且,GPU有啓動時間的問題。所以,如果你有更多的迭代要執行,那麼去GPU,否則我的選擇將是CPU。同樣,由於數據複製,矩陣的大小也會影響性能。

0

我的猜測是GPU的實現不會有太大的收穫,因爲你沒有那種可以實現並行處理的同類數據結構。

+0

嗯我認爲你是對的,但像往常一樣有使用GPU的情況下會贏。並行考慮許多矩陣運算。在CPU上,受限於內核數量,而這些內核的數量通常會少於GPU。 但是,GPU上的雙精度數學性能通常不如浮點運算那麼快。所以這也取決於這一點。 – GorillaPatch 2010-08-10 10:39:34

+0

@GorillaPatch:是的,除了最新的nVidia GPU之外,所有的nVidia GPU都具有相當差或不存在的雙精度性能,即使如此它仍然比單精度慢2倍。要在GPU上獲得巨大勝利,理想情況下需要使用單精度浮點數,並且您的算法需要高度並行化。 – 2010-08-10 13:50:38

0

我認爲veda擊中了它的頭。我絕不是這方面的專家,但我相信在使GPU工作方面存在開銷,並且如果計算的大小不夠大,GPU處理的成本就會失去開銷。然而,如果你有像角色骨架這樣的有很多矩陣相乘的東西,那麼這將更適合GPU。我目前也在爲我的一個項目研究這些事情。