Cuda 在不同的内核调用之间将数据传输到gpu

Cuda 在不同的内核调用之间将数据传输到gpu,cuda,Cuda,我有一个需要几个内核访问的数据,如下所示: //send array for results to GPU //send data to be accessed by all kernels to GPU call kernel1<<...>> call kernel2<<...>> ... call kernelN<<...>> //retrieve array of results from GPU //将结果的数组发

我有一个需要几个内核访问的数据,如下所示:

//send array for results to GPU
//send data to be accessed by all kernels to GPU
call kernel1<<...>>
call kernel2<<...>>
...
call kernelN<<...>>
//retrieve array of results from GPU
//将结果的数组发送到GPU
//将所有内核访问的数据发送到GPU
调用内核1
调用内核2
...
打电话给kernelN
//从GPU检索结果数组

有没有可能?也就是说,让我的数据和结果数组留在GPU的全局内存中,直到我处理完所有内核。或者我必须在每次内核调用之前和之后发送数据并检索结果吗?谢谢

全局内存具有应用程序的生命周期,所以您不必在每次内核调用前后发送数据和检索结果。它将在整个应用程序中保持不变,而不仅仅是在内核调用期间