2016-07-14 19 views
2

In Python Import nach Theanos Import, erhalte ich folgendes:Unbekannt CUDA Fehler beim Theanos

In [1]: import theano 
WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not available 
(error: Unable to get the number of gpus available: unknown error) 

Ich laufe dies auf Ubuntu 14.04 und ich habe eine alte gpu: GeForce GTX280

Und mein nvidia-Treiber:

$ nvidia-smi 
Wed Jul 13 21:25:58 2016  
+------------------------------------------------------+      
| NVIDIA-SMI 340.96  Driver Version: 340.96   |      
|-------------------------------+----------------------+----------------------+ 
| 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 280  Off | 0000:02:00.0  N/A |     N/A | 
| 40% 65C P0 N/A/N/A | 638MiB/1023MiB |  N/A  Default | 
+-------------------------------+----------------------+----------------------+ 

+-----------------------------------------------------------------------------+ 
| Compute processes:            GPU Memory | 
| GPU  PID Process name          Usage  | 
|=============================================================================| 
| 0   Not Supported            | 
+-----------------------------------------------------------------------------+ 

ich bin mir nicht sicher, warum es sagt es nicht unterstützt "ist, aber es scheint, als ob das nicht ein Problem sein könnte als die here

Auch die CUDA-Version:

$ nvcc -V 
nvcc: NVIDIA (R) Cuda compiler driver 
Copyright (c) 2005-2014 NVIDIA Corporation 
Built on Thu_Jul_17_21:41:27_CDT_2014 
Cuda compilation tools, release 6.5, V6.5.12 

Jede Hilfe ich wäre genial zu bekommen. Ich war den ganzen Tag dabei ...

Antwort

1

Ich fühle deinen Schmerz. Ich habe ein paar Tage damit verbracht, alle CUDA-relevanten Fehler durchzuarbeiten.

Zuerst auf einen neueren Treiber aktualisieren. zB 361. (SAUBER installieren Sie es!) wischen dann vollständig CUDA und cudnn von Ihrer Festplatte mit

sudo rm -rf /usr/local/cuda 

oder wo auch immer Sie es installiert haben, dann CUDA 7.5 installieren (ernsthaft, diese spezifische Version) und cuDNN v4 (wieder , diese spezifische Version)

Sie können die folgenden Befehle ausführen, um CUDA abzugleichen.

wget http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run 
bash cuda_7.5.18_linux.run --override 

Folgen Sie den Anweisungen, sagen NEIN, wenn sie Sie fragen den 350-Treiber zu installieren. Und du solltest festgelegt sein.

Für cudnn, gibt es keine direkte Verbindung zu wget, so müssen Sie das Installationsprogramm von https://developer.nvidia.com/cudnn erhalten und die folgenden Befehle ausführen:

tar xvzf cudnn-7.0-linux-x64-v4.0-prod.tgz 
sudo cp cuda/include/cudnn.h /usr/local/cuda-7.5/include 
sudo cp -r cuda/lib64/. /usr/local/cuda-7.5/lib64 

echo -e 'export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-7.5/lib64"\nexport CUDA_HOME=/usr/local/cuda-7.5' >> ~/.bash_profile 
source ~/.bash_profile 

Jetzt Theano auf GPU zu handhaben:

nano ~/.theanorc 

füge diese Zeilen hinzu:

[global] 
floatX = float32 
device = gpu0 

Wenn du einen nvcc Fehler bekommst, mach es stattdessen:

[global] 
floatX = float32 
device = gpu0 
[nvcc] 
flags=-D_FORCE_INLINES 
+0

Der Grund, warum ich CUDA 6.5 und Treiber 340.96 verwendet war, dass meine GPU nicht mit späteren NVIDIA-Treibern kompatibel ist. Wie auch immer, ich habe gerade die Hardware aktualisiert (weil es einfacher war) und dann installiert CUDA 7.5 – f34r51n

+0

Gern geschehen. – Wboy

0

Ich hatte das gleiche Problem und konnte mein Problem lösen, indem sie zwei Dinge zu tun: Installieren Sie gcc-5 und Verknüpfung/usr/bin/gcc

  • nach/usr/bin/GCC 5 sowie/usr/bin/g ++ bis/usr/bin/g ++ - 5 (PS: ich benutze cuda 8)
  • Hinzufügen dieser Flag flags = -D_FORCE_INLINES zu der Datei ~ /. Theanorc unter nvcc seit anscheinend a Fehler in glibc 2.23 verursacht dieses Problem