在Thrust中读取已分配的内存/向量

时间:2012-11-13 22:02:57

标签: cuda wolfram-mathematica thrust

我使用Mathematica将一个简单变量加载到GPU内存:

mem = CUDAMemoryLoad[{1, 2, 3}]

得到以下结果:

CUDAMemory["<135826556>", "Integer32"]

现在,有了GPU内存中的这些数据,我想使用Thrust从单独的.cu程序(Mathematica之外)访问它。

有没有办法做到这一点?如果是这样,有人可以解释一下吗?

1 个答案:

答案 0 :(得分:4)

不,没有办法做到这一点。 CUDA上下文是私有的,并且在标准API中无法访问进程以访问在另一个进程上下文中分配的内存。

在CUDA 4发布周期中,发布了一个名为cudaIpc的新API。这允许具有在同一主机上运行的CUDA上下文的两个进程导出和交换GPU内存分配的句柄。仅在运行统一寻址支持的Linux主机上支持API。据我所知,Mathematica目前不支持这一点。