我使用Mathematica将一个简单变量加载到GPU内存:
mem = CUDAMemoryLoad[{1, 2, 3}]
得到以下结果:
CUDAMemory["<135826556>", "Integer32"]
现在,有了GPU内存中的这些数据,我想使用Thrust从单独的.cu程序(Mathematica之外)访问它。
有没有办法做到这一点?如果是这样,有人可以解释一下吗?
答案 0 :(得分:4)
不,没有办法做到这一点。 CUDA上下文是私有的,并且在标准API中无法访问进程以访问在另一个进程上下文中分配的内存。
在CUDA 4发布周期中,发布了一个名为cudaIpc的新API。这允许具有在同一主机上运行的CUDA上下文的两个进程导出和交换GPU内存分配的句柄。仅在运行统一寻址支持的Linux主机上支持API。据我所知,Mathematica目前不支持这一点。