share到底什么时候释放

有两个核函数kernel1、kernel2,在他们中有共享空间share1、share2,为什么在local中都能看到这两个共享空间了?是不是共享空间在所有的核函数中都能看到,那么他们名字是不是不能够相同了?谢谢

LZ您好:

1:某个block的shared memory在该block运行结束的时候予以释放,
2:某个kernel运行结束的时候,该kernel上所有的block都运行结束,此时该kernel任何曾经申请的shared memory都得到或已经释放。
3:shared memory是block内全部线程可见的,不同block之间是互相不可见的,跨kernel更加是不可见的(甚至一般不可能同时存在)。

大致如此,供您参考。

祝您好运~