解決win10使用GPU跑程序遇到的一系列報錯
- 安裝cupy包
- 使用cupy包的時候報錯 ImportError: DLL load failed: 找不到指定的模塊。
- 卸載cuda11.5、安裝cuda10.2
- 安裝適配於cuda10.2的cudnn
- 報錯CUDA path could not be detected. Set CUDA_PATH environment variable if CuPy fails to load.
- 報錯 module 'cupy' has no attribute 'scatter_add'
- Anaconda配cupy環境報錯
- 報錯 ModuleNotFoundError: No module named 'PIL'
- 報錯 cupy.cuda.compiler.CompileException: nvrtc: error: failed to open nvrtc-buil
用GPU跑程序用了cupy包。
pip install cupy-cuda102
這是因為我的cuda是11.5的,為了用用cupy,嘗試了以下幾種方法,均不行。
1.下載cupy的cuda115版本。
2.卸載cupy的cuda115版本,下載cupy的cuda102版本,但是此時cuda還是11.5版本。
3.下載cuda10.2版本,此時電腦的cuda10.2和11.5共存,如下圖所示。
最后發現,能成功的只有一個,那就是cuda10.2+cupy的cuda102。此時電腦只能有一個cuda版本,也就是10.2,所以需要卸載cuda11.5。
這里面有個坑也踩了。如下圖所示,下載cuda10.2之前,必須要卸載完11.5!
不然就會出現這種情況:
打開控制面板,卸載所有cuda11.5的文件,如下圖所示
cuda10.2官網網址:https://developer.nvidia.com/cuda-10.2-download-archive
卸載完11.5,再下載10.2時候,竟然還會出現下面的警告:
這個時候,可以無視,因為的確是先卸載完11.5后下載的10.2。
然后在命令行輸入:出現如下狀態,表示安裝成功。
nvcc -V
此時觀察NVIDA的控制面板,竟然還是11.5,不過可以無視,因為這不影響跑程序。
官網:https://developer.nvidia.com/rdp/cudnn-archive
安裝包下載完解壓
把所有解壓的文件放到:NVIDA GPU Computing Toolkit 里面的V10.2下面
根據報錯的這個路徑,打開這個environment文件。
里面的cuda_path改成cuda的路徑。
這個路徑在哪,其實就在環境變量配置里面。
把這個路徑放到environment文件里,如下圖所示。報錯就解決了。
把cuda降到10.2之后,改了一大堆,程序終於能運行了,可是運行一會就報這個錯。
查了半天,在stackoverflow上面找到了方法,使用下面這句話把cupy版本降低。
pip install "cupy-cuda102<8.0.0"
然后程序終於用GPU跑起來了。
一開始是全部在Anaconda里面配的環境,最后發現無論怎么弄,使用cupy包總報錯。
於是直接用pip了,最后把所有需要的包又在電腦的python文件夾里裝了一份。然后pycharm環境直接用了python的環境。最后能跑成。
問題在於Pillow庫太老了。執行以下兩個命令。
pip uninstall pillow
pip install pillow
還出現類似:找不到nvrtc64_101_0.dll的問題
這個問題是遇到最玄學的一次。
解決辦法就是,重啟一下電腦。
重啟電腦后,就不報錯了,轉而報module ‘cupy’ has no attribute 'scatter_add’這個錯,這個錯就按照上面講的解決就完事。
最后GPU成功跑起來了。區別可以看到,用cpu跑程序的話,cpu占用量在80%以上,用GPU跑程序,cpu占用量只有16%