【问题标题】:Is it possible to threshold the maximum GPU usage per user?是否可以限制每个用户的最大 GPU 使用量?
【发布时间】:2019-07-21 14:16:01
【问题描述】:

我们安装了带有 RTX 2080 Ti GPU 的 Ubuntu 18.04 机器,大约有 3-4 个用户远程使用它。是否可以为每个用户提供最大阈值 GPU 使用率(例如 60%),以便其他任何人都可以使用其余的?

如果有助于提出替代方案,我们正在运行 tensorflow 深度学习模型。

【问题讨论】:

  • 如果您找到了解决方案或解决方法,请不要犹豫回答您自己的问题,因为这将帮助遇到同样问题的人。 (它会给你一些很好的观点(:)
  • 很抱歉没有回答问题并感谢@CiprianTomoiagă 的提醒。请按照下面的答案。

标签: python linux tensorflow gpu nvidia


【解决方案1】:

我很抱歉花了这么长时间才回到这里回答这个问题,即使在找到了解决方法之后也是如此。

确实可以使用 tensorflow 的 per_process_gpu_memory_fraction 来限制 GPU 使用率。 [因此我编辑了问题]

按照 sn-p 为用户分配 46% 的 GPU 内存。

init = tf.global_variables_initializer()

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.46)
with tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) as sess:
    sess.run(init)
    ############
    #Training happens here#
    ############

目前,我们有 2 个用户同时使用同一个 GPU,没有任何问题。我们为每个人分配了 46%。确保没有达到 50-50%(如果这样做,则会发生中止、核心转储错误)。尽量保持大约 300MB 内存处于空闲状态。

事实上,这个 GPU 部门并没有减慢训练过程。令人惊讶的是,至少根据我们的经验,它提供的速度与使用完整内存时的速度大致相同。虽然,这可能会随着高维数据而改变。

【讨论】:

  • 您可以对用户透明地执行此操作吗?或者您必须很好地要求他们在实例化新会话时不要忘记使用gpu_options
  • 不幸的是,是的。我做了一些研究后问了这个问题,但仍然找不到任何东西。所以我们不得不从代码中限制 GPU 的使用。如果您想出一种自动分配 GPU 内存的方法,请在此处发布。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-11
  • 2021-06-04
  • 2019-12-01
  • 2022-07-27
  • 1970-01-01
相关资源
最近更新 更多