从官方的NVIDIA多进程服务器docs中浏览,我不清楚它如何与CUDA流交互。
这里有一个例子:
应用程序0:将内核发送到逻辑流0;
应用程序1:将内核发送到(自己的)逻辑流0。
在这种情况下,
1)MPS如何“劫持”这些CUDA调用?对于每个应用程序,它是否完全了解使用的流以及哪些内核位于哪些流中?
2)MPS是否创建自己的2个流,并将相应的内核放入正确的流中?还是MPS通过其他机制实现内核并发性而不是流?
如果有帮助的话,我对MPS在Volta上的工作方式感兴趣,但是关于旧架构的信息也会受到赞赏。
这里有一个例子:
应用程序0:将内核发送到逻辑流0;
应用程序1:将内核发送到(自己的)逻辑流0。
在这种情况下,
1)MPS如何“劫持”这些CUDA调用?对于每个应用程序,它是否完全了解使用的流以及哪些内核位于哪些流中?
2)MPS是否创建自己的2个流,并将相应的内核放入正确的流中?还是MPS通过其他机制实现内核并发性而不是流?
如果有帮助的话,我对MPS在Volta上的工作方式感兴趣,但是关于旧架构的信息也会受到赞赏。