[轉錄][請益] CUDA執行效率不符合預期?

看板C_and_CPP作者 (黑色的風)時間15年前 (2009/03/04 19:25), 編輯推噓3(3020)
留言23則, 3人參與, 最新討論串1/1
※ [本文轉錄自 VideoCard 看板] 作者: blackwindy (黑色的風) 看板: VideoCard 標題: [請益] CUDA執行效率不符合預期? 時間: Wed Mar 4 19:17:55 2009 參照板上某大大的入門教學 我寫了一個很簡單的大陣列相加程式 結果發現效能低落...CPU比GPU跑的還快1倍@@ 我的硬體配備 Athlon 3000+ DDRI 400 1.5GB 9800GT DDRIII 1GB OC (ASUS的鳳梨) 使用CUDA 2.1 顯卡驅動 181.20 我猜測是CPU拖累顯卡? 因為在GPU執行的時候CPU一直是滿載... 那如果真的是CPU拖累 有什麼補救方法嗎@@? 補上code... http://gist.github.com/73815 如果我有哪邊寫錯請指出來@@ 感覺上應該沒什麼問題... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.104.55 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.104.55

03/04 20:36, , 1F
device執行時 host因該是等device執行完才繼續跑
03/04 20:36, 1F

03/04 20:37, , 2F
我也是這麼想,但是我在跑的時候發現CPU一直都是滿載
03/04 20:37, 2F

03/04 20:40, , 3F
可是device在run host因該無法干涉到device
03/04 20:40, 3F

03/04 20:41, , 4F
cpu滿載 因該也沒關係吧
03/04 20:41, 4F

03/04 20:42, , 5F
我看到的確是滿載
03/04 20:42, 5F

03/04 20:43, , 6F
但執行效率不符合預期,這樣我專題沒辦法弄
03/04 20:43, 6F

03/04 20:43, , 7F
可以的話可以幫跑程式看看嗎?
03/04 20:43, 7F

03/04 20:46, , 8F
我只有上過課摸過 手邊也沒機器測..
03/04 20:46, 8F
※ 編輯: blackwindy 來自: 140.123.224.51 (03/04 20:48)

03/04 21:06, , 9F
剛又測試了幾個case,我找到問題了
03/04 21:06, 9F

03/04 21:07, , 10F
記憶體搬移的時間花太久...
03/04 21:07, 10F

03/04 21:13, , 11F
device算完memcpy回來的時間忘了扣掉了嗎....XD
03/04 21:13, 11F

03/04 21:18, , 12F
我陣列開得很大,所以花的時間很長
03/04 21:18, 12F

03/04 21:18, , 13F
看樣子搬移的時候會吃CPU的計算量
03/04 21:18, 13F

03/04 21:19, , 14F
不過我沒想到會花那麼久,要重新評估我的專題了@@
03/04 21:19, 14F

03/04 21:19, , 15F
是的, CPU要r/w VRam的話, 常見就是Lock VRam回來給CPU
03/04 21:19, 15F

03/04 21:19, , 16F
去write, 這個動作的時間比CPU直接access mem還慢得多:)
03/04 21:19, 16F

03/04 21:20, , 17F
不過, 您的專題需要把VRam<->Mem的時間也放下去算嗎??
03/04 21:20, 17F

03/04 21:21, , 18F
因為您Host->Dev的時間沒算, Dev->Host的時間卻算了....
03/04 21:21, 18F

03/04 21:21, , 19F
主要是要作某個演算法的加速運算
03/04 21:21, 19F

03/04 21:22, , 20F
我以為只是單純的ms_time()的位置放錯了而已@_@"
03/04 21:22, 20F

03/04 21:22, , 21F
有大量資料要處理,所以這部份的時間也必須考量
03/04 21:22, 21F

03/04 21:23, , 22F
恩,必須定期的拿運算過的資料回來這樣...
03/04 21:23, 22F

03/04 21:25, , 23F
尷尬了, 先前看的教學裡, 從沒把cudaMemcpy的時間算進去
03/04 21:25, 23F
文章代碼(AID): #19hcKowG (C_and_CPP)