Skip to content

Command line

Generated from the --help of pgpu v1.0.1. Input pgpu can’t parse gets clap’s error on stderr and exit 2.

share one GPU between jobs and agents
Usage: pgpu <COMMAND>
Commands:
run Run a GPU job in the queue
turn Let a waiting job in between passes, and report the pacing
status What holds the GPU, what waits and why
stats How the GPU was shared, the jobs pgpu stopped, and each job's pacing
pause Hold the queue
resume Release the queue
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
Jobs run GPU_SLOTS at once (~/.config/pgpu/config, else one), never more, interactive first,
sessions taking turns within a class. Nothing runs alone: every job shares a lane, and a waiter
that doesn't take a free lane within 3 s is passed over. A truth or search job whose waits add up to 10
minutes takes turns as a clip, and so does an interactive job that has run 60 s or never calls
turn in its first 5 s. A running job calls `pgpu turn` between passes to let a waiting job in.
Classes and their budgets: interactive 5m, test 10m, clip and render 25m, bench 20m, truth and
search 1h (--budget sets another). Past its budget a job shows red in status; at twice its
budget, or after 5 minutes with no GPU work, turn or CPU, pgpu stops it (SIGTERM, SIGKILL after
15 s) and exits 124. Every job has a memory ceiling, 24G (--memory sets another); it
slows at 15/16 of it and the kernel kills the whole job past it, with no swap. A job frozen or
waiting for the GPU a second or more after it started says so on stderr when it ends, since its
own wall-clock numbers are skewed; the file GPU_QUEUE_FROZEN names holds that time in ms while
it runs. With no --class, `pgpu run` takes its class from PGPU_CLASS, else interactive.
Run a GPU job in the queue
Usage: pgpu run [OPTIONS] -- <COMMAND>...
Arguments:
<COMMAND>...
Options:
--class <CLASS> Priority and budget, else PGPU_CLASS, else interactive [possible values: interactive, test, clip, render, bench, truth, search]
--as <NAME> Session name, else the nearest folder holding .git
--budget <DURATION> Run time before it turns red, stopped at twice that (90s, 15m, 1h30m), else its class's
--memory <SIZE> Memory ceiling, killed past it (32G, 48G), else its class's 24G
-h, --help Print help
Let a waiting job in between passes, and report the pacing
Usage: pgpu turn [--work-ms MS] [--longest-ms MS]
Options:
--work-ms <MS> GPU time the job's own submissions took since its previous turn
--longest-ms <MS> Its longest single submission since then
-h, --help Print help
Unknown or malformed arguments are ignored: turn never fails a job.
What holds the GPU, what waits and why
Usage: pgpu status [OPTIONS]
Options:
--json One JSON object (docs/json.md)
-h, --help Print help
How the GPU was shared, the jobs pgpu stopped, and each job's pacing
Usage: pgpu stats [OPTIONS]
Options:
--days <N> Days back [default: 7]
--pace Each session's pacing
--json JSON (docs/json.md)
-h, --help Print help
Hold the queue
Usage: pgpu pause
Options:
-h, --help Print help
Release the queue
Usage: pgpu resume
Options:
-h, --help Print help