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

时间:2014-09-07 09:23:56

标签: cuda mpi gpgpu nvidia 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上使用Hyper-Q功能   和Quadro GPU。 Hyper-Q允许处理CUDA内核   同时在同一GPU上;这可以有利于性能   单个应用程序进程未充分利用GPU计算容量。

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

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

1 个答案:

答案 0 :(得分:5)

  1. MPS不需要使用MPI

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

  3. CUDA MPS文档可用here