关于优化

憨人 2009-02-11 02:43:18
加精
register用多了 大概16个吧 每个thread里的计算量多了,访存次数少了 但是SM占有率低了
为了让register少一点 想保持10个 就又把kernel细化成两个kernel
但是细化的同时增加了参数表 访存的次数又增加了 虽然都是coalesced 但结果效果却没什么不同 :(
问题大体就是如此 希望大家能来讨论讨论
谈谈自己这方面的经验
...全文
1185 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 43 楼 leon_cuda 的回复:]
怎么计算 一个thread中用了多少个register?
[/Quote]

一种方法是看编译输出的cubin文件.(命令行中加-keep)
还有一种是用cudaprof.
leon_cuda 2010-05-23
  • 打赏
  • 举报
回复
怎么计算 一个thread中用了多少个register?
huang1987hh 2010-05-17
  • 打赏
  • 举报
回复
学习中
lumianph 2010-05-10
  • 打赏
  • 举报
回复
个人实际中感觉occunpancy 对性能的影响比较小,所以如果有另外的performance bottleneck的话这些改变可能对总的效率没有太大影响
zhangwenjianqin 2010-05-07
  • 打赏
  • 举报
回复
学习了!
kattyblume 2009-08-14
  • 打赏
  • 举报
回复
ding ding
caotiancool 2009-04-10
  • 打赏
  • 举报
回复
顶了,很不错
OpenHero 2009-04-08
  • 打赏
  • 举报
回复
找一个折中的比例,不过不是sm占用多就一定好~
有一个折中的配合,需要自己根据自己的程序性能来计算
憨人 2009-04-04
  • 打赏
  • 举报
回复
顶起来下 哈哈
naughty_iori 2009-03-23
  • 打赏
  • 举报
回复
SDK里面有一个CUDA_Occupancy_calculator.xls,用这个可以算出每个MS的占有率。还有考虑显卡上有多少MS和一共有多少任务
  • 打赏
  • 举报
回复
这个 SM占有率 是怎么得到啊?
naughty_iori 2009-03-21
  • 打赏
  • 举报
回复
数据量大的话优化IO是非常重要,尽量减少HOST和DEVICE之间的数据传输,另外就是让数据传输和KERNEL计算并行起来,不过有时候效果不太好??我目前的经验看起来有的时候可以并行,有的时候并不起来,另外只有COPY线性内存才可以和KERNEL并行。
至于寄存器,除了一些比较简单的KERNEL以外,很少有能写到10个以下的,不过为了掩盖GLOBAL MEM操作的时间,在中间多加计算也可以,也就是楼上说的第4条。
掩盖计算我一般的做法就是一边LOAD数据一边计算,LOAD一部分算一部分,尽量不要在LOAD数据后面加SYNC,这样就破坏了PIPELINE,内存操作就掩盖不起来了。所以一般来说,把要处理的数据分成N个不相关的部分,每个部分能用一个WARP处理完,这样是最好的。不过也要考虑总THREAD数,能够把所有的MS都填满。
憨人 2009-03-20
  • 打赏
  • 举报
回复
呃 自己开的贴 结果因为在赶项目 却没来回帖
项目做的差不多了 最后还是采用了多寄存器方案
把一些心得跟大家分享下
我认为程序优化的步骤大体可以这么分

1 实现基本功能
2 优化I/O 这个非常重要(对我的项目来说)
3 优化算法 减少寄存器使用量 保持66%的占有率感觉就不错了 也就是12 -16个register 当然如果能够到10个以内就更好了 这个根据项目来定
除非数据需要重复使用没有必要使用share memory 当然如果变量过多可以考虑增加share 减少 register 保持一个更好的比例
4 掩盖计算(这块是指令级的优化 我现在还做得不好 就不多说了)
5 优化配置
呵呵 先写到这 望大家指正
还得抓紧写论文 要到deadline了
dandinghh 2009-03-18
  • 打赏
  • 举报
回复
顶楼主啊,赚点积分~~
sean20032000 2009-03-18
  • 打赏
  • 举报
回复
学习了,
fmchuan 2009-03-18
  • 打赏
  • 举报
回复
像你们学习!
tai003003 2009-03-18
  • 打赏
  • 举报
回复
不错啊支持下啊
hugo513 2009-03-17
  • 打赏
  • 举报
回复
这个方向好难!
liuweifeng_123 2009-03-17
  • 打赏
  • 举报
回复
学习
GetForHelpHere 2009-03-17
  • 打赏
  • 举报
回复
支持一下
加载更多回复(23)

353

社区成员

发帖
与我相关
我的任务
社区描述
CUDA高性能计算讨论
社区管理员
  • CUDA高性能计算讨论社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧