Re: [问题] 同程式 CUDA核心数量与速度问题

楼主: icbruce (justlikethis)   2014-11-13 15:01:45
※ 引述《k387259 (台湾李宏感)》之铭言:
: 大家好
: 想请问cuda核心数量与运算处理速度的差异
: 我在网络上有抓到一只程式
: 目前也感觉他把平行化处理的很好
: 用了两张卡测试(用CUDA-Z看的)
: GTX760 CUDA核心1152 处理速度1084M Hz
: Quadro K5000 CUDA核心1536 处理速度740M Hz
: 在K5000上"明显"低于GTX760
: (K5000 FPS:30 GTX760 FPS:60)
: 处理速度的差异我知道
: 但想询问核心数目的差异到底在哪
: 是GPU上运算部分可以平行化处理的东西更多吗?
是!
就像是可以简单想成总共有几个人可以同时帮你做事。
: 但是我用CUDA-Z看thread和grid数量一样
: 核心多/处理慢 跟 核心少/处理慢
: gpu运算的code内要怎么处理会比较好呢?
CUDA Optimize 考量因素非常多,
在分配 thread block grid 上就必须要去看硬件的规格,
例如thread 要能整除一个 wrap同时执行的核心数(通常是32)、
block要多过那张卡上SM的数量,让CUDA运算可以满载。
内存的部分也非常重要
GPU上的内存,分为Global memory, share memory, register memory 等 (不懂就查)
你怎么把你的要用的摆在相对应的内存区块,
如果想要更快,可以考虑memory alignment 、memory coalesce
一般而言,你如果能把你要运算的资料一口气放入share memory里面,
避免在运算过程中 access global memory 这样是最完美的。
也可以考虑stream (overlap).
如果不想要那么麻烦的写CUDA,也可以看看OpenACC,就像openmp一样地去加#就行了。
加油!
作者: k387259 (台湾李宏感)   2014-11-13 16:52:00
stream的方法和官方文件有用过 memory这块处理没什么问题关于卡上面SM的数量指的就是CUDA核心数量还是规格写的block最大数量呢?还是你指的是compute capability 3.0之类的东西?http://en.wikipedia.org/wiki/CUDA上面的哪一项呢? 感谢解答
楼主: icbruce (justlikethis)   2014-11-14 15:13:00
http://ppt.cc/wU5Q第六页,kelper共有15个SMX
作者: iHakka (iHakka)   2014-11-14 20:52:00
是GK110芯片有15个SMX,不是kepler架构都有15个SMX
作者: k387259 (台湾李宏感)   2014-11-14 20:53:00
所以要去查那个该显卡芯片有几个SMX吗?找了一下网页 都只有表格显示该显卡thread数量等数据http://ppt.cc/P7g~像该网址提到6 SMX processors应该就是6个没错了吧
作者: iHakka (iHakka)   2014-11-14 20:59:00
15个SMX是前期,GK110到后期才有完整解封印的卡CUDA6.5搭配这世代的显示卡写程式不用顾虑这么多读官方手册放开心去写就好了,效能都不致于太差SM多只是你的卡比较高级装的下比较多核心跟你怎么写无关
作者: k387259 (台湾李宏感)   2014-11-14 22:13:00
喔喔,感谢!因为研究关系想发挥显卡最强效能
楼主: icbruce (justlikethis)   2014-11-14 22:14:00
恩恩,其实单纯写很容易,我之前笨笨的就只有用一个block速度就很慢,之后才知道block要开多一点,让cuda自己排程

Links booklink

Contact Us: admin [ a t ] ucptt.com