作者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