自己的机子是win10系统的,然后用的是anaconda3,毕竟大水蟒对环境和各种库的管理确实很方便。最近想在conda环境下装个cupy,然鹅装好后在运行相关程序时却遇到了两个报错。下面记录一下相应的问题和解决方式,希望能帮大家少踩些坑,也算日后给自己留个提醒。
首先有必要说一下,此前我在当前环境下通过conda命令安装了tensorflow,也就是:
conda install tensorflow-gpu==1.3.1
相比pip,conda的命令会帮你一并安装tensorflow的各种相应版本的依赖包,安装很方便,成功率也更高。在一并安装的package中就包括了cudatoolkit
和cudnn
这两个。正好cupy的运行也是需要这两个依赖的,于是我以为万事大吉,只需要对应cudatoolkit
版本pip install cupy-cuda90
就完事了。随后cupy虽然是顺利装入当前环境了,但是运行代码的时候却报错:
cupy.cuda.compiler.CompileException. catastrophic error: cannot open source file “cuda_fp16.h”
懵逼了很久然后在官方说明文档里面看到了这么一段:
CuPy always raises cupy.cuda.compiler.CompileException.
If you are installing CuPy on Anaconda environment, also make sure that the following packages are not installed.
- cudatoolkit
- cudnn
- nccl
Use conda uninstall cudatoolkit cudnn nccl to remove these package.
后来百度后才知道,conda帮你装的cudatoolkit
和cudnn
某些组件是不完整的,虽然对于tensorflow来说已经满足正常使用了,但是遇到cupy等同样依赖于cuda的包的时候就行不通了。于是尝试先卸载掉cupy和这两个包,然后再另外去Nvidia官方下载cudatoolkit
和cudnn
。但搞的时候发现conda uninstall cudatoolkit cudnn
并不好使,似乎会连带卸载和安装一堆别的包。最后发现这两个包其实可以留着,只要装好官网的cudatoolkit
和cudnn
就可以了,然后再在当前conda环境下装一个对应于官网cuda版本的cupy就可以了。关于cudatoolkit
和cudnn
的版本选择和下载安装,这位博主的说明就非常详细:Win10中CUDA、cuDNN的安装与卸载
我在通过上述步骤安装好cupy后,运行代码时却依旧出现了报错:
RuntimeError: CUDA error: unknown error
我心想尼玛啊,unknown error可还行?但是在搜索解决办法的时候看到了一位网友提到在Pytorch下出现RuntimeError的问题,然后在下面看到了这么一个被采纳的回答:
Did you restart the machine after reinstalling the drivers?
是的你没看错,建议是重启试试,我眉头一皱,心想事情没那么简单…结果重启了一下电脑还真的解决了!兄嘚们,重启大法好啊Orz…
嗯,目前我遇到的就这两个问题,如果各位遇到了别的问题,建议用力拍一拍主机,注意!拍打屏幕是没用的!