Bureaucrats, cc_docs_admin, cc_staff
2,879
edits
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 | 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 | 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. | 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 | ||
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"). | |||
Additional details on MPS can be found here: [https://docs.nvidia.com/deploy/mps/index.html CUDA Multi Process Service (MPS) - NVIDIA Documentation]. | |||
==GPU farming== | ==GPU farming== |