繁体   English   中英

警告(theano.sandbox.cuda):已安装CUDA,但设备gpu不可用(错误:cuda不可用)

[英]WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not available (error: cuda unavailable)

在Ubuntu MATE 16.04我试图使用GPU在这里运行深度学习的python示例:

使用GPU测试Theano

我确实运行了示例代码,

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 |
+-----------------------------------------------------------------------------+

终于我解决了! 这篇文章是Ubuntu 16.04,Theano和Cuda

建议添加旗帜

nvcc.flags=-D_FORCE_INLINES 

命令行,所以命令行变为:

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

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

修复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与Ubuntu 16.04

这正是我所做的:

1)我从这里下载了CUDA CUDA 7.5下载选择LINUX,x86_64,Ubuntu 15.04,deb local

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!

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

我修复了这个问题,通过添加〜/ .bashrc的cuda路径,如下所示,

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM