使用CUDA6.5 + MPI时是否必须使用MPS(多处理服务)?

Ale*_*lex 1 cuda gpgpu nvidia mpi multi-gpu

通过以下链接编写: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内核函数,但所有其他行为将保持不变?

Rob*_*lla 5

  1. MPS不需要使用MPI

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

CUDA MPS文档可在此处获得.

  • 您必须在运行之前启动守护程序. (2认同)