我最近在学习深度学习,我的 friend 向我推荐了caffe。使用 OpenBLAS 安装后,我按照教程 MNIST task 进行操作。在文档中。但后来发现速度 super 慢,而且只有一个CPU核心在工作。
问题是我实验室的服务器没有 GPU,所以我必须使用 CPU。
我用 Google 搜索了这个,得到了一些类似 this 的页面。我尝试导出 OPENBLAS_NUM_THREADS=8
和导出 OMP_NUM_THREADS=8
。但caffe仍然使用一个核心。
如何让caffe使用多CPU?
非常感谢。
最佳答案
@Karthik。这对我也有用。我发现的一个有趣的发现是,使用 4 个线程可以将 caffe 计时测试期间的前向/后向传递减少 2 倍。但是,将线程数增加到 8 甚至 24 会导致 f/b 速度低于我的速度OPENBLAS_NUM_THREADS=4 即可。 以下是一些线程计数的时间(在 NetworkInNetwork 模型上测试)。
[#threads] [f/b 时间(以毫秒为单位)
1223
2 150
4 113
8 125
12144
作为比较,在 Titan X GPU 上,f/b 传递花费了 1.87 毫秒。
关于multithreading - 如何使用多 CPU 核心使用 caffe 和 OpenBLAS 训练神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30195837/