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

标签 cuda wolfram-mathematica thrust

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

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

并得到以下结果:
CUDAMemory["<135826556>", "Integer32"]

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

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

最佳答案

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

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

关于cuda - 在 Thrust 中读取已分配的内存/向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13369620/

相关文章:

cuda - Thrust::min_element 在 Thrust::device_vector 上发生崩溃(CUDA Thrust)

c++ - CUDA 中用于模板化代码的 static const int

wolfram-mathematica - 如何在 Mathematica 中隐藏评估结果?

wolfram-mathematica - 如何在 mathematica 中自动加载用户定义的函数

cuda - Thrust 如何知道如何自动配置它启动的内核?

c++ - 在 Cuda 8+ 中使用默认推力自展开 CUDA n 暗淡的相同类型元组创建?

cuda - 结构和 Cuda C

cuda - src/cpp/cuda.hpp :14:10: fatal error: cuda. h:没有这样的文件或目录

CUDA 2D、3D 线程 block

wolfram-mathematica - 如何将 Piecewise[] 与可变数量的图形/间隔一起使用