用户
 找回密码
 立即注册
hujun21 该用户已被删除
发表于 2013-10-16 11:36:17
81707
图中红色的1是什么意思

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用道具 举报 回复
发表于 2013-10-16 11:45:03
楼主您好,您的截图可能不完整,

第一列的红色代表您一个SM上只能上1个block(同时),
而右侧的8等数据则表明了最好情况下的最大可能值(8个blocks在1个SM上,同时)。

感谢来访。
使用道具 举报 回复 支持 反对
发表于 2013-10-16 12:10:56
横扫千军 发表于 2013-10-16 11:45
楼主您好,您的截图可能不完整,

第一列的红色代表您一个SM上只能上1个block(同时),

这是由于每个线程占用寄存器太多造成呢吗?实际占用率只有可怜的16%。。。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用道具 举报 回复 支持 反对
发表于 2013-10-16 12:13:44
hujun21 发表于 2013-10-16 12:10
这是由于每个线程占用寄存器太多造成呢吗?实际占用率只有可怜的16%。。。

您的确寄存器用的有点多了。。。

在2.x和3.0上(但是3.5除外),最多就是63个。你可以适当考虑减少点。

当然,如果有条件,可以上3.5(255个),这个可能会对你的一些需要较多寄存器数目的算法有好处。

(有便宜的Gk208的3.5的(一般是GT640),你可以先买一个试试看)
使用道具 举报 回复 支持 反对
发表于 2013-10-16 12:22:59
玫瑰幻想 发表于 2013-10-16 12:13
您的确寄存器用的有点多了。。。

在2.x和3.0上(但是3.5除外),最多就是63个。你可以适当考虑减少点。

寄存器占用太多是因为每个线程维护的私有变量太多吗?另外为什么每个sm的达到的占用率还不一样呢?每个sm的任务量应该是一样的~






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用道具 举报 回复 支持 反对
发表于 2013-10-16 12:31:41
hujun21 发表于 2013-10-16 12:22
寄存器占用太多是因为每个线程维护的私有变量太多吗?另外为什么每个sm的达到的占用率还不一样呢?每个sm ...

举个例子说,如果您的任务分配不均衡,某些线程提前结束了,而某些线程始终赖着不走,都会影响你的“achieved occupancy"的。

你要看看你有没有类似的情况。

很多资源是以block为单位分配的,如果这个block中原本有100个线程,99个都退出了,却有1个线程在长期运行,这会导致其他99个线程的资源无法释放,导致很低的achieved occupancy的。

关于您询问的寄存器占用太多是怎么回事,这个一般是因为您使用了太多的私有变量的,您的理解无问题。
但是您可以通过限制-maxrregcount=N(在您的项目属性里的max registers used), 来通过限制N成一个较小的值,例如,30, 来强制降低寄存器使用量的。
(请注意,这不一定带来性能的提升)。
使用道具 举报 回复 支持 反对
发表于 2013-10-16 19:23:04
玫瑰幻想 发表于 2013-10-16 12:31
举个例子说,如果您的任务分配不均衡,某些线程提前结束了,而某些线程始终赖着不走,都会影响你的“achi ...

感谢版主的耐心指导啊~
使用道具 举报 回复 支持 反对
发表于 2013-10-16 19:25:19
hujun21 发表于 2013-10-16 19:23
感谢版主的耐心指导啊~

楼主太客气。

愿论坛与你同在!

使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册