【问题标题】:WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not available (error: cuda unavailable)警告(theano.sandbox.cuda):CUDA 已安装,但设备 gpu 不可用(错误:cuda 不可用)
【发布时间】:2016-08-17 10:37:50
【问题描述】:

在 Ubuntu MATE 16.04 中,我正在尝试使用 GPU 在此处运行深度学习 python 示例:

testing Theano with GPU

我确实运行了示例代码,

THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python check1.py

但似乎它使用的是 CPU 而不是 GPU。这是终端输出的最后一部分:

WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu0 is not  available  (error: cuda unavailable)
...
Used the cpu

我也尝试运行此代码:

THEANO_FLAGS=device=cuda0 python check1.py

但输出是:

ERROR (theano.sandbox.gpuarray): pygpu was configured but could not be imported
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/theano/sandbox/gpuarray/__init__.py", line 20, in <module>
    import pygpu
ImportError: No module named pygpu
...
used cpu

我从 apt 安装了 cuda 工具包。 这里有(希望)有用的数据:

python --version
Python 2.7.12

g++ -v
gcc version 5.4.0

nvcc --version
Cuda compilation tools, release 7.5, V7.5.17

lspci
NVIDIA Corporation GM107 [GeForce GTX 750 Ti] (rev a2)

nvidia-smi

+------------------------------------------------------+                       
| NVIDIA-SMI 361.42     Driver Version: 361.42         |                       
|-------------------------------+----------------------+----------------------+
| 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 750 Ti  Off  | 0000:01:00.0      On |                  N/A |
| 29%   35C    P8     1W /  38W |    100MiB /  2044MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0      2861    G   /usr/lib/xorg/Xorg                              90MiB |
+-----------------------------------------------------------------------------+

【问题讨论】:

    标签: python theano theano-cuda


    【解决方案1】:

    终于解决了! 这个帖子 Ubuntu 16.04, Theano and Cuda

    建议加flag

    nvcc.flags=-D_FORCE_INLINES 
    

    到命令行,所以命令行变成:

    THEANO_FLAGS=floatX=float32,device=gpu,nvcc.flags=-D_FORCE_INLINES python check1.py
    

    它似乎修复了使用 glibc 2.23 的错误

    fix for glibc 2.23

    现在程序正确使用了 GPU,这是正确的输出:

    THEANO_FLAGS=floatX=float32,device=gpu,nvcc.flags=-D_FORCE_INLINES python check1.py
    Using gpu device 0: GeForce GTX 750 Ti (CNMeM is disabled, cuDNN not available)
    [GpuElemwise{exp,no_inplace}(<CudaNdarrayType(float32, vector)>), HostFromGpu(GpuElemwise{exp,no_inplace}.0)]
    Looping 1000 times took 0.317012 seconds
    Result is [ 1.23178029  1.61879349  1.52278066 ...,  2.20771813  2.29967761
      1.62323296]
    Used the gpu
    

    请注意,在尝试此解决方案之前,我删除了 nvidia-cuda-toolkit 并从 Nvidia 网站安装了 CUDA,按照此处找到的部分说明进行操作:

    CUDA with Ubuntu 16.04

    这正是我所做的:

    1) 我从这里下载了 CUDA CUDA 7.5 download 选择 LINUX、x86_64、Ubuntu 15.04、deb 本地

    2) 我安装了 deb 文件

    dpkg -i cuda_repo-ubuntu1504-7-5-local_7.5-18_amd64.deb
    

    3) 然后运行

    apt-get update
    

    这会产生一些错误!我用以下几行修复了它覆盖 \var\cuda-repo-7.5-local 中的文件 Release:

    Origin: NVIDIA
    Label: NVIDIA CUDA
    Architecture: repogenstagetemp
    MD5Sum:
     51483bc34577facd49f0fbc8c396aea0            75379 Packages
     4ef963dfa4276be01db8e7bf7d8a4f12            21448 Packages.gz
    SHA256:
     532b1bb3b392b9083de4445dab2639b36865d7df1f610aeef8961a3c6f304d8a            75379 Packages
     2e48cc13b6cc5856c9c6f628c6fe8088ef62ed664e9e0046fc72819269f7432c            21448 Packages.gz
    

    (对不起,我不记得我在哪里看到这个解决方案了)。

    4) 我成功运行

    apt-get-update
    apt-get install cuda
    

    5) 一切都安装在 \usr\local\cuda-7.5

    6) 我在文件 \usr\local\cuda-7.5\include\host-config.h 中注释了第 n 115 行

     #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 9)
    
    //#error -- unsupported GNU version! gcc versions later than 4.9 are not supported!
    
    #endif /* __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 9) */
    

    这似乎阻止了 CUDA 使用 gcc 5.4 在所有这些操作之后,我更新了 .theanorc 文件,添加了 cuda root

    [cuda] 
    root = /usr/local/cuda-7.5 
    

    就是这样:)

    PS:我不知道它是否可以使用 nvidia-cuda-toolkit!

    【讨论】:

      【解决方案2】:

      在我的系统中,只需重新启动系统即可解决此问题。也许你可以试一试。

      【讨论】:

        【解决方案3】:

        我通过将 cuda 路径添加到 ~/.bashrc 来解决这个问题,如下所示,

        export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH
        export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
        export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
        

        【讨论】:

          猜你喜欢
          • 2017-10-31
          • 2013-03-04
          • 2022-11-02
          • 2011-10-21
          • 2017-07-26
          • 2017-02-10
          • 2016-11-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多