4

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

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

并得到以下结果:

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

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

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

4

1 回答 1

4

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

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

于 2012-11-14T06:38:14.890 回答