1

我有一个与这个 cupy 代码并行运行的 tensorflow 会话。我已将总 gpu 内存的 16 Gb 中的 8 Gb 分配给 tensorflow 会话。我现在想要的是从剩余的 7 Gb 中分配 2 Gb 来执行这个 cupy 代码。实际代码比我提供的示例代码更复杂。在我的实际代码中,cp_arr 是一系列数组操作的结果。但我希望将 cp_array 分配在我的 gpu 内存的指定 2 Gb 空间中。请记住,通过关闭 tensorflow 会话来释放 gpu 资源不是一种选择。

这是我正在使用的代码。

memory = cp.cuda.Memory(2048000000)
ptr = cp.cuda.MemoryPointer(memory,0)
cp_arr = cp.ndarray(shape=(30,1080,1920,3),memptr=ptr)
cp_arr = ** Array operations **

在这种情况下,在执行 'cp_arr = ** Array operations **' 时分配了 1.7 GB 的额外内存。我想要的是利用分配的 2 GB 空间来保存我的 Cupy 数组 cp_arr。提前致谢。

4

1 回答 1

1

CuPy 的内存分配行为类似于 NumPy。

与 NumPy 一样,有几个函数支持out参数,可用于将计算结果存储到指定的数组中。例如,https://docs-cupy.chainer.org/en/stable/reference/generated/cupy.dot.html

于 2018-11-26T07:52:25.900 回答