作者blackwindy (黑色的風)
看板C_and_CPP
標題[轉錄][請益] CUDA執行效率不符合預期?
時間Wed Mar 4 19:25:37 2009
※ [本文轉錄自 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
1F:→ willy0206:device執行時 host因該是等device執行完才繼續跑 03/04 20:36
2F:→ blackwindy:我也是這麼想,但是我在跑的時候發現CPU一直都是滿載 03/04 20:37
3F:→ willy0206:可是device在run host因該無法干涉到device 03/04 20:40
4F:→ willy0206:cpu滿載 因該也沒關係吧 03/04 20:41
5F:→ blackwindy:我看到的確是滿載 03/04 20:42
6F:→ blackwindy:但執行效率不符合預期,這樣我專題沒辦法弄 03/04 20:43
7F:→ blackwindy:可以的話可以幫跑程式看看嗎? 03/04 20:43
8F:→ willy0206:我只有上過課摸過 手邊也沒機器測.. 03/04 20:46
※ 編輯: blackwindy 來自: 140.123.224.51 (03/04 20:48)
9F:→ blackwindy:剛又測試了幾個case,我找到問題了 03/04 21:06
10F:→ blackwindy:記憶體搬移的時間花太久... 03/04 21:07
11F:推 VictorTom:device算完memcpy回來的時間忘了扣掉了嗎....XD 03/04 21:13
12F:→ blackwindy:我陣列開得很大,所以花的時間很長 03/04 21:18
13F:→ blackwindy:看樣子搬移的時候會吃CPU的計算量 03/04 21:18
14F:→ blackwindy:不過我沒想到會花那麼久,要重新評估我的專題了@@ 03/04 21:19
15F:推 VictorTom:是的, CPU要r/w VRam的話, 常見就是Lock VRam回來給CPU 03/04 21:19
16F:→ VictorTom:去write, 這個動作的時間比CPU直接access mem還慢得多:) 03/04 21:19
17F:→ VictorTom:不過, 您的專題需要把VRam<->Mem的時間也放下去算嗎?? 03/04 21:20
18F:→ VictorTom:因為您Host->Dev的時間沒算, Dev->Host的時間卻算了.... 03/04 21:21
19F:→ blackwindy:主要是要作某個演算法的加速運算 03/04 21:21
20F:→ VictorTom:我以為只是單純的ms_time()的位置放錯了而已@_@" 03/04 21:22
21F:→ blackwindy:有大量資料要處理,所以這部份的時間也必須考量 03/04 21:22
22F:→ blackwindy:恩,必須定期的拿運算過的資料回來這樣... 03/04 21:23
23F:推 VictorTom:尷尬了, 先前看的教學裡, 從沒把cudaMemcpy的時間算進去 03/04 21:25