1

通过链接写:https ://docs.nvidia.com/deploy/pdf/CUDA_Multi_Process_Service_Overview.pdf

1.1。乍看上去

1.1.1。MPS

多进程服务 (MPS) 是 CUDA 应用程序编程接口 (API) 的另一种二进制兼容实现。MPS 运行时架构旨在透明地启用协作多进程 CUDA 应用程序,通常是 MPI 作业,以在最新的 NVIDIA(基于 Kepler)Tesla 和 Quadro GPU 上利用 Hyper-Q 功能。Hyper-Q 允许在同一个 GPU 上同时处理 CUDA 内核;当单个应用程序进程未充分利用 GPU 计算能力时,这可以提高性能。

  1. 使用 CUDA6.5 + MPI (OpenMPI / IntelMPI) 时我是否必须使用 MPS(多进程服务),或者我可以使用 MPS 损失一些性能但没有任何错误?

  2. 如果我使用 MPS,这是否意味着我在单个服务器上的所有 MPI 进程将在单个 GPU 卡上按顺序(非并发)执行其 GPU 内核功能,但所有其他行为将保持不变?

4

1 回答 1

5
  1. MPS 不需要使用 MPI

  2. 如果您不使用 MPS,但您为每个节点(即每个 GPU)启动多个 MPI 等级,那么如果您将计算模式设置为默认值,那么您的 GPU 活动将序列化。如果您将计算模式设置为 EXCLUSIVE_PROCESS 或 EXCLUSIVE_THREAD,当多个 MPI 等级尝试使用单个 GPU 时,您将收到错误。

CUDA MPS 文档可在此处获得。

于 2014-09-07T14:35:43.070 回答