本文备注/经验分享:
昨日主要说了如何恰当的使用设备上的多种存储器中的global memory, 但还有一部分没有说完...., 例如是0或者2560这样的, 能被256整除, 则下一行的首地址是777或者2560 + 777, 并不能被256整除),这样就造成了一个尴尬的场面, 如果首行对齐了, 那么下一行就无法对齐.如果要保证下一行对齐...L2传输带宽, 每行不对齐会影响性能), 基本上现在这个cudaMallocPitch已经用途不大了,正常大部分情况下的使用, 它基本不会带来性能上的提升(特别是对于卡计算的kernel), 却可能带来不小的显存上的浪费...(实际上只有同一个地址, 例如my_big_array[3], 会被映射成s[3 + tid]的, 这种才可以, 而且是合并的....手册后面有如何使用warp shuffle。
有不明白的地方,请在本文后留言
或者在我们的技术论坛bbs.gpuworld.cn上发帖