本文介绍了使用CUDA6.5 + MPI时,我必须使用MPS(MULTI-PROCESS SERVICE)吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由链接撰写:

1.1.1。 MPS

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

The Multi-Process Service (MPS) is an alternative, binary-compatible implementation of the CUDA Application Programming Interface (API). The MPS runtime architecture is designed to transparently enable co-operative multi-process CUDA applications, typically MPI jobs, to utilize Hyper-Q capabilities on the latest NVIDIA (Kepler-based) Tesla and Quadro GPUs. Hyper-Q allows CUDA kernels to be processed concurrently on the same GPU; this can benefit performance when the GPU compute capacity is underutilized by a single application process.




  1. 当使用CUDA6.5 + MPI(OpenMPI / IntelMPI)时,我必须使用MPS(MULTI-PROCESS SERVICE),或者我可以使用MPS,错误?

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

If I will not use MPS, does it mean that all my MPI-processes on a single server will execute their GPU-kernel-functions sequentially (not concurrent) on a single GPU-card, but all other behavior will stay the same?


推荐答案


  1. MPS不需要使用MPI

  1. MPS is not required to use MPI

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

If you don't use MPS, but you launch multiple MPI ranks per node (i.e. per GPU), then if you have the compute mode set to default, then your GPU activity will serialize. If you have your compute mode set to EXCLUSIVE_PROCESS or EXCLUSIVE_THREAD, you'll get errors when multiple MPI ranks attempt to use a single GPU.

您可以在找到CUDA MPS文档。

CUDA MPS documentation is available here.

这篇关于使用CUDA6.5 + MPI时,我必须使用MPS(MULTI-PROCESS SERVICE)吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-13 07:56