Command line#

Run, compare, prove and verify, from one command.

vision <command> [options]
python -m vision <command> [options]

vision devices#

Lists the compute devices, from the discrete GPU to the CPU, plus the numpy reference.

vision run#

Compiles and runs a program.

vision run model.vis [--device D] [--param NAME=VALUE ...] [--ref]
                     [--receipt RECEIPT.json] [--sign KEY.pem] [--timestamp [URL]] [--report REPORT.html]

Option

Meaning

--device D

nvidia, intel, amd, cpu, numpy, … or the number shown by vision devices; default: the best device

--param NAME=VALUE

overrides a param; can be repeated

--ref

runs on the numpy reference (CPU, no GPU)

--receipt FILE.json

writes a verifiable receipt of the run

--sign KEY.pem

signs the receipt with an Ed25519 key

--timestamp [URL]

adds an RFC 3161 time-stamp; only the hash leaves the machine; default authority: DigiCert

--report FILE.html

writes the report of the run (needs --receipt)

vision verify#

Re-runs the simulation of a receipt and compares bit by bit. The .vis file and the data files must be at the paths recorded in the receipt, unchanged.

vision verify RECEIPT.json [--device D] [--trust ID] [--report CHECK.html]

Option

Meaning

--device D

device of the verifier; numpy checks without a GPU; default: the best device

--trust ID

requires a signature by this key (an id or a .pem file)

--report FILE.html

writes a report of the verification

vision compare#

Runs the program on every device and compares each one with the numpy reference.

vision compare model.vis [--param NAME=VALUE ...] [--no-ref]

--no-ref skips the numpy reference, which is slow on large canvases; the GPUs are then compared with each other.

vision check#

Only checks the program: syntax, types and the pixel rules.

vision info#

vision info FILE

Describes a data file (.npy, .csv, .txt, .asc or .png): resolution, the canvas to declare, values, missing cells and, for an .asc, the origin and cell size.

vision key#

vision key new KEY.pem [--password]
vision key id KEY.pem

new creates an Ed25519 signing key, readable only by its owner and never overwriting an existing file. --password encrypts it with a password, asked in the terminal or read from the VISION_KEY_PASSWORD environment variable. id prints the id of a key, the value to publish.

vision conformance#

vision conformance [--device D] [--output RESULT.json] [--certificate CERTIFICATE.html]

Runs the conformance kit on every device, or only on --device. --output writes the results to send back; --certificate writes a readable HTML certificate.

Exit status#

1 on a compile error, a missing device, or when verify or conformance finds a difference; 0 otherwise. compare prints the differences it finds but does not change its exit status.