请教关于shared memory的问题

问题如下:在一个程序中,我前后有几次调用kernel程序,每次我都想用shared memory节省时间,我前一次调用kernel后使用的shared memory对于后一次是否有影响?是不是在我kernel完成后,shared memory就自动释放了?

附加一个问题:就是我从cpu复制数据到GPU端后,是复制到显存还是global memory?然后在读取的时候是怎么个顺序呢?其次,在global memory中数据的存储方式是顺序存储吗?即每次需要存储的时候都是紧接前一个存储的数据连续存储的呢?因为我需要分配一个较大的空间,我担心没有连续的空间的话,在分配的时候超出存储范围。

多谢各位大侠不吝赐教

[

前一次调用kernel后使用的shared memory对于后一次是没有影响的,shared memory的生命周期仅限于当前kernel,kernel运行结束了就没有了应该。

从CPU复制到GPU中是存储在global memory中的;使用cudaMemcpy复制的数据在global memory中是线性存储的。

好的多谢多谢!那意思就是在GPu上分配空间的时候,理论上有多少显存就可以分配多少空间吗

CPU复制到GPU中是存储在global memory中的;使用cudaMemcpy复制的数据在global memory中是线性存储的。