谁能解释下warp是如何分配运行的?

土豆南瓜粥 2014-04-01 08:15:13
在CUDA中,并行计算以warp为基本运算单位,每个warp一般有32个block的,但是有些人说有16个,大神说一下并行计算中warp是如何运算和释放的?
...全文
1965 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rassian 2014-09-27
  • 打赏
  • 举报
回复
赞同9L,希望砖家解答下
土豆南瓜粥 2014-09-04
  • 打赏
  • 举报
回复
受教了,大家都挺厉害的
alpha.5 2014-07-14
  • 打赏
  • 举报
回复
引用 3 楼 woshixiaomage 的回复:
半个warp的技术是很久以前的了,现在的调度基本单位是warp,可同时调度4个warp
这个是不是啊?
_梦魇花葬 2014-07-14
  • 打赏
  • 举报
回复
2楼,已经解释的很清楚了,但是我认为LZ最好是去亲自编程体验一下!现在CUDA6.0好像还有一些新的变化!
w_peter88 2014-06-22
  • 打赏
  • 举报
回复
飘过打油,很高心的啦
tb200379 2014-06-22
  • 打赏
  • 举报
回复
学习中,不错啊
xianzhuhe 2014-06-22
  • 打赏
  • 举报
回复
厉害啊 厉害 真专也
woshixiaomage 2014-04-14
  • 打赏
  • 举报
回复
半个warp的技术是很久以前的了,现在的调度基本单位是warp,可同时调度4个warp
彩阳 2014-04-12
  • 打赏
  • 举报
回复
LZ基本补充完全了。我也很想说warp并不是调度的最小单位,是半warp。
yuanwcj 2014-04-11
  • 打赏
  • 举报
回复
在CUDA中,warp确实是并行运算的基本运算单位,每个warp一般有32个thread(并不是Block),但最小的运算单位并不是warp,而是half warp,即16个thread,CUDA在执行指令时会自动以轮询的方式查询处于空闲状态的half warp,同时将指令发送给16个thread,如果当前的half warp处于工作状态(部分线程仍处于工作状态),会自动查询下一个half warp,具体执行过程是通过warp指令控制器来完成,中间的细节可以不必考虑。 一般来说,Block与warp之间并没有直接的关系,选择Block内的thread多少时,需要尽可能的充分利用SM的资源,这方面的介绍 建议楼主搜索下我的另外两个帖子 深入浅出谈CUDA技术 以及 CUDA中如何选择Block尺寸 ,这里面有比较详细的说明

353

社区成员

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

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