【问题标题】:Do I have to use the MPS (MULTI-PROCESS SERVICE) when using CUDA6.5 + MPI?使用 CUDA6.5 + MPI 时是否必须使用 MPS(多进程服务)?
【发布时间】:2014-10-31 18:13:36
【问题描述】:

链接写的是: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 内核函数-card,但所有其他行为将保持不变?

【问题讨论】:

    标签: cuda mpi gpgpu nvidia multi-gpu


    【解决方案1】:
    1. 使用 MPI 不需要 MPS

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

    CUDA MPS 文档可用here

    【讨论】:

    • 非常感谢!但是,我是否必须在我的应用程序启动之前启动 MPS-daemon,还是我必须从我的应用程序启动 MPS-daemon,或者 MPS-daemon 将在我启动应用时自动启动
    • 您必须在运行前启动守护进程。
    • @Levi Barnes 但是我是否必须使用 nvidia-cuda-mps-control 或使用 nvidia-cuda-mps-server?
    • 您可能需要阅读documentation,尤其是第 4.1.2 节
    猜你喜欢
    • 2016-04-15
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    • 2012-12-03
    相关资源
    最近更新 更多