之前一開始以為是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的安裝是否成功
最后刪掉該例程
最后解決了上述虛假報錯的問題