在运行星系项目时候, 发现集成显卡占用率飙高(奇怪的是独立显卡内存占用也提升)
- 是否是运行在了集成显卡? 还是 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.GUI
的circles
接口与ti.ui.Window
的get_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)
请问同名接口能否统一一下
使用独立显卡后, 帧率从 60fps 提升到 670fps 左右, 但 集成显卡占用率来到30%, 独立显卡占用50%, CPU 占用40%.
ailing
#3
Copying a response from @bobcao3: 这里显示输出是集显在handle,copy可能就不少workload,所以集成显卡有占用可能也正常?