【问题标题】:CNN training exceeds number of given cores in PBSCNN 训练超过 PBS 中给定核心的数量
【发布时间】:2018-11-19 15:02:10
【问题描述】:

我正在使用名为 darknet/YOLO 的 CNN 对带有 NVIDIA 显卡的远程共享集群进行深度学习。远程集群是带有 PBS 作业计划系统的 linux。

我正在提交在 GPU 上训练神经网络的工作,效果很好。

问题在于训练期间消耗的大量处理器。我通常会提交一个有 8 个处理器的作业,像这样

qsub -q gpu select=1:ncpus=8:ngpus=1:mem=15gb:gpu_cap=cuda61

但由于处理器数量过多,它总是被杀死。即使我将数量增加到 20 个,它仍然超过了。

我不知道为什么暗网会在服务器上消耗这么多处理器,即使我可以在配备 Intel i5 处理器的笔记本上运行该作业(速度慢且效率低)。

我的尝试:

1) 设置cgroups=cpuacct 强制作业不使用分配的更多处理器,但它根本不起作用。似乎限制在服务器没有其他资源的情况下起作用。在有空闲处理器的情况下,限制不起作用(https://drill.apache.org/docs/configuring-cgroups-to-control-cpu-usage/#cpu-limits

2) 设置place=excelhost,如果它超过分配的资源,它不会终止作业。另一方面,用这个标志开始工作需要 7 天,我必须每天训练网络。

问题:

我不需要这些处理器,我不明白为什么暗网使用这么多处理器。我如何强制作业不超过给定的处理器数量?或者其他一些想法我该如何解决这种问题?

【问题讨论】:

    标签: linux deep-learning pbs yolo darknet


    【解决方案1】:

    更有可能是该队列的管理员设置限制与您的请求不匹配。因此,ping 您的管理员并获取队列的详细信息。 (例如 queue1 ppm,gpu's)

    【讨论】:

      【解决方案2】:

      实际上,暗网神经网络在共享集群上使用如此多线程的原因是,暗网甚至没有考虑到它可能在共享集群上运行的可能性。

      正如你在暗网的源代码中看到的——src/detector.c111 (Link) 行,暗网使用 64 个线程为训练和计算准备输入。如果你没有 64 核,它会尽可能多地使用。

      要减少线程数,请替换以下行中的线程数。对我来说 8 个线程是合适的。

      • detector.c 111, 393, 602
      • classifier.c 91

      感谢Metacentrum support

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-25
        • 1970-01-01
        • 2022-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多