Anaconda环境下装cupy遇到的两个坑

两个错误提示如下

    • 1. cupy.cuda.compiler.CompileException
    • 2. RuntimeError: CUDA error: unknown error

自己的机子是win10系统的,然后用的是anaconda3,毕竟大水蟒对环境和各种库的管理确实很方便。最近想在conda环境下装个cupy,然鹅装好后在运行相关程序时却遇到了两个报错。下面记录一下相应的问题和解决方式,希望能帮大家少踩些坑,也算日后给自己留个提醒。

1. cupy.cuda.compiler.CompileException

首先有必要说一下,此前我在当前环境下通过conda命令安装了tensorflow,也就是:

conda install tensorflow-gpu==1.3.1

相比pip,conda的命令会帮你一并安装tensorflow的各种相应版本的依赖包,安装很方便,成功率也更高。在一并安装的package中就包括了cudatoolkitcudnn这两个。正好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帮你装的cudatoolkitcudnn某些组件是不完整的,虽然对于tensorflow来说已经满足正常使用了,但是遇到cupy等同样依赖于cuda的包的时候就行不通了。于是尝试先卸载掉cupy和这两个包,然后再另外去Nvidia官方下载cudatoolkitcudnn。但搞的时候发现conda uninstall cudatoolkit cudnn并不好使,似乎会连带卸载和安装一堆别的包。最后发现这两个包其实可以留着,只要装好官网的cudatoolkitcudnn就可以了,然后再在当前conda环境下装一个对应于官网cuda版本的cupy就可以了。关于cudatoolkitcudnn的版本选择和下载安装,这位博主的说明就非常详细:Win10中CUDA、cuDNN的安装与卸载

2. RuntimeError: CUDA error: unknown error

我在通过上述步骤安装好cupy后,运行代码时却依旧出现了报错:

RuntimeError: CUDA error: unknown error

我心想尼玛啊,unknown error可还行?但是在搜索解决办法的时候看到了一位网友提到在Pytorch下出现RuntimeError的问题,然后在下面看到了这么一个被采纳的回答:

Did you restart the machine after reinstalling the drivers?

是的你没看错,建议是重启试试,我眉头一皱,心想事情没那么简单…结果重启了一下电脑还真的解决了!兄嘚们,重启大法好啊Orz…

嗯,目前我遇到的就这两个问题,如果各位遇到了别的问题,建议用力拍一拍主机,注意!拍打屏幕是没用的!

你可能感兴趣的:(Anaconda环境下装cupy遇到的两个坑)