一维block的构造

如果一个三维正方体由646464个单元格构成,怎样用一维block进行构造?

最简单的办法,一维block大小为64,每一层有64个block,总共有64层
dim3 grid(1,64,64);
dim3 block(64,1,1);
补充一下,用一维是与实际需求有关的,不一定全部要用一维,因为一维会用更多的shared memory(相对于二维结构),我是分析了visual profile发现寄存器是制约内核的主要因素,而一维block情况下shared memory足够用,所以才用一维方式(当然一维的方式在使用shared memory会比二维简单许多,缺点就是需要的空间更多)

非常感谢版主

感谢楼主前来推了此帖。

我对田园08的2#的帖子说一下看法:

一:
(1)我不建议您在2.x上使用少于192个线程/block的任何线程形状。
(2)我不建议您在3.x上使用少于128线程/block的任何线程形状。
我表示不赞同2#的形状安排,你可以考虑(16, 64, 1) x (256,1,1)之类的形状。当然,只是个人不赞同,以及只是个人建议。

二:
Block shape的形状,和它使用的shared memory多少,没有关系。我表示反对2#的"1维的block会用更多的shared memory(相对于二维结构)"的看法。依然只是个人的反对。供您参考。

欢迎常来论坛。祝您百事可乐。

已经快一个月了,LZ搞定了问题么?

不妨参考一下4#横扫斑竹的关于block 形状的建议。

以及2#中“一维block会占用更多的shared memory”的说法,这个和具体实现有关,不能一概而论。请LZ斟酌。

祝LZ编码愉快~