2016-05-29 6 views
1

Ich benutze Ubuntu 14.04 und Cuda 7.5. Ich Informationen CUDA-Version mit $ nvcc --version:Fehlender nvcc Compiler - Theano

nvcc: NVIDIA (R) Cuda compiler driver 
Copyright (c) 2005-2015 NVIDIA Corporation 
Built on Tue_Aug_11_14:27:32_CDT_2015 
Cuda compilation tools, release 7.5, V7.5.17 

$ PATH und $ LD_LIBRARY_PATH sind unter:

$ echo $PATH 
/usr/local/cuda-7.5/bin:/usr/local/cuda-7.5/bin/:/opt/ros/indigo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games 

$ echo $LD_LIBRARY_PATH 
/usr/local/cuda-7.5/lib64 

ich installieren Theano. Ich benutze es mit CPU aber nicht GPU. This guide sagt, dass

Testing Theano mit GPU¶ Um zu sehen, ob Ihre GPU verwendet wird, schneiden und das folgende Programm in eine Datei einfügen und ausführen.

from theano import function, config, shared, sandbox import 
> theano.tensor as T import numpy import time 
> 
> vlen = 10 * 30 * 768 # 10 x #cores x # threads per core iters = 1000 
> 
> rng = numpy.random.RandomState(22) x = 
> shared(numpy.asarray(rng.rand(vlen), config.floatX)) f = function([], 
> T.exp(x)) print(f.maker.fgraph.toposort()) t0 = time.time() for i in 
> range(iters): 
>  r = f() t1 = time.time() print("Looping %d times took %f seconds" % (iters, t1 - t0)) print("Result is %s" % (r,)) if 
> numpy.any([isinstance(x.op, T.Elemwise) for x in 
> f.maker.fgraph.toposort()]): 
>  print('Used the cpu') else: 
>  print('Used the gpu') The program just computes the exp() of a bunch of random numbers. Note that we use the shared function to make 
> sure that the input x is stored on the graphics device. 

Wenn ich dieses Programm (in check1.py) laufen mit device = cpu, mein Computer dauert etwas länger als 3 Sekunden, während auf der GPU es knapp über 0,64 Sekunden dauert. Die GPU wird nicht immer die exakt gleichen Gleitkommazahlen wie die CPU erzeugen. Als Benchmark benötigt eine Schleife, die numpy.exp (x.get_value()) aufruft, etwa 46 Sekunden.

$ THEANO_FLAGS = mode = FAST_RUN, device = cpu, floatX = float32 Python check1.py [Elemwise {exp, no_inplace}()] Looping 1000mal nahm 3,06635117531 Sekunden Ergebnis ist [1,23178029 1,61879337 1,52278066 ... gebraucht, 2.20771813 2.29967761 1,62323284] die CPU

$ THEANO_FLAGS = mode = FAST_RUN, device = gpu, floatX = float32 python check1.py Mit gpu Gerät 0: GeForce GTX 580 [GpuElemwise {exp, no_inplace}() , HostFromGpu (GpuElemwise {exp, no_inplace} .0)] Ein Looping 1000 Mal dauerte 0.638810873032 Sekunden Ergebnis ist [1.23178029 1 .61879349 1.52278066 ..., 2.20771813 2.29967761 1.62323296] Verwendete GPU Beachten Sie, dass für GPU-Operationen in Theano floatX jetzt float32 sein muss (siehe auch unten).

I gpu Version Befehl ausführen, ohne sudo, wirft sie die Erlaubnis verweigert Fehler:

/theano/gof/cmodule.py", line 741, in refresh 
    files = os.listdir(root) 
OSError: [Errno 13] Permission denied: '/home/user/.theano/compiledir_Linux-3.16--generic-x86_64-with-Ubuntu-14.04-trusty-x86_64-2.7.6-64/tmp077r7U' 

Wenn ich es mit sudo verwenden, wird der Compiler nicht nvcc Weg finden können.

ERROR (theano.sandbox.cuda): nvcc compiler not found on $PATH. Check your nvcc installation and try again. 

Wie kann ich diesen Fehler beheben?

+0

Auf welchem ​​Benutzer läuft das? renn 'whoami'. Ist das Ergebnis "Benutzer"? –

+0

Führen Sie den Befehl ohne Sudo, das Ergebnis ist "Benutzer". – zumma

Antwort

1

Versuchen

chown -R user /home/user/.theano 
chmod -R 775 /home/user/.theano 

läuft dies die Berechtigungen des Ordners, der Ihre Python-Skript keinen Zugriff ändern. Der erste wird den Ordner zu Ihrem Benutzer gehören und der zweite wird die Berechtigungen ändern, um vom Benutzer lesbar, beschreibbar und ausführbar zu sein.

0

nur diesen Fehler In Bezug auf:

Sie können prüfen, wo Ihr NVCC, Pfad ist standardmäßig installiert ist ‚/ usr/local/cuda/bin‘, wenn man es dort sehen könnte dann wie unten tun:

$ export PATH="/usr/local/cuda/bin:$PATH" 
$ source .bashrc 

Das funktionierte für mich und jetzt kann ich NVCC verwenden und es fehlt nicht mehr.

Verwandte Themen