Skip to content

yasp-toolkit eval

Score candidate kernels on real hardware: submit implementations against a reference module, measure their speedup and correctness, and inspect past evals and the evaluators that ran them.

The router host defaults to https://compile.yasp.ai/eval and can be overridden with $YASP_EVAL_ROUTER_HOST or the advanced-auth --router-* flags shown in --help.

compare

Score candidate kernels against a reference for speedup and accuracy.

Phases: create the task with len(implementation) slots, upload reference.pt2 + each implementation, start, poll until terminal, then download the worker-produced results.json and write it to -o (default stdout) verbatim.

The task id is printed as soon as it's obtained, so a failure mid-flow (upload, wait, download) is recoverable via the granular commands (eval get <task-id>).

Usage:

$ yasp-toolkit eval compare [OPTIONS]
Option Default Description
-r, --reference <file> required Reference module (reference.pt2) to compare implementations against.
-i, --implementation <file> required Candidate kernel .py file. Repeat once per implementation; first becomes kernel_1.py, etc.
-g, --gpu-name <str> required Hardware target the eval routes to (e.g. nvidia-rtx-6000-pro).
--routing <str> Pin to a specific development evaluator by its routing key.
-o, --output <filename> - Write the results.json here. Default - (stdout).
--progress / --no-progress progress Render transfer progress bars.

benchmark

Measure a reference model's baseline timings on target hardware.

Phases: create the task, upload reference.pt2, start, poll until terminal, then download the worker-produced results.json and write it to -o (default stdout) verbatim.

The task id is printed as soon as it's obtained, so a failure mid-flow (upload, wait, download) is recoverable via the granular commands (eval get <task-id>).

Usage:

$ yasp-toolkit eval benchmark [OPTIONS]
Option Default Description
-r, --reference <file> required Reference module (reference.pt2) to benchmark.
-g, --gpu-name <str> required Hardware target the benchmark routes to (e.g. nvidia-rtx-6000-pro).
--routing <str> Pin to a specific development evaluator by its routing key.
-o, --output <filename> - Write the results.json here. Default - (stdout).
--progress / --no-progress progress Render transfer progress bars.

get

Fetch a task's (eval or benchmark) current state. With --wait, poll until terminal.

Usage:

$ yasp-toolkit eval get [OPTIONS] {task_id}
Argument Default Description
task_id required Eval or benchmark task ID.
Option Default Description
--wait Poll every 15s until the task is completed or failed.

cancel

Cancel a pending or started task.

Usage:

$ yasp-toolkit eval cancel [OPTIONS] COMMAND [ARGS]...

Options: * --help: Show this message and exit.

Commands:

  • eval: Cancel a pending or started eval task.
  • benchmark: Cancel a pending or started benchmark task.

yasp-toolkit eval cancel eval

Cancel a pending or started eval task.

The router rejects the request with a 409 once the task reached a terminal state (completed / failed / cancelled) -- there is nothing left to recall.

Usage:

$ yasp-toolkit eval cancel eval [OPTIONS] {task_id}
Argument Default Description
task_id required Eval task ID.

Options: * --help: Show this message and exit.

yasp-toolkit eval cancel benchmark

Cancel a pending or started benchmark task.

The router rejects the request with a 409 once the task reached a terminal state (completed / failed / cancelled) -- there is nothing left to recall.

Usage:

$ yasp-toolkit eval cancel benchmark [OPTIONS] {task_id}
Argument Default Description
task_id required Benchmark task ID.

Options: * --help: Show this message and exit.

inspect

Fetch each eval's results.json report and tabulate speedup and correctness.

Rows keep the order the task ids were given in; an eval holding several implementations contributes one row per opt_<n> entry. Not-completed tasks render their status in place of a speedup, and ids that are not eval tasks (404) are skipped -- so the id list can freely mix eval, benchmark, and compile tasks. Local reports passed via --file follow the fetched ones.

Composes with activity list --task-ids:

yasp-toolkit eval inspect $(yasp-toolkit activity list -c <CORRELATION_ID> --task-ids)

Usage:

$ yasp-toolkit eval inspect [OPTIONS] [task_ids]...
Argument Default Description
task_ids... Eval task IDs, tabulated in the order given.
Option Default Description
-k, --kernelgen <str> Kernelgen task ID whose report.json to fetch; repeatable. Rendered after the eval task ids.
-f, --file <file> Already-downloaded report; repeatable. Tabulated after the task ids. Accepts both an eval results.json and a kernelgen report.json (eval result nested under eval_result).
--full Render each report in full (long value lists summarized) instead of the summary table. Automatic when a single report renders.
--progress / --no-progress no-progress Render transfer progress bars.

key

Print a scoped key a Gaia worker can register with.

Use the JWT wherever a Gaia worker asks for YASP_API_KEY:

export WORKER_KEY=$(yasp-toolkit eval key)
kubectl create secret generic yasp-api-token --from-literal=token="$WORKER_KEY"

Usage:

$ yasp-toolkit eval key [OPTIONS]
Option Default Description
--audience <str> eval-api Token audience claim.
--scope <str> Token scope (repeatable). Defaults to eval-register only.

workers

List registered evaluators (optionally filtered by tag).

Usage:

$ yasp-toolkit eval workers [OPTIONS]
Option Default Description
-t, --tag <str> KEY=VALUE filter on evaluator tags. Repeatable.
--detailed Include evaluator ID and user columns.