问题描述
运行开源代码,使用CUDA在GPU运行,报错RuntimeError: CUDA out of memory. Tried to allocate 800.00 MiB (GPU 0; 6.00 GiB total capacity; 3.78 GiB already allocated; 155.14 MiB free; 679.80 MiB cached)
可以发现有6g用了3.78g,但是为什么说剩下只有155M,还有一个679Mcache是什么?现在我也不是很清楚,只是解决了问题
解决方法
搜罗网上方法
- tensorflow和pytorch冲突
我用anaconda创建了新的虚拟环境,还是不行,顺便一提实际上不会冲突至少我最后解决时环境两个都装了,没有发生冲突现象两个都能用。
- 使用gpu进程过多导致gpu显存不足,关闭杀死一些进程
我用命令 nvidia-smi
和任务管理器查看了6g显存几乎没用,显然不是
- 设备号问题默认使用0号显卡,该显卡被用或者其他原因不能使用,应该设置使用其他如1,2号显卡。也有说要显示设置使用0号显卡
具体参考:这里和这里和这里(皮一下)
结论是不行,设备号问题应该是多显卡才会可能发生,我的电脑就一个GTX1060的独显,默认设备号0&