MAN page from openSUSE Leap 42 nvidia-computeG04-396.54-1.1.i586.rpm
Section: NVIDIA (1)
nvidia-cuda-mps-control - NVIDIA CUDA Multi Process Service management program
MPS is a runtime service designed to let multiple MPI processes using CUDA torun concurrently in a way that's transparent to the MPI program.A CUDA program runs in MPS mode if the MPS control daemon is running on the system.
When CUDA is first initialized in a program, the CUDA driver attempts to connectto the MPS control daemon. If the connection attempt fails, the program continuesto run as it normally would without MPS. If however, the connection attempt to thecontrol daemon succeeds, the CUDA driver then requests the daemon to start an MPS serveron its behalf. If there's an MPS server already running, and the user id of that serverprocess matches that of the requesting client process, the control daemon simply notifiesthe client process of it, which then proceeds to connect to the server. If there's no MPSserver already running on the system, the control daemon launches an MPS server with the sameuser id (UID) as that of the requesting client process. If there's an MPS server alreadyrunning, but with a different user id than that of the client process, the control daemonrequests the existing server to shutdown as soon as all its clients are done. Once theexisting server has terminated, the control daemon launches a new server with the userid same as that of the queued client process.
The MPS server creates the shared GPU context, and manages its clients. An MPS server cansupport a finite amount of CUDA contexts determined by the hardware architecture it isrunning on. For compute capability SM 3.5 through SM 6.0 the limit is 16 clients per GPUat a time. Compute capability SM 7.0 has a limit of 48. MPS is transparent to CUDAprograms, with all the complexity of communication between the client process, the serverand the control daemon hidden within the driver binaries.
Currently, CUDA MPS is available on 64-bit Linux only, requires a device that supportsUnified Virtual Address (UVA) and has compute capability SM 3.5 or higher. Applicationsrequiring pre-CUDA 4.0 APIs are not supported under CUDA MPS. Certain capabilities areonly available starting with compute capability SM 7.0.
Start the MPS control daemon, assuming the user has enough privilege (e.g. root).
Print a help message.
Start the front-end management user interface to the MPS control daemon, which needs to bestarted first. The front-end UI keeps reading commands from stdin until EOF.Commands are separated by the newline character. If an invalid command is issued andrejected, an error message will be printed to stdout. The exit status of the front-endUI is zero if communication with the daemon is successful. A non-zero value is returnedif the daemon is not found or connection to the daemon is broken unexpectedly. See the"quit" command below for more information about the exit status.
Commands supported by the MPS control daemon:
- Print out a list of PIDs of all MPS servers.
- start_server -uid UID
- Start a new MPS server for the specified user (UID).
- shutdown_server PID [-f]
- Shutdown the MPS server with given PID. The MPS server will not accept anynew client connections and it exits when all current clients disconnect. -f isforced immediate shutdown. If a client launches a faulty kernel that runs forever,a forced shutdown of the MPS server may be required, since the MPS server createsand issues GPU work on behalf of its clients.
- get_client_list PID
- Print out a list of PIDs of all clients connected to the MPS server with given PID.
- quit [-t TIMEOUT]
- Shutdown the MPS control daemon process and all MPS servers. The MPS controldaemon stops accepting new clients while waiting for current MPS servers and MPSclients to finish. If TIMEOUT is specified (in seconds), the daemon will forceMPS servers to shutdown if they are still running after TIMEOUT seconds.
This command is synchronous. The front-end UI waits for the daemon to shutdown, thenreturns the daemon's exit status. The exit status is zero iff all MPS servershave exited gracefully.
- Commands available to Volta MPS control daemon:
- get_device_client_list PID
- List the devices and PIDs of client applications that enumerated this device. Itoptionally takes the server instance PID.
- set_default_active_thread_percentage percentage
- Set the default active thread percentage for MPS servers. If there is already a serverspawned, this command will only affect the next server. The set value is lost if a quitcommand is executed. The default is 100.
- Query the current default available thread percentage.
- set_active_thread_percentage PID percentage
- Set the active thread percentage for the MPS server instance of the given PID. All clientscreated with that server afterwards will observe the new limit. Existing clients are notaffected.
- get_active_thread_percentage PID
- Query the current available thread percentage of the MPS server instance of the given PID.
- Specify the directory that contains the named pipes and UNIX domain sockets used forcommunication among the MPS control, MPS server, and MPS clients. The value ofthis environment variable should be consistent in the MPS control daemon and allMPS client processes. Default directory is /tmp/nvidia-mps
- Specify the directory that contains the MPS log files. This variable is used by theMPS control daemon only. Default directory is /var/log/nvidia-mps
Log files created by the MPS control daemon in the specified directory
- Record startup and shutdown of MPS control daemon, user commands issued with their results, and status of MPS servers.
- Record startup and shutdown of MPS servers, and status of MPS clients.
- -h, --help
- <no arguments>
This document was created byman2html,using the manual pages.