顯存充足,但是卻出現CUDA error:out of memory錯誤


 之前一開始以為是cuda和cudnn安裝錯誤導致的,所以重裝了,但是后來發現重裝也出錯了。

后來重裝后的用了一會也出現了問題。確定其實是Tensorflow和pytorch沖突導致的,因為我發現當我同學在0號GPU上運行程序我就會出問題。

詳見pytorch官方論壇:

https://discuss.pytorch.org/t/gpu-is-not-utilized-while-occur-runtimeerror-cuda-runtime-error-out-of-memory-at/34780

因此最好的方法就是運行的時候使用CUDA_VISIBLE_DEVICES限制一下使用的GPU。

比如有0,1,2,3號GPU,CUDA_VISIBLE_DEVICES=2,3,則當前進程的可見GPU只有物理上的2、3號GPU,此時它們的編號也對應變成了0、1,即cuda:0對應2號GPU,cuda:1對應3號GPU。

如何設置CUDA_VISIBLE_DEVICES:

① 使用python的os模塊

import os

os.environ['CUDA_VISIBLE_DEVICES']='2, 3'

②直接設置環境變量(linux系統)

export CUDA_VISIBLE_DEVICES=2,3

 

分割線~~~~~


 猜測有可能是cuda和cudnn安裝錯誤導致的,決定重裝。

卸載CUDA

https://blog.csdn.net/huang_owen/article/details/80811738

https://blog.csdn.net/u014561933/article/details/79968580

由於之前使用的是deb安裝,

sudo apt-get autoremove --purge cuda

卸載后,進入/usr/local,發現還殘留有cuda的文件夾,據說是cudnn,但是我好像沒發現??

進入cuda-9.0

刪除文件夾

 

重新安裝cuda

這次使用.run進行安裝

https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html

安裝完成

之前已經在/etc/profile添加過環境變量了

然后也安裝補丁

 

安裝cudnn

https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installlinux

使用deb方式安裝

並驗證cudnn的安裝是否成功

最后刪掉該例程

最后解決了上述虛假報錯的問題

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM