正在为cupy阵列分配GPU内存



我有一个tensorflow会话与这个cupy代码并行运行。我已将总gpu内存的16 Gb中的8 Gb分配给tensorflow会话。我现在想要的是从剩下的7 Gb中分配2 Gb来执行这个cupy代码。实际的代码比我提供的示例代码更为复杂。在我的实际代码中,cp_arr是一系列数组操作的结果。但是我希望cp_array被分配到gpu内存的指定2Gb空间中。请记住,通过关闭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的额外内存。我想要的是利用分配的2GB空间来容纳我的cupy数组cp_arr。提前谢谢。

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

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

最新更新