我在 kernel.cu 文件中声明了一个静态数组
__device__ int myStaticArray[5];
我可以使用从主机修改这个数组
myKernel.SetConstantVariable("myStaticArray", new int[]{1,2,3,4,5});
经过几次处理,我想将此数组复制到主机,我该怎么做?
EDIT1:我注意到每次运行新内核时都会重置阵列。我不能使用该数组来保留要在下一个内核中使用的中间值。是否可以以静态方式保持这些值?
EDIT2:在EDIT1中出现问题是因为我使用 LoadKernelPTX 加载了多个内核。正确的方法是加载一次模块,然后从该模块构造多个内核。(如https://github.com/kunzmi/managedCuda/wiki/CudaKernel中所建议)这样,我可以在多个内核之间共享静态数组/变量。