【问题标题】:TensorFlow RNN training 100% CPU while only using 60% GPUTensorFlow RNN 训练 100% CPU,而仅使用 60% GPU
【发布时间】:2017-08-08 16:59:21
【问题描述】:

我正在编写用于训练相对较大的 RNN(128 单元 LSTM 和一些附加层)的代码。主要过程是最大化CPU上的一个核心,我想知道这是否正常,或者我是否可以优化它。在训练循环(session.run 调用)期间,它使用大约 60-70% 的 GPU 负载,而在一个核心上使用 100% 的 CPU 负载。请注意,数据采样工作已经在其他内核上同时完成,因此只是模型参数的更新。这对于 TensorFlow 中的此类应用程序是常规的,还是 CPU 负载应该低得多,同时使用 GPU 的全部容量?

【问题讨论】:

  • 有趣...我正在做一些仅使用 30% CPU 和 25% CPU 的培训,并寻找关于为什么它不会使两者都饱和的答案。

标签: tensorflow gpu deep-learning


【解决方案1】:

我们还没有关于它的完整文档,但您可以查看分析信息,看看它是否能让您更了解时间的去向: https://github.com/tensorflow/tensorflow/issues/1824#issuecomment-225754659

【讨论】:

    【解决方案2】:

    我认为RNN单元有两个输入,它在传输数据时必须等待这两个方向的输入,换句话说,它优化并行性不像CNN那么容易。您可以使用大批量来提高 GPU 利用率,但可能会导致其他问题,例如该论文 On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima .

    【讨论】:

      猜你喜欢
      • 2017-03-30
      • 1970-01-01
      • 2021-03-11
      • 2019-04-12
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 2017-09-10
      • 2021-10-31
      相关资源
      最近更新 更多