nvidia-cuda-proxy-control - NVIDIA CUDA proxy management
program
nvidia-cuda-proxy-control [-d]
CUDA proxy is a feature that allows multiple CUDA processes to
share a single GPU context. A CUDA program runs in proxy mode if the proxy
control daemon is running on the system. When a CUDA program starts, it
tries to connect to the daemon, which will then create a proxy server
process for the connecting client if one does not exist for the user (UID)
who launched the client. Each user (UID) has its own proxy server process.
The proxy server creates the shared GPU context, manages its clients, and
issues work to the GPU on behalf of its clients. The proxy mode should be
transparent to CUDA programs.
Currently, proxy is available on 64-bit Linux only, and requires a
device that supports Unified Virtual Address (UVA). Applications requiring
pre-CUDA 4.0 APIs are not supported under proxy mode.
Start the proxy control daemon, assuming the user has enough
privilege (e.g. root).
Start the front-end management user interface to the daemon, which
needs to be started 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 and rejected, an error message will be printed to
stdout. The exit status of the front-end UI is zero if communication with
the daemon is successful. A non-zero value is returned if 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 proxy control daemon:
- get_server_list
- Print out a list of PIDs of all proxy server processes.
- start_server
-uid UID
- Start a new proxy server process for the specified user (UID).
- shutdown_server
PID [-f]
- Shutdown the proxy server with given PID. The proxy server will not
accept any new client connections and it exits when all current clients
disconnect. -f is forced immediate shutdown. If a client launches a
faulty kernel that runs forever, a forced shutdown of the proxy server may
be required, since the proxy server creates and issues GPU work on behalf
of its clients.
- get_client_list
PID
- Print out a list of PIDs of all clients connected to the server with given
PID.
- quit [-t
TIMEOUT]
- Shutdown the proxy control daemon process and all proxy servers. The proxy
control daemon stops accepting new clients while waiting for current proxy
servers and proxy clients to finish. If TIMEOUT is specified (in
seconds), the daemon will force proxy 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, then returns the daemon's exit status. The exit
status is zero iff all proxy servers have exited gracefully.
- CUDA_PROXY_PIPE_DIRECTORY
- Specify the directory that contains the named pipes used for communication
among proxy control, proxy server, and proxy clients. The value of this
environment variable should be consistent in the proxy control daemon and
all proxy client processes. Default directory is /tmp/nvidia-proxy
- CUDA_PROXY_LOG_DIRECTORY
- Specify the directory that contains the proxy log files. This variable is
used by the proxy control daemon only. Default directory is
/var/log/nvidia-proxy
Log files created by the proxy control daemon in the specified
directory
- control.log
- Record startup and shutdown of proxy control daemon, user commands issued
with their results, and status of proxy servers.
- server.log
- Record startup and shutdown of proxy servers, and status of proxy
clients.