【问题标题】:Unknown CUDA error when importing theano导入 theano 时出现未知的 CUDA 错误
【发布时间】:2016-07-14 01:33:11
【问题描述】:

在python中,导入theano后,我得到以下信息:

In [1]: import theano
WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not available  
(error: Unable to get the number of gpus available: unknown error)

我在 ubuntu 14.04 上运行它,我有一个旧的 gpu:GeForce GTX280

还有我的 nvidia 驱动程序:

$ nvidia-smi
Wed Jul 13 21:25:58 2016       
+------------------------------------------------------+                       
| NVIDIA-SMI 340.96     Driver Version: 340.96         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 280     Off  | 0000:02:00.0     N/A |                  N/A |
| 40%   65C    P0    N/A /  N/A |    638MiB /  1023MiB |     N/A      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Compute processes:                                               GPU Memory |
|  GPU       PID  Process name                                     Usage      |
|=============================================================================|
|    0            Not Supported                                               |
+-----------------------------------------------------------------------------+

我不确定为什么它说它是“不支持”,但似乎这可能不是问题,就像 here 所说的那样

还有,CUDA 版本:

$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2014 NVIDIA Corporation
Built on Thu_Jul_17_21:41:27_CDT_2014
Cuda compilation tools, release 6.5, V6.5.12

我能得到的任何帮助都会很棒。我整天都在这......

【问题讨论】:

    标签: python cuda ubuntu-14.04 theano-cuda


    【解决方案1】:

    我感觉到你的痛苦。我花了几天时间解决了所有与 CUDA 相关的错误。

    首先,更新到更新的驱动程序。例如,361。(清洁安装!)然后使用

    彻底清除硬盘驱动器中的 cuda 和 cudnn
    sudo rm -rf /usr/local/cuda
    

    或者你安装它的其他地方,然后安装 cuda 7.5(说真的,这个特定版本)和 cuDNN v4(同样,这个特定版本)

    您可以运行以下命令来结算CUDA。

    wget http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run
    bash cuda_7.5.18_linux.run --override
    

    按照说明进行操作,当他们要求您安装 350 驱动程序时说不。你应该准备好了。

    对于 cudnn,没有 wget 的直接链接,因此您必须从 https://developer.nvidia.com/cudnn 获取安装程序并运行以下命令:

    tar xvzf cudnn-7.0-linux-x64-v4.0-prod.tgz
    sudo cp cuda/include/cudnn.h /usr/local/cuda-7.5/include
    sudo cp -r cuda/lib64/. /usr/local/cuda-7.5/lib64
    
    echo -e 'export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-7.5/lib64"\nexport CUDA_HOME=/usr/local/cuda-7.5' >> ~/.bash_profile
    source ~/.bash_profile
    

    现在在 GPU 上处理 Theano:

    nano ~/.theanorc
    

    添加这些行:

    [global]
    floatX = float32
    device = gpu0
    

    如果您收到 nvcc 错误,请改为:

    [global]
    floatX = float32
    device = gpu0
    [nvcc]
    flags=-D_FORCE_INLINES
    

    【讨论】:

    • 我使用 CUDA 6.5 和驱动程序 340.96 的原因是我的 gpu 与后来的 NVIDIA 驱动程序不兼容。无论如何,我只是更新了硬件(因为它更容易),然后安装了 CUDA 7.5
    【解决方案2】:

    我遇到了同样的问题,并且能够通过做两件事来解决我的问题:

    • 安装 gcc-5 并将 /usr/bin/gcc 链接到 /usr/bin/gcc-5 以及 /usr/bin/g++ 到 /usr/bin/g++-5(PS:我使用的是 cuda 8 )
    • 将此标志 flags=-D_FORCE_INLINES 添加到 nvcc 下的文件 ~/.theanorc 中,因为显然 glibc 2.23 中的错误会导致此问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-26
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 2012-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多