在我的GPU上运行当前CUDA上下文

在我的GPU上运行当前CUDA上下文,cuda,cuda-context,Cuda,Cuda Context,是否有任何方法可以在给定的时间发现GPU上运行了多少进程,并可能对其进行管理(在必要时进行屈服、恢复、终止)。我想做的是,当我运行不同的程序时,监视GPU上的每个进程活动。我不知道该怎么做。我看到GPU上下文是进程的CPU等价物,但是我读到的所有解释都是关于在单个程序中影响它的。同样,我想要的是跟踪GPU上的所有活动(如使用nvidia smi工具,但使用我自己的方法)。有人能帮我吗?这可能吗?GPU上下文是驱动程序级的构造,GPU本身对上下文一无所知。它只知道它有一个命令队列,由驱动程序发送给

是否有任何方法可以在给定的时间发现GPU上运行了多少进程,并可能对其进行管理(在必要时进行屈服、恢复、终止)。我想做的是,当我运行不同的程序时,监视GPU上的每个进程活动。我不知道该怎么做。我看到GPU上下文是进程的CPU等价物,但是我读到的所有解释都是关于在单个程序中影响它的。同样,我想要的是跟踪GPU上的所有活动(如使用
nvidia smi
工具,但使用我自己的方法)。有人能帮我吗?这可能吗?

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


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

谢谢,这似乎不是一件容易的事情。