我按照 Robert Crovella 的示例介绍了如何使用 Nvidia 的Multi-Process Service。根据文档:
2.1.2. 减少 GPU 上的上下文存储
如果没有 MPS,每个使用 GPU 的 CUDA 进程都会在 GPU 上分配单独的存储和调度资源。相比之下,MPS 服务器分配一份由所有客户端共享的 GPU 存储和调度资源。
我理解为减少每个进程的上下文大小,这是可能的,因为它们是共享的。这将增加可用的 GPU 内存,从而能够并行运行更多进程。
现在,回到示例。没有 MPS:
使用 MPS:
不幸的是,每个进程仍然占用几乎相同 (~300MB) 的内存量。这与文档不矛盾吗?有没有办法减少每个进程的内存消耗?