在AWS g2上的Ubuntu 14.04上使用Theano和GPU

时间:2014-07-09 23:06:21

标签: python cuda gpu nvidia theano

我无法让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运行时版本 结果=失败

5 个答案:

答案 0 :(得分:4)

Linux系统中的CUDA GPU在某些"设备文件"之前是不可用的。已经妥善建立。

the documentation中有这样的注意事项。

通常,有几种方法可以建立这些设备文件:

  1. 如果X服务器正在运行。
  2. 如果以root用户身份启动GPU活动(例如运行nvidia-smi或任何CUDA应用程序)。
  3. 通过启动脚本(请参阅上面链接的文档以获取示例)。
  4. 如果不采取这些步骤,则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