解决win10使用GPU跑程序遇到的一系列报错
解決win10使用GPU跑程序遇到的一系列報(bào)錯(cuò)
- 安裝cupy包
- 使用cupy包的時(shí)候報(bào)錯(cuò) ImportError: DLL load failed: 找不到指定的模塊。
- 卸載cuda11.5、安裝cuda10.2
- 安裝適配于cuda10.2的cudnn
- 報(bào)錯(cuò)CUDA path could not be detected. Set CUDA_PATH environment variable if CuPy fails to load.
- 報(bào)錯(cuò) module 'cupy' has no attribute 'scatter_add'
- Anaconda配cupy環(huán)境報(bào)錯(cuò)
- 報(bào)錯(cuò) ModuleNotFoundError: No module named 'PIL'
- 報(bào)錯(cuò) cupy.cuda.compiler.CompileException: nvrtc: error: failed to open nvrtc-buil
安裝cupy包
用GPU跑程序用了cupy包。
pip install cupy-cuda102使用cupy包的時(shí)候報(bào)錯(cuò) ImportError: DLL load failed: 找不到指定的模塊。
這是因?yàn)槲业腸uda是11.5的,為了用用cupy,嘗試了以下幾種方法,均不行。
1.下載cupy的cuda115版本。
2.卸載cupy的cuda115版本,下載cupy的cuda102版本,但是此時(shí)cuda還是11.5版本。
3.下載cuda10.2版本,此時(shí)電腦的cuda10.2和11.5共存,如下圖所示。
最后發(fā)現(xiàn),能成功的只有一個(gè),那就是cuda10.2+cupy的cuda102。此時(shí)電腦只能有一個(gè)cuda版本,也就是10.2,所以需要卸載cuda11.5。
這里面有個(gè)坑也踩了。如下圖所示,下載cuda10.2之前,必須要卸載完11.5!
不然就會(huì)出現(xiàn)這種情況:
卸載cuda11.5、安裝cuda10.2
打開(kāi)控制面板,卸載所有cuda11.5的文件,如下圖所示
cuda10.2官網(wǎng)網(wǎng)址:https://developer.nvidia.com/cuda-10.2-download-archive
卸載完11.5,再下載10.2時(shí)候,竟然還會(huì)出現(xiàn)下面的警告:
這個(gè)時(shí)候,可以無(wú)視,因?yàn)榈拇_是先卸載完11.5后下載的10.2。
然后在命令行輸入:出現(xiàn)如下?tīng)顟B(tài),表示安裝成功。
此時(shí)觀察NVIDA的控制面板,竟然還是11.5,不過(guò)可以無(wú)視,因?yàn)檫@不影響跑程序。
安裝適配于cuda10.2的cudnn
官網(wǎng):https://developer.nvidia.com/rdp/cudnn-archive
安裝包下載完解壓
把所有解壓的文件放到:NVIDA GPU Computing Toolkit 里面的V10.2下面
報(bào)錯(cuò)CUDA path could not be detected. Set CUDA_PATH environment variable if CuPy fails to load.
根據(jù)報(bào)錯(cuò)的這個(gè)路徑,打開(kāi)這個(gè)environment文件。
里面的cuda_path改成cuda的路徑。
這個(gè)路徑在哪,其實(shí)就在環(huán)境變量配置里面。
把這個(gè)路徑放到environment文件里,如下圖所示。報(bào)錯(cuò)就解決了。
報(bào)錯(cuò) module ‘cupy’ has no attribute ‘scatter_add’
把cuda降到10.2之后,改了一大堆,程序終于能運(yùn)行了,可是運(yùn)行一會(huì)就報(bào)這個(gè)錯(cuò)。
查了半天,在stackoverflow上面找到了方法,使用下面這句話把cupy版本降低。
pip install "cupy-cuda102<8.0.0"
然后程序終于用GPU跑起來(lái)了。
Anaconda配cupy環(huán)境報(bào)錯(cuò)
一開(kāi)始是全部在Anaconda里面配的環(huán)境,最后發(fā)現(xiàn)無(wú)論怎么弄,使用cupy包總報(bào)錯(cuò)。
于是直接用pip了,最后把所有需要的包又在電腦的python文件夾里裝了一份。然后pycharm環(huán)境直接用了python的環(huán)境。最后能跑成。
報(bào)錯(cuò) ModuleNotFoundError: No module named ‘PIL’
問(wèn)題在于Pillow庫(kù)太老了。執(zhí)行以下兩個(gè)命令。
pip uninstall pillow pip install pillow報(bào)錯(cuò) cupy.cuda.compiler.CompileException: nvrtc: error: failed to open nvrtc-buil
還出現(xiàn)類似:找不到nvrtc64_101_0.dll的問(wèn)題
這個(gè)問(wèn)題是遇到最玄學(xué)的一次。
解決辦法就是,重啟一下電腦。
重啟電腦后,就不報(bào)錯(cuò)了,轉(zhuǎn)而報(bào)module ‘cupy’ has no attribute 'scatter_add’這個(gè)錯(cuò),這個(gè)錯(cuò)就按照上面講的解決就完事。
最后GPU成功跑起來(lái)了。區(qū)別可以看到,用cpu跑程序的話,cpu占用量在80%以上,用GPU跑程序,cpu占用量只有16%
總結(jié)
以上是生活随笔為你收集整理的解决win10使用GPU跑程序遇到的一系列报错的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python 解决bytes和str之间
- 下一篇: 怎么修改ppt的虚线间隔_还有一小时下班