偶然發現這個論壇主題dot product faster on cpu than on gpu using OpenCL,我再次被提醒,有些實例看起來像是爲OpenCL *製作的,但是它們在何處使用,OpenCL並沒有爲我們提供增益。即我也有一個使用pyopencl代碼的kmeans實現,它比簡單的python代碼快幾倍,但仍然比kmeans的scipy函數快幾倍。何時使用OpenCL?
那麼你如何決定何時使用OpenCL?
- 你需要什麼顯卡?顯卡必須要比'cpu'好多少。 Quadro FX 580與i7 860足夠嗎?
- 問題有多大?你需要數百萬次的乘法才能獲得某些東西或者有幾百個足夠的東西?
- 爲了讓OpenCL有價值,需要對kmeans或dot產品等「簡單」算法進行多少優化?
或者是這些三角形的情況下,你只能(/不得不)選擇三個角落中的兩個,使其工作?
problem size /\ /\ / \ / \ /________\ GPU/CPU optimization
我知道,我以前有點太大膽的語言,標題和問題的。如果我能想出更合適的措辭,我會改變它。
謝謝。像點積,k均值或矩陣乘法
添加到什麼裏克已經提到的,如果問題規模大足夠的話,你將幾乎總是在將計算交給GPU的過程中獲得良好的性能。所以如果一個給定的函數在CPU上比較慢(與CPU相比),那麼如果它是GPU上實現的更大代碼的一部分,則仍然可以隱藏開銷,而不必承擔主機之間的傳輸頭(MAIN )和設備(GPU)內存。 – 2011-04-21 23:34:27