2016-05-17 22 views
1

Ich betreibe einen Logistic Regression Klassifikator auf Lasagne/Theano mit mehreren CPU-Kernen.Lasagne/Theano konsumiert keine Multi-Kerne, während check_blas.py

Das ist mein ~/.theanorc Datei:

[global] 
OMP_NUM_THREADS=20 

Theanos/misc/check_blas.py verbraucht alle 20 Kerne aber mein Skript nicht. wenn ich laufe:

python -c 'import theano; print(theano.config)' 

Ich sehe, dass der Wert von openmp Falsch ist:

openmp() Doc: Erlauben Sie (oder nicht) parallele Berechnung auf der CPU mit OpenMP. Dies ist der Standardwert, der beim Erstellen eines Op verwendet wird, der OpenMP-Parallelisierung unterstützt. Es ist vorzuziehen, es über die Konfigurationsdatei Theo ~/.theanorc oder mit der Umgebungsvariablen THEANO_FLAGS zu definieren. Die Parallelisierung wird nur für einige Operationen ausgeführt, die implementieren, und sogar für Operationen, die Parallelität implementieren, ist es jeder -Operation möglich, dieses Flag zu beachten oder nicht. Sie können die Anzahl der Threads steuern, die mit der Umgebungsvariablen OMP_NUM_THREADS verwendet werden. Wenn es auf 1 gesetzt ist, deaktivieren wir standardmäßig openmp in Theano. : False

Weiß jemand, wie ich soll die Multi-Core-Funktion für meinen Skript aktivieren?

blas, atlas, openmp usw. sind auf meinem system installiert und funktionieren wie gesagt perfekt mit check_blas.py.

Antwort

3

Ich fand den Grund. Neben OMP_NUM_THREADS = 20, openmp = True sollte auch in der ~ /. Theanorc-Datei festgelegt werden und jetzt verbraucht es alle 20 Kerne. Mein ~/.theanorc Datei sieht nun wie:

[global] 
OMP_NUM_THREADS=20 
openmp=True 
+1

Beachten Sie, dass, wenn Sie sudo verwenden Sie die .theanorc Datei in/root setzen sollte. – Ash

+0

Wenn die Threads erstellt werden, aber sie die CPU nicht verwenden, besteht eine Möglichkeit darin, openblas aus der Quelle zu installieren und numpy von Quelle zu Punkt zu konfigurieren und zu erstellen, wie auch hier beschrieben: http://stackoverflow.com/questions/11443302/compiling-numpy-with-openblas-integration – Ash

+0

Auch wenn du dein bereits installiertes numpy mit openblas verbinden willst, lies das: http://stackoverflow.com/questions/21671040/link-atlas-mkl-to-an-installed- numpy – Ash