This guide shows you how to test all the features of the Leaderboard CLI tool.
First, make sure the CLI is installed correctly:
leaderboard --versionExpected output: backendbench, version 0.1.0
leaderboard --helpThis should show all available commands: submit, list, and show.
Submit a single kernel file:
leaderboard submit \
--op add \
--overload Tensor \
--dsl cutedsl \
--device A100 \
--file examples/single_kernel/add_implementation_v1.pyExpected Output:
╭─────────── Submission Successful ────────────╮
│ ✓ Successfully submitted kernel! │
│ │
│ Submission ID: 1 │
│ Operation: add │
│ DSL: cutedsl │
│ Device: A100 │
│ File: add_implementation_v1.py │
╰──────────────────────────────────────────────╯
Submit all kernels from a directory:
leaderboard submit \
--dsl triton \
--device A100 \
--directory examples/generated_kernels/Expected Output:
Submission Summary:
Total files processed: 6
Successful: 6
Failed: 0
╭─────────────── Submission Details ───────────────╮
│ File │ Operation │ Status │ ID │
├──────────────────────┼───────────┼────────┼─────┤
│ add_v1.py │ add │ ✓ │ 2 │
│ add_v2.py │ add │ ✓ │ 3 │
│ add_v1.py │ add │ ✓ │ 4 │
│ mul_v1.py │ mul │ ✓ │ 5 │
│ matmul_optimized.py │ matmul │ ✓ │ 6 │
╰──────────────────────────────────────────────────╯
leaderboard list# Filter by operation
leaderboard list --op add
# Filter by DSL
leaderboard list --dsl triton
# Filter by device
leaderboard list --device A100
# Combine filters
leaderboard list --op add --dsl triton --limit 5leaderboard list --show-content --limit 3This shows the file content for each submission (first 500 characters).
leaderboard show 1Expected Output:
Submission #1
╭────────────────────────────────────────╮
│ Operation │ add │
│ Overload │ Tensor │
│ DSL │ cutedsl │
│ Device │ A100 │
│ File Name │ add_implementation_v1.py │
│ Timestamp │ 2025-10-13T... │
╰────────────────────────────────────────╯
File Content:
╭────────────────────────────────────────╮
│ [full file content displayed here] │
╰────────────────────────────────────────╯
# Should fail - no --file or --directory
leaderboard submit --dsl triton --device A100Expected: Error message about missing --file or --directory
# Should fail - no --op for single file
leaderboard submit --dsl triton --device A100 --file test.pyExpected: Error message about missing --op
leaderboard submit \
--op add \
--dsl triton \
--device A100 \
--file nonexistent.pyExpected: Error about file not found
Check where submissions are stored:
ls -la ~/.leaderboard/You should see submissions.db file.
Here's a complete workflow to test everything:
# 1. Submit a single kernel
leaderboard submit \
--op add \
--overload Tensor \
--dsl cutedsl \
--device A100 \
--file examples/single_kernel/add_implementation_v1.py
# 2. Submit directory of kernels
leaderboard submit \
--dsl triton \
--device A100 \
--directory examples/generated_kernels/
# 3. List all submissions
leaderboard list
# 4. Filter by operation
leaderboard list --op add
# 5. View submission details
leaderboard show 1
# 6. List with content
leaderboard list --show-content --limit 2
# 7. Check help for each command
leaderboard submit --help
leaderboard list --help
leaderboard show --helpTo start fresh, you can delete the database:
rm -rf ~/.leaderboard/The database will be recreated on the next submission.
-
leaderboard --versionworks -
leaderboard --helpshows all commands - Single file submission works
- Directory submission works
-
listcommand shows all submissions - Filtering by --op, --dsl, --device works
-
showcommand displays full submission details -
--show-contentflag works - Error messages are clear and helpful
- Database is created at
~/.leaderboard/submissions.db
- All commands support
--helpfor detailed usage information - The CLI uses rich formatting for beautiful terminal output
- All data is stored locally in SQLite (no network calls by default)
- You can submit the same file multiple times (useful for testing different versions)