Hyper-Q / MPS: Difference between revisions

Jump to navigation Jump to search
→‎Overview: copy editing
No edit summary
(→‎Overview: copy editing)
Line 4: Line 4:
Hyper-Q (or MPS) is a feature of NVIDIA GPUs.
Hyper-Q (or MPS) is a feature of NVIDIA GPUs.
It is available in GPUs with CUDA compute capability 3.5 and higher,<ref>For a table relating NVIDIA GPU model names, architecture names, and CUDA compute capabilties, see [https://en.wikipedia.org/wiki/Nvidia_Tesla https://en.wikipedia.org/wiki/Nvidia_Tesla]</ref>
It is available in GPUs with CUDA compute capability 3.5 and higher,<ref>For a table relating NVIDIA GPU model names, architecture names, and CUDA compute capabilties, see [https://en.wikipedia.org/wiki/Nvidia_Tesla https://en.wikipedia.org/wiki/Nvidia_Tesla]</ref>
which is all GPUs currently deployed on Alliance general-purpose clusters (Cedar, Graham, Béluga, and Narval).
which is all GPUs currently deployed on Alliance general-purpose clusters (Béluga, Cedar, Graham, and Narval).


[https://docs.nvidia.com/deploy/mps/index.html According to NVIDIA],
[https://docs.nvidia.com/deploy/mps/index.html According to NVIDIA],
Line 11: Line 11:
</blockquote>
</blockquote>


In our tests, MPS increases the total GPU flop rate even when the GPU is being shared by unrelated CPU processes ("GPU farming"). That means that MPS is great for CUDA codes with relatively small problem sizes, which on their own cannot efficiently saturate modern GPUs with thousands of cores.  
In our tests, MPS may increase the total GPU flop rate even when the GPU is being shared by unrelated CPU processes. That means that MPS is great for CUDA applications with relatively small problem sizes, which on their own cannot efficiently saturate modern GPUs with thousands of cores.  


MPS is not enabled by default, but it is straightforward to do. If you use the GPU interactively, execute the following commands before running your CUDA code(s):
MPS is not enabled by default, but it is straightforward to do. Execute the following commands before running your CUDA application:


  export CUDA_MPS_PIPE_DIRECTORY=/tmp/nvidia-mps
  export CUDA_MPS_PIPE_DIRECTORY=/tmp/nvidia-mps
Line 19: Line 19:
  nvidia-cuda-mps-control -d
  nvidia-cuda-mps-control -d


If you are using a scheduler, you should submit a script which contains the above lines, and then executes your code.
Then you can use the MPS feature if you have more than one CPU thread accessing the GPU. This will happen if you run a hybrid MPI/CUDA application, a hybrid OpenMP/CUDA application, or multiple instances of a serial CUDA application ("GPU farming").


Then you can avail the MPS feature if you have more than one CPU thread accessing the GPU. This will happen if you run an MPI/CUDA, OpenMP/CUDA code, or multiple instances of a serial CUDA code (GPU farming).
Additional details on MPS can be found here: [https://docs.nvidia.com/deploy/mps/index.html CUDA Multi Process Service (MPS) - NVIDIA Documentation].
 
Many additional details on MPS can be found in this document: [https://docs.nvidia.com/deploy/mps/index.html CUDA Multi Process Service (MPS) - NVIDIA Documentation].


==GPU farming==
==GPU farming==
Bureaucrats, cc_docs_admin, cc_staff
2,879

edits

Navigation menu