1

有没有办法在给定的时间发现有多少进程在 GPU 上运行并可能管理它们(yield,resume,kill ... 必要时)。我想要做的是当我运行不同的程序时,监控 GPU 上的每个进程活动。我没有看到如何做到这一点。我看到 GPU 上下文是进程的 CPU 等价物,但是我读到的所有解释都是关于在单个程序中影响它。同样,我想要的是跟踪 GPU 上的所有活动(就像使用该nvidia-smi工具,但使用我自己的方式)。任何人都可以帮助我吗?这甚至可能吗?

4

1 回答 1

1

GPU 上下文是驱动程序级别的构造,GPU 本身对上下文一无所知。它所知道的是它有一个命令队列,从驱动程序发送给它,它将运行并执行。GPU 支持的各种 API 公开了对发出命令的支持,尽管有用于检查命令是否已完成的命令,但我认为没有任何命令可以取消命令。从我的角度来看,在其他上下文中检查或操作命令将背叛上下文的概念。

RE 检查 GPU 正在做什么,您可以通过跟踪驱动程序命令队列、您正在发出和硬件命令队列采样状态在驱动程序级别执行此操作,这是很多工作,这就是为什么这个任务通常留给 GPU供应商实施。

于 2016-08-09T12:03:00.120 回答