4

我无法让 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 不可用(错误:无法获取可用 gpu 的数量:未检测到支持 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 运行时版本不足 Result = FAIL

4

5 回答 5

4

在正确建立某些“设备文件”之前,Linux 系统中的 CUDA GPU 不可用。

文档中有关于此效果的注释。

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

  1. 如果 X 服务器正在运行。
  2. 如果以 root 用户身份启动 GPU 活动(例如运行 nvidia-smi 或任何 CUDA 应用程序。)
  3. 通过启动脚本(有关示例,请参阅上面链接的文档)。

如果不采取这些步骤,GPU 将无法用于非 root 用户。请注意,文件不会在重新引导后保留,必须在每个引导周期通过上述 3 种方法之一重新建立。如果您使用方法 2 并重新启动,则在您再次使用方法 2 之前,GPU 将不可用。

如果您在为 CUDA GPU 使用设置 linux 系统时遇到问题,我建议您完整阅读 linux 入门指南(上面链接)。

于 2014-07-09T23:38:24.583 回答
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 不可用)

只需使用ldconfig命令链接 cuda 7.5 的共享对象:

sudo ldconfig /usr/local/cuda-7.5/lib64
于 2016-08-05T04:22:02.097 回答
0

有同样的问题并重新安装了 Cuda,最后它说我必须更新 PATH 以包含 /usr/local/cuda7.0/bin 和 LD_LIBRARY_PATH 以包含 /usr/local/cuda7.0/lib64。可以在 /etc/environment 中找到 PATH(在同一文件中添加 LD_LIBRARY_PATH)。然后theano找到了gpu。我的基本错误...

于 2015-04-26T11:47:34.713 回答
0

我已经浪费了很多时间试图让 AWS G2 在 ubuntu 上工作,但是因为像你一样得到确切的错误而失败了。目前,我正在使用这个redhat AMI顺利运行带有 gpu 的 Theano 。要在 Redhat 上安装 Theano,请遵循Theano 文档中在 CentOS 中安装 Theano的过程。

于 2014-07-23T14:19:43.733 回答
0

我有

-> CUDA driver version is insufficient for CUDA runtime version

我的问题与所选的 GPU 模式有关。换句话说,问题可能与选择的 GPU 模式(性能/省电模式)有关,当您选择(使用 nvidia-settings 实用程序,在“PRIME Profiles”配置中)集成 Intel GPU 并执行deviceQuery脚本时。 ..你得到这个错误:

但是这个错误具有误导性,通过使用nvidia-settings实用程序选择NVIDIA(性能模式) ,问题就消失了。

这不是版本问题

问候

Ps:安装Prime相关的东西时可以选择。更多详情:https ://askubuntu.com/questions/858030/nvidia-prime-in-nvidia-x-server-settings-in-16-04-1

于 2018-04-13T14:52:26.577 回答