[问题]有集成显卡和独立显卡的机器, 如何选择所执行的显卡?

在运行星系项目时候, 发现集成显卡占用率飙高(奇怪的是独立显卡内存占用也提升)

  • 是否是运行在了集成显卡? 还是 ti.GUI 需要将数据通过集成显卡再输出?
  • 是否有可能选择程序所执行的显卡?
    已经将代码设置为ti.init(arch=ti.cuda) 并且电脑装有 Nvidia 显卡.
my_gui = ti.GUI("Galaxy", (600, 600))
...
gui.circles(self.pos.to_numpy(), radius=radius, color=color)
...
my_gui.show()

替换为

window= ti.ui.Window('Galaxy', (600, 600))
canvas= window.get_canvas()
...
canvas.circles(self.pos, radius=radius, color=color)
...
window.show()

虽然显示调用了NvidiaGPU, 但canvas.circles报错说self.pos类型不对是什么原因?

canvas.circles 报错说self.pos
这个问题已解决, 因为ti.GUIcircles接口与ti.ui.Windowget_canvas()circles接口不完全一样, 需要将:

    def display(self, gui, radius=2, color=0xffffff):
        gui.circles(self.pos.to_numpy(), radius=radius, color=color)

改为:

    def display(self, gui, radius=0.002, color=(1.0, 0.0, 0.0)):
        gui.circles(self.pos, radius=radius, color=color)

请问同名接口能否统一一下 :joy:

使用独立显卡后, 帧率从 60fps 提升到 670fps 左右, 但 集成显卡占用率来到30%, 独立显卡占用50%, CPU 占用40%.

Copying a response from @bobcao3: 这里显示输出是集显在handle,copy可能就不少workload,所以集成显卡有占用可能也正常?