基本上我想在单个GPU上运行多个MPI排名(NVidia K20c),我知道MPS和开普勒Hyper-Q的存在。
然而,我的问题是,Hyper-Q本身是否足以满足我的需求?或者我必须使用MPS? 根据上面的Hyper-Q链接,“无需额外的编码工作来启用Hyper-Q。只需安装CUDA 5的Tesla K20 GPU并设置环境变量即可让多个MPI排名共享GPU - Hyper -Q随时可以使用。“
这是否意味着我根本不需要MPS?
p.s。,我也知道关于类似主题的以下问题,但似乎没有清楚地回答我的问题。 Do I have to use the MPS (MULTI-PROCESS SERVICE) when using CUDA6.5 + MPI?
感谢。
答案 0 :(得分:4)
您可以在单个GPU上运行多个没有MPS的MPI排名。在这种情况下,所有等级(GPU)代码将序列化。给定等级的GPU代码仅在与先前等级相关联的GPU代码完全完成并退出GPU时才开始执行。
如果您想有机会让一个等级的GPU代码与另一个等级的GPU代码同时执行,那么MPS将是必要的。如果与排名相关联的GPU代码充分利用了GPU,那么您不太可能从MPS中获得太多好处。排名GPU代码可以与另一个等级的GPU代码同时执行,这将带来显着的好处。