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 waiterthat doesn't take a free lane within 3 s is passed over. A truth or search job whose waits add up to 10minutes takes turns as a clip, and so does an interactive job that has run 60 s or never callsturn 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 andsearch 1h (--budget sets another). Past its budget a job shows red in status; at twice itsbudget, or after 5 minutes with no GPU work, turn or CPU, pgpu stops it (SIGTERM, SIGKILL after15 s) and exits 124. Every job has a memory ceiling, 24G (--memory sets another); itslows at 15/16 of it and the kernel kills the whole job past it, with no swap. A job frozen orwaiting for the GPU a second or more after it started says so on stderr when it ends, since itsown wall-clock numbers are skewed; the file GPU_QUEUE_FROZEN names holds that time in ms whileit runs. With no --class, `pgpu run` takes its class from PGPU_CLASS, else interactive.pgpu run
Section titled “pgpu run”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 helppgpu turn
Section titled “pgpu turn”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.pgpu status
Section titled “pgpu status”What holds the GPU, what waits and why
Usage: pgpu status [OPTIONS]
Options: --json One JSON object (docs/json.md) -h, --help Print helppgpu stats
Section titled “pgpu stats”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 helppgpu pause
Section titled “pgpu pause”Hold the queue
Usage: pgpu pause
Options: -h, --help Print helppgpu resume
Section titled “pgpu resume”Release the queue
Usage: pgpu resume
Options: -h, --help Print help