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