【问题标题】:How to select GPUs for rendering in Unity?如何在 Unity 中选择 GPU 进行渲染?
【发布时间】:2022-02-22 23:02:38
【问题描述】:

我正在使用 Unity3D 渲染场景,并且我的机器有多个 GPU。有人可以让我知道如何选择 GPU 进行渲染吗?例如,我想使用第二个 GPU 进行渲染。有没有指定GPU?

【问题讨论】:

  • 你想在不同的显示器上显示不同的东西?
  • 实际上,我有一个快速和慢速的 GPU。我想选择快速 GPU 进行渲染。
  • 虽然我不知道这个问题的答案 - 我很好奇为什么你会有两种不同的速度?
  • @Muhwu 一些计算机带有两个 GPU 以延长电池寿命。低功耗 GPU 仅用于浏览网站、键入文档和播放视频。当使用 CPU/GPU 密集型应用程序(如 Maya 和 Photoshop)或玩游戏时,操作系统会自动启用另一个。可能是这样,或者他在他的计算机上添加了另一个更强大的显卡。
  • 您想为编辑器或游戏构建执行此操作吗?

标签: unity3d game-engine


【解决方案1】:

有一个 Unity 命令行选项 -gpu # 可让您选择运行哪些 GPU Unity 应用程序

UnityApp.exe -gpu 1

editor.exe -gpu 0

我还没有看到这个命令行参数的文档,但它让我在我的集​​成和专用 GPU 上进行测试。

【讨论】:

    【解决方案2】:

    您可以更改程序的打开设置,例如兼容模式或图形性能。每个显卡都在计算机上安装了一个管理器,您可以更改/添加您的应用程序。 NVIDIA 指南,这是一个链接:

    Link to guide

    尝试将本指南应用到 Unity3d。

    【讨论】:

    • 是否可以通过命令行来执行此操作,以便我们可以从代码中调用它?
    • 我怀疑它是否可用。你看这不是一个标准。我只知道你在Linux下有一些cli控制,但在windows下,我什么都不知道。但是,我的知识有点过时了。
    【解决方案3】:

    几乎与我相同的情况是板载 GPU0 和外部 GPU1,Unity 使用板载 GPU0 现在使用 GPU1。在 Win10 中,请在显示设置中将您的 GPU1 设置为“主显示器”。旁边是 NVIDIA“控制面板”中的选项,用于使用 GPU1(在我的情况下为 Unity)运行 X 程序,当我的“主显示器”设置为 GPU0 时,该选项不起作用。在我的情况下,将显示器连接到 GPU1 并将其设置为“主显示器”,然后将第二台显示器连接到 GPU0,并将其用于 Unity 以外的其他目的。以 Mickisoft 的方式,这很有意义......

    希望对你有帮助, M8o

    【讨论】:

      【解决方案4】:

      遇到了同样的问题。运行 GeForce GTX 960M。在管理 3D 设置下的 NVIDIA 控制面板中,我将 Unity 自定义为仅在 gpu 上运行,但这仍然没有解决问题。在 Unity 的 Editor.log 文件中,它仍然显示它没有拾取 gpu。尝试在命令提示符中手动指定,但仍然无效(请参阅https://docs.unity3d.com/Manual/GPUProgressiveLightmapper.html)。最后我更新了我的驱动程序(有一个新版本),但我做了一个全新的安装。之后我加载了 unity,它检测到了 gpu,我可以在 unity 中使用 Progressive gpu 进行烘焙。

      【讨论】:

        【解决方案5】:

        我通过从 AMD 网站安装一个管理驱动程序和性能的程序解决了这个问题。就我而言,我有一个 AMD Radeon HD 8670M,它有点旧,所以我猜我们通常在设备管理器中选择的普通“升级驱动程序”按钮是不够的。之后,Unity 和 SketchUp 开始识别专用 GPU 并使用它来代替集成的 Intel HD。

        【讨论】:

          【解决方案6】:

          启动 Unity Player 时(使用 DirectX 时)记录的选项是“-force-device-index”。 见https://docs.unity3d.com/Manual/PlayerCommandLineArguments.html

          【讨论】:

            最近更新 更多