複数のCPUコアを備えたLasagne/Theanoでロジスティック回帰分類器を実行しています。
これは私の~/.theanorcファイルです:
[global]
OMP_NUM_THREADS=20
theano/misc/ check_blas.pyは 20 コアすべてを消費しますが、私のスクリプトは消費しません。私が実行すると:
python -c 'import theano; print(theano.config)'
openmp の値が False であることがわかります。
openmp () Doc: OpenMP を使用した CPU での並列計算を許可する (または許可しない)。これは、OpenMP 並列化をサポートする Op を作成するときに使用されるデフォルト値です。Theano 構成ファイル ~/.theanorc または環境変数 THEANO_FLAGS を使用して定義することをお勧めします。並列化は、それを実装する一部の操作に対してのみ行われ、並列処理を実装する操作の場合でも、各操作はこのフラグを尊重するかどうかは自由です。環境変数 OMP_NUM_THREADS で使用されるスレッドの数を制御できます。1 に設定すると、デフォルトで Theano の openmp が無効になります。 値: 偽
スクリプトのマルチコア機能を有効にする方法を知っている人はいますか?
blas、atlas、openmp などがシステムにインストールされており、前述のとおり、check_blas.py で完全に動作します。