我有来自NVIDIA的Tesla K20m GPU
卡。在CUDA 5.0
之后,允许来自同一GPU上的同一应用程序的多个进程。 CUDA是否允许同时在同一GPU上执行不同的应用程序?
答案 0 :(得分:1)
同时取决于你的意思'。如果您的意思是“两个应用程序同时在同一张卡上有CUDA上下文”#39;然后是的。
虽然您可能希望使用MPS来获得全部好处并减少上下文切换。另请参阅this question。
答案 1 :(得分:1)
多个应用程序可以在同一GPU上同时运行。即,多个应用程序可以同时具有CUDA上下文并启动内核,复制内存等。
但是来自不同CUDA上下文的内核不能在同一GPU上同时执行。这意味着,在同一时间段内,只能在GPU上执行来自单个CUDA上下文的内核。如果内核没有占用全部GPU资源(内存+计算),这可能会导致GPU使用不足,并且某些资源可能会闲置。
MPS通过实际使用具有单个CUDA上下文的服务器来实现这一点,并且所有客户端进程都通过该服务器与GPU设备进行通信,并最终使用其单个CUDA上下文。这样可以实现从不同(逻辑)CUDA上下文启动内核之间的实际并发性。