我在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完美配合。
答案 0 :(得分:4)
我找到了原因。除 OMP_NUM_THREADS = 20 之外,还应在〜/ .theanorc文件中设置 openmp = True ,现在它消耗所有20个核心。 我的〜/ .theanorc 文件现在看起来像:
[global]
OMP_NUM_THREADS=20
openmp=True