sally_ 发表于 2013-9-9 12:31
第2条中,您应该是手误。我明白了。
手动合并问题我还不懂,不过等到时候自己学了有问题再请教你们。
LZ您好:
我来稍微解释下手工合并的事情。
假定某算法下,你一个线程生成了最终需要存储在一行中的数据(这里用习惯上的行优先存储)。
那么此时,如果每个线程直接向global memory存储,那么一个warp的线程每次存储的时候,相邻线程的写入位置都离得非常远,这极大地影响存储效率。
此时可以将每个线程的生成数据都写到shared memory中,每个线程写一行,然后在适当同步之后,用一组线程去将shared memory中的一行数据写到global memory中,此时是合并访问的,访存效率较高。
大致如此,供您参考。
祝您好运~ |