有没有办法在给定的时间发现有多少进程在GPU上运行并可能管理它们(产生,恢复,杀死......必要时)。我想做的是当我运行不同的程序时,监视GPU上的每个进程活动。我没有看到如何做到这一点。我看到GPU上下文是CPU的等价过程,但我读到的所有解释都是关于在单个程序中影响它。同样,我想要的是跟踪GPU上的所有活动(例如使用nvidia-smi
工具,但我自己的方法)。任何人都可以帮助我吗?这甚至可能吗?
答案 0 :(得分:1)
GPU Context是一个驱动程序级别的构造,GPU本身并不了解有关上下文的任何信息。它只知道它有一个命令队列,从驱动程序发送到它,它将运行并执行。各种API的GPU支持公开了对发出命令的支持,我不认为有任何取消命令的命令,尽管有用于检查命令是否已完成的命令。从我的角度检查或操纵其他环境中的命令将背叛上下文的概念。
RE检查GPU正在做什么,你可以通过跟踪驱动程序命令队列在驱动程序级别执行此操作,您发出的是硬件命令队列采样状态,这是很多工作,这就是为什么这个任务通常是留给GPU厂商实施。