半个warp中的线程问题

请问一下,在设备执行的时候,warp中的线程是连续的么?
比如一个(16*8)的 线程块,第一个warp中的线程是那些?按行?按列?还是随机的?

warp中线程是连续的,具体可查看program guide

warp中的线程执行是逻辑上并行的,如果要写与硬件无关的程序应该最小以warp为单位考虑并行
对更加“贪婪”的开发者来说,应该认为half-warp中的线程是真正的硬件上并行的(虽然half-warp宽度比tesla架构的SM中SP数目要大)
但是根据half-warp进行的优化不能保证在其它硬件上可以正常运行
特别是不能保证移植到OpenCL后在AMD平台上的行为

希望楼主说明“连续”想表达的意义

warp中的threads的“连续”是逻辑上的线程id连续
而按行按列则是实际问题的数据存储在空间上的连续
或者是对问题的划分方法

虽然最好是一个half-warp中的线程并行地访问一列中的连续数据
但是线程id和数据之间并不存在强制的按行或者按列对应关系

时间上最好认为是并行的,而不是串行的

[ 本帖最后由 NvidiaCTC 于 2010-1-24 20:57 编辑 ]

:right: 我理解成id连续:)