1 系统环境
硬件环境(Ascend/GPU/CPU): GPU
MindSpore版本: mindspore=1.10.1
执行模式(PyNative/ Graph):PyNative
Python版本: Python=3.7.5
操作系统平台: linux
2 报错信息
2.1 问题描述
在python的交互界面下运行脚本,环境显存为24G,在执行print(ms.ops.add(a,b))语句前显存占用为0,在执行完毕print(ms.ops.add(a,b))语句后,抛出错误,显存占用为18647M,未得到释放。
2.2 报错信息
RuntimeError:Malloc for kernel output failed, Memory isn’t enough, node:Default/Add-op0
复制
2.3 脚本代码(代码格式,可上传附件)
import mindspore as ms
import numpy as np
ms.set_context(device_target="GPU")
a=ms.Tensor(np.ones([999,999,999]))
b=ms.Tensor(np.ones([999,999,999]))
print(ms.ops.add(a,b))
复制
3 根因分析
应该是因为在python的交互界面进行执行失败后,对象a和b并没有释放,所以此时的a和b对应的显存也不会被释放。
4 解决方案
可以先用nvidia-smi查看下GPU的进程,具体进程调用GPU的情况可以用这个命令查看: pmap -d PID,
- 最后删除掉进程
kill id
-
附件下载
-
复现及解决问题脚本.rar