kernel每次运行的时间都相差很大

cs870101 2009-05-21 10:24:31
不断增加每个block中线程的数目,但是当线程数目增加到一定程度时,每次运行kernel的时间都相差很大。
利用Cuda Visual Profiler在该线程下启动失败。故推测是资源超了
观察了一下每个线程使用的寄存器为35个,此时,每个线程数为224,35 * 224 = 7840 < 8192也没有超啊
PS:显卡为Quadro Fx 5600
...全文
142 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用楼主 cs870101 的帖子:]
不断增加每个block中线程的数目,但是当线程数目增加到一定程度时,每次运行kernel的时间都相差很大。
[/Quote]

每个sm中只有8个sp,换句话说,只要有一个warp(32个线程),计算就"满"了,所以,LZ在增加每个block中线程的数目时
重叠的是取数据时间,当增加到一定程度时,取数据时间重叠完了,自然运行时间要直线上升.

[Quote=引用楼主 cs870101 的帖子:]
观察了一下每个线程使用的寄存器为35个,
[/Quote]

是cubin文件中的结果吗?

581

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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