Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,16 @@ target/release/grill-perf compare results/setup-a results/setup-b --json

[Full speed benchmark guide](docs/performance/README.md)

For separately qualified DeepSeek and GLM studies, use the
[shared recipe workflow](docs/performance/SHARED-RECIPES.md): externally pinned
source installation, offline `bundle verify`, an explicit precollection policy,
and independent baseline/candidate/repeat acquisitions. `decide` evaluates the
captured observed-envelope policy; successful `compare` output is not PASS.
The shared workflow does not establish live qualification or cross-recipe
equivalence. Publish only a
[manually reviewed report](docs/performance/SHARED-REPORT-TEMPLATE.md), not private
run evidence.

## Quality evaluation (WIP)

Use **`grill`** to collect model answers and check them against task rules.
Expand Down
55 changes: 55 additions & 0 deletions crates/grill-perf/examples/glm-decode-v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"version": 1,
"name": "glm-decode-v1",
"request": {
"profile": "vllm-fixed-v1",
"stream": true,
"output": { "tokens": 400, "mode": "exact" },
"cache": "observe",
"temperature_milli": 0,
"top_p_milli": 1000,
"seed": null,
"thinking_control": { "kind": "vllm-enable-thinking-v1", "enabled": false }
},
"limits": {
"total_ms": 360000,
"idle_ms": 60000,
"response_bytes": 1048576,
"wave_buffer_bytes": 67108864
},
"cases": [
{
"id": "structured",
"messages": [
{ "role": "user", "content": "Count from 1 to 200. Output only the numbers, separated by spaces. No other text." }
]
},
{
"id": "prose",
"messages": [
{ "role": "user", "content": "Write a detailed step-by-step explanation of how a hash map works, including collision handling, resizing, and time complexity. Be thorough." }
]
},
{
"id": "code",
"messages": [
{ "role": "user", "content": "Output only Python source code. No comments, no docstrings, no markdown fences. Write functions clamp_00 through clamp_49. Each function is exactly:\ndef clamp_NN(x, lo=0, hi=1):\n if x < lo:\n return lo\n if x > hi:\n return hi\n return x\nChange only the function name suffix (00, 01, … 49). One blank line between functions. No other text." }
]
},
{
"id": "json",
"messages": [
{ "role": "user", "content": "Emit only a JSON array of fake GPU metrics rows. Each object needs host, gpuIndex, utilPct, tempC, powerW, memUsedMb. Invent many rows. No markdown. Keep expanding the array." }
]
}
],
"cells": [
{ "id": "structured-1", "case": "structured", "concurrency": 1, "warmup_trials": 1, "trials": 3 },
{ "id": "structured-2", "case": "structured", "concurrency": 2, "warmup_trials": 1, "trials": 3 },
{ "id": "structured-4", "case": "structured", "concurrency": 4, "warmup_trials": 1, "trials": 3 },
{ "id": "structured-8", "case": "structured", "concurrency": 8, "warmup_trials": 1, "trials": 3 },
{ "id": "prose-1", "case": "prose", "concurrency": 1, "warmup_trials": 1, "trials": 3 },
{ "id": "code-1", "case": "code", "concurrency": 1, "warmup_trials": 1, "trials": 3 },
{ "id": "json-1", "case": "json", "concurrency": 1, "warmup_trials": 1, "trials": 3 }
]
}
56 changes: 56 additions & 0 deletions crates/grill-perf/examples/glm-prefill-v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
{
"version": 1,
"name": "glm-prefill-v1",
"request": {
"profile": "vllm-fixed-v1",
"stream": true,
"output": { "tokens": 8, "mode": "exact" },
"cache": "observe",
"temperature_milli": 0,
"top_p_milli": 1000,
"seed": null,
"thinking_control": { "kind": "vllm-enable-thinking-v1", "enabled": false }
},
"limits": {
"total_ms": 600000,
"idle_ms": 600000,
"response_bytes": 65536,
"wave_buffer_bytes": 4194304
},
"cases": [
{
"id": "prefill-4k",
"messages": [
{ "role": "user", "content": "[prefill-bench {salt}]\nIgnore the filler below. Reply with the single word OK.\n{fill}\nReply OK." }
],
"fill": { "unit": " the", "repeat": 4070 }
},
{
"id": "prefill-8k",
"messages": [
{ "role": "user", "content": "[prefill-bench {salt}]\nIgnore the filler below. Reply with the single word OK.\n{fill}\nReply OK." }
],
"fill": { "unit": " the", "repeat": 8166 }
},
{
"id": "prefill-16k",
"messages": [
{ "role": "user", "content": "[prefill-bench {salt}]\nIgnore the filler below. Reply with the single word OK.\n{fill}\nReply OK." }
],
"fill": { "unit": " the", "repeat": 16358 }
},
{
"id": "prefill-32k",
"messages": [
{ "role": "user", "content": "[prefill-bench {salt}]\nIgnore the filler below. Reply with the single word OK.\n{fill}\nReply OK." }
],
"fill": { "unit": " the", "repeat": 32742 }
}
],
"cells": [
{ "id": "prefill-4k-1", "case": "prefill-4k", "concurrency": 1, "warmup_trials": 1, "trials": 3 },
{ "id": "prefill-8k-1", "case": "prefill-8k", "concurrency": 1, "warmup_trials": 1, "trials": 3 },
{ "id": "prefill-16k-1", "case": "prefill-16k", "concurrency": 1, "warmup_trials": 1, "trials": 3 },
{ "id": "prefill-32k-1", "case": "prefill-32k", "concurrency": 1, "warmup_trials": 1, "trials": 3 }
]
}
41 changes: 41 additions & 0 deletions crates/grill-perf/examples/recipes-v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"version": 1,
"entries": [
{
"id": "sparkdash-decode-v1",
"file": "sparkdash-decode-v1.json",
"source_sha256": "d661f6a6ff4718b8999b9796844345e9023b55b971b51d6fea1307e177eecdee",
"workload_sha256": "89dd5320c4f000cc7a15b1d352c721f1e26ddaf9911cccafe7818761d3acffef"
},
{
"id": "sparkdash-prefill-v1",
"file": "sparkdash-prefill-v1.json",
"source_sha256": "edf255fb30c20e934060ff08af1cfc2c680e6d1b4a2bf9417ce5d96389380468",
"workload_sha256": "549cf323c7117fd31097dc80ffdc267e6b748eab98f13d0a80b69f00b7274f3c"
},
{
"id": "glm-decode-v1",
"file": "glm-decode-v1.json",
"source_sha256": "508791d3e04a7cb7bc82f06084a5cac718834387123c826c7f378f43f912cb98",
"workload_sha256": "2129bcb5239d58d900a112ca5c2d511136292d54ab9d0c21dce6eaf9e37155a9",
"base": "sparkdash-decode-v1"
},
{
"id": "glm-prefill-v1",
"file": "glm-prefill-v1.json",
"source_sha256": "ffe1956899f4fc704f047fcaeb85733ebd100beff71676ca59b9bb7235ac16a7",
"workload_sha256": "31312a9a8ad58b7fb6d66bc927d79ce789a5bb6f31737ceb36d8e8d8d8d391f5",
"base": "sparkdash-prefill-v1"
}
],
"recipes": {
"deepseek": {
"decode": "sparkdash-decode-v1",
"prefill": "sparkdash-prefill-v1"
},
"glm": {
"decode": "glm-decode-v1",
"prefill": "glm-prefill-v1"
}
}
}
Loading