我最近正在学习深度学习,我的朋友推荐我caffe。使用OpenBLAS安装后,我按照文档中的教程MNIST task进行操作。但后来我发现它超级慢,只有一个CPU核心工作。
问题是我实验室中的服务器没有GPU,所以我不得不使用CPU。
我用Google搜索并获得了一些像this这样的页面。我尝试export OPENBLAS_NUM_THREADS=8
和export OMP_NUM_THREADS=8
。但是caffe仍然使用了一个核心。
如何让caffe使用多CPU?
非常感谢。
答案 0 :(得分:2)
@Karthik。这对我也有用。我做的一个有趣的发现是,使用4个线程可以在caffe定时测试期间减少向前/向后传递2倍。但是,将线程数增加到8或甚至24会导致f / b速度小于我的速度获得OPENBLAS_NUM_THREADS = 4。 以下是几个线程计数的时间(在NetworkInNetwork模型上测试)。
[#threads] [f / b时间以毫秒为单位]
1 223
2 150
4 113
8 125
12 144
相比之下,在Titan X GPU上,f / b通过时间为1.87 ms。
答案 1 :(得分:1)
构建OpenBLAS时,必须设置USE_OPENMP = 1标志以启用OpenMP支持。接下来设置Caffe在Makefile.config中使用OpenBLAS,请通过设置OMP_NUM_THREADS = n导出在运行时期间要使用的线程数。其中n是您想要的线程数。
答案 2 :(得分:-2)
我发现这种方法有效:
在make命令中构建caffe时,请将其用于8个核心:
make all -j8
和
make pycaffe -j8
另外,请确保
OPENBLAS_NUM_THREADS=8
已经确定了。
This问题有一个完整的脚本。