deeplearning4j - DL4j 1.0.0-Beta6 Openblas 不使用多个线程
问题描述
在我的测试服务器上,带有 Openblas 的 DL4j 1.0.0-Beta6 仅使用一个线程。最初它报告线程,所以我导出了 OMP_NUM_THREADS=4,这使得 DL4j 在启动时记录正确的线程数:
[:19:30 CET 2020] org.nd4j.linalg.factory.Nd4jBackend : Loaded [CpuBackend] backend
[:19:30 CET 2020] org.nd4j.nativeblas.NativeOpsHolder : Number of threads used for linear algebra: 4
[:19:30 CET 2020] org.nd4j.nativeblas.Nd4jBlas : Number of threads used for OpenMP BLAS: 4
[:19:30 CET 2020] o.n.l.a.o.e.DefaultOpExecutioner : Backend used: [CPU]; OS: [Linux]
[:19:30 CET 2020] o.n.l.a.o.e.DefaultOpExecutioner : Cores: [4]; Memory: [0.9GB];
[:19:30 CET 2020] o.n.l.a.o.e.DefaultOpExecutioner : Blas vendor: [OPENBLAS]
[:19:30 CET 2020] o.d.nn.multilayer.MultiLayerNetwork : Starting MultiLayerNetwork with WorkspaceModes set to [training: ENABLED; inference: ENABLED], cacheMode set to [DEVICE]
不幸的是,它仍然只使用 100% 的 CPU,而不是预期的 400%。使用 CUDA 在我的笔记本电脑上运行的相同应用程序运行良好,nvidia-smi 报告使用率为 7x%。所以它似乎与测试服务器上的 Openblas 设置有关。我记得前段时间在较旧的 beta 版本中,CPU 已被完全使用,默认情况下使用 MKL(我不能再使用了,因为服务器 CPU 没有 AVX2)。
上面的日志有什么问题或者我可以检查什么吗?
解决方案
很高兴看到您的源代码。请提出问题:https ://github.com/deeplearning4j/deeplearning4j/issues
推荐阅读
- excel - 如何通过 INDIRECT 函数从另一张表中引用数据透视表值?
- python - Adding a second to time for every cell in an excel file, store each time in an array
- javascript - Google 表格脚本 - 太慢了
- r - 通过 `map()` 传递名称以进行延迟评估
- azure - Microsoft Chatbot - 在 Azure 上部署后,“向您的机器人发送此消息时出错:HTTP 状态代码已禁止”
- powershell - 使用powershell更改CSV中单个单元格的时间
- javascript - 如何递归地将嵌套对象数组转换为平面对象数组?
- forms - Xamarin 表单 XAML 设计实例
- aws-lambda - CDK 部署既不更新我的 CoudFormation 模板,也不部署更新
- hyperledger-fabric - HyperLedger Fabric 中是否有排序程序调度方式?