我有一个与此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 = **数组操作**”时,分配了1.7 GB的额外内存。我想要的是利用2 GB的已分配空间来容纳我的杯状数组cp_arr。预先感谢。
答案 0 :(得分:1)
CuPy的内存分配行为与NumPy相似。
与NumPy中一样,几个函数支持out
参数,该参数可用于将计算结果存储到指定的数组中。例如https://docs-cupy.chainer.org/en/stable/reference/generated/cupy.dot.html