在check_blas.py中,Lasagne / Theano不使用多核

时间:2016-05-17 00:18:45

标签: numpy theano keras multicore lasagne

我在Lasagne / Theano上运行Logistic回归分类器,其中有多个 cpu 核心。

这是我的〜/ .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上进行并行计算。这是创建支持的Op时使用的默认值   OpenMP并行化。最好通过Theano来定义它   配置文件〜/ .theanorc或环境变量   THEANO_FLAGS。并行化仅适用于某些操作   实现它,甚至是实现并行性的操作   操作可以自由地尊重这个标志。你可以控制   与环境变量OMP_NUM_THREADS一起使用的线程数。   如果设置为1,我们默认禁用Theano中的openmp。       价值:错误

有人知道如何为我的脚本启用多核功能吗?

blas,atlas,openmp等安装在我的系统上,正如我所说,与check_blas.py完美配合。

1 个答案:

答案 0 :(得分:4)

我找到了原因。除 OMP_NUM_THREADS = 20 之外,还应在〜/ .theanorc文件中设置 openmp = True ,现在它消耗所有20个核心。 我的〜/ .theanorc 文件现在看起来像:

[global]
OMP_NUM_THREADS=20
openmp=True