我无法让Theano在我的机器上使用GPU。
当我跑步时: /usr/local/lib/python2.7/dist-packages/theano/misc$ THEANO_FLAGS = floatX = float32,device = gpu python check_blas.py 警告(theano.sandbox.cuda):已安装CUDA,但设备gpu不可用(错误:无法获取可用的gpus数量:未检测到支持CUDA的设备)
我还检查过安装了NVIDIA驱动程序:lspci -vnn | grep -i VGA -A 12
结果:正在使用的内核驱动程序:nvidia
然而,当我跑:nvidia-smi 结果:NVIDIA:无法打开设备文件/ dev / nvidiactl(没有这样的文件或目录)。 NVIDIA-SMI因为无法与NVIDIA驱动程序通信而失败。确保已安装并运行最新的NVIDIA驱动程序。
和/ dev / nvidiaactl不存在。发生了什么事?
更新:/ nvidia-smi适用于结果:
+------------------------------------------------------+
| NVIDIA-SMI 4.304... Driver Version: 304.116 |
|-------------------------------+----------------------+----------------------+
| GPU Name | Bus-Id Disp. | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GRID K520 | 0000:00:03.0 N/A | N/A |
| N/A 39C N/A N/A / N/A | 0% 10MB / 4095MB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Compute processes: GPU Memory |
| GPU PID Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+
在编译NVIDIA_CUDA-6.0_Samples后再运行deviceQuery我得到结果:
cudaGetDeviceCount返回35 - > CUDA驱动程序版本不足以用于CUDA运行时版本 结果=失败
答案 0 :(得分:4)
Linux系统中的CUDA GPU在某些"设备文件"之前是不可用的。已经妥善建立。
在the documentation中有这样的注意事项。
通常,有几种方法可以建立这些设备文件:
如果不采取这些步骤,则GPU将不适用于非root用户。请注意,文件不会通过重新引导而持久存在,并且必须通过上述3种方法之一在每个引导周期中重新建立。如果您使用方法2并重新启动,则在您再次使用方法2之前,GPU将不可用。
如果您在为CUDA GPU使用设置Linux系统时遇到问题,我建议完全阅读linux入门指南(上面已链接)。
答案 1 :(得分:3)
如果您使用的是CUDA 7.5,请务必遵循官方说明: CUDA 7.5不支持默认的g ++版本。安装支持的版本并将其设为默认版本。
sudo apt-get install g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
如果theano GPU测试代码有错误:
错误(theano.sandbox.cuda):无法编译cuda_ndarray.cu: libcublas.so.7.5:无法打开共享对象文件:没有这样的文件或 目录警告(theano.sandbox.cuda):安装了CUDA,但是 设备gpu不可用(错误:cuda unavilable)
只需使用ldconfig
命令链接cuda 7.5的共享对象:
sudo ldconfig /usr/local/cuda-7.5/lib64
答案 2 :(得分:0)
我浪费了很多时间试图让AWS G2在ubuntu上运行,但是因为得到了确切的错误而失败了。目前,我正在使用this redhat AMI顺利运行Theano和gpu。要在Redhat上安装Theano,请按照Theo文档中在CentOS中安装Theano 的过程进行操作。
答案 3 :(得分:0)
有同样的问题并重新安装了Cuda,最后它说我必须更新PATH以包含/usr/local/cuda7.0/bin和LD_LIBRARY_PATH以包含/usr/local/cuda7.0/lib64。可以在/ etc / environment中找到PATH(在同一文件中添加LD_LIBRARY_PATH)。然后theano找到了gpu。我的基本错误......
答案 4 :(得分:0)
我得到了
-> CUDA driver version is insufficient for CUDA runtime version
我的问题与所选的GPU模式有关。
换句话说,当您选择(使用nvidia-settings实用程序,在" PRIME配置文件"配置中)集成的Intel GPU时,问题可能与所选的GPU模式(性能/省电模式)有关。你执行deviceQuery
脚本......你得到这个错误:
但是这个错误是误导性的, 通过选择使用 nvidia-settings 实用程序支持 NVIDIA(效果模式),问题就会消失。
这不是版本问题。
此致
P.s:安装Prime-related-stuff时可以选择。更多详情:https://askubuntu.com/questions/858030/nvidia-prime-in-nvidia-x-server-settings-in-16-04-1