使用 MPS 的细粒度内核调度

Fine grained Kernel scheduling with MPS

我正在使用 NVIDIA CUDA Multi Process Service (MPS) 为 运行 多个使用相同 GPU 的 TensorFlow 推理作业。对于我的用例,当 GPU 被多个进程共享时,我有时需要优先执行一个进程的内核。支持吗?

为了更详细地解释问题,请考虑一个示例,其中我们有两个进程 p1 和 p2(每个进程只有一个内核执行流)共享一个 GPU。

场景:当p1和p2的就绪队列中都有一个或多个内核时。

默认 MPS 行为(我的理解):

如果有足够的资源,同时从p1和p2执行多个内核。

期望的行为: 能够根据优先级做出决定,如果:

如果不支持这种自定义调度,如果有人可以指导需要更改哪些代码才能使其工作,那就太好了。

I sometimes need to prioritize execution of kernels of one process over the other. Is this supported?

不,不是。