gpt4 book ai didi

tensorflow - 如何在 GPU 上并行运行多个模型的 tensorflow 推理?

转载 作者:行者123 更新时间:2023-12-03 16:17:31 27 4
gpt4 key购买 nike

你知道用 1 个 GPU tensorflow 对 2 个 python 进程进行推理的优雅方法吗?

假设我有 2 个进程,第一个是分类猫/狗,第二个是分类鸟/飞机,每个进程运行不同的 tensorflow 模型并在 GPU 上运行。这 2 个模型将连续获得来自不同相机的图像。
通常,tensorflow 会占用整个 GPU 的所有内存。所以当你开始另一个进程时,它会崩溃,说内存不足或卷积 CUDA 失败或类似的东西。
是否有教程/文章/示例代码显示如何在不同进程中加载​​ 2 个模型并同时运行?
如果您在执行一些繁重的图形时运行模型推理,这也非常有用,例如玩游戏。我也想知道运行模型如何影响游戏。

我试过使用 python 线程,它可以工作,但每个模型的预测速度要慢 2 倍(而且你知道 python 线程没有使用多个 CPU 内核)。我想使用 python Process 但它不起作用。如果您有几行代码示例,我将非常感激。

我还附上了当前的线程代码:
enter image description here

最佳答案

好的。我想我现在已经找到了解决方案。

我使用 tensorflow 2 并且基本上有两种方法来管理 GPU 的内存使用情况。

  • 将内存增长设置为 true
  • 将内存限制设置为某个数字

  • 您可以使用这两种方法,忽略所有关于内存不足的警告消息。我仍然不知道它究竟意味着什么,但模型仍在运行,这就是我关心的。
    我测量了模型用于运行的确切时间,它比在 CPU 上运行要好得多。如果我同时运行两个进程,速度会有所下降,但仍然比在 CPU 上运行要好得多。

    对于内存增长方法,我的 GPU 为 3GB,因此第一个进程尝试分配所有内容,然后第二个进程表示内存不足。但它仍然有效。

    对于内存限制方法,我将限制设置为某个数字,例如1024 MB。这两个过程都有效。

    那么您可以设置的正确最小数量是多少?

    我尝试减少内存限制,直到我发现我的模型可以正常使用 64 MB 限制。预测速度还是和我将内存限制设置为 1024 MB 时的一样。当我将内存限制设置为 32MB 时,我注意到速度下降了 50%。当我设置为 16 MB 时,模型拒绝运行,因为它没有足够的内存来存储图像张量。
    这意味着我的模型至少需要 64 MB,考虑到我有 3GB 可用空间,这很少。这也允许我在玩一些视频游戏时运行模型。

    结论:我选择使用具有 64 MB 限制的内存限制方法。您可以在此处查看如何使用内存限制: https://www.tensorflow.org/guide/gpu

    我建议您尝试更改内存限制以查看模型所需的最小值。当内存不足时,您会看到速度下降或模型拒绝运行。

    关于tensorflow - 如何在 GPU 上并行运行多个模型的 tensorflow 推理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60618896/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com