multithreading - 如何使用多 CPU 核心使用 caffe 和 OpenBLAS 训练神经网络

标签 multithreading machine-learning neural-network caffe openblas

我最近在学习深度学习,我的 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/

相关文章:

java - Clojure中的线程局部变量

c# - 了解 CLR 2.0 内存模型

python - 对 MNIST 数据集进行标准化和缩放的正确方法

neural-network - 如何在 PyTorch 中仅在某些时候忽略损失

android - AsyncTask 需要很长时间才能进入 doInBackground()

c# - C#中的线程中止

python - ValueError : Error when checking input: expected cu_dnnlstm_22_input to have 3 dimensions, 但得到形状为 (2101, 17) 的数组

machine-learning - 具有对数和指数激活函数的卷积神经网络

tensorflow - 神经网络每次执行都会给出不同的结果

machine-learning - 神经网络有哪些不同类型或其层次分类