Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
e8c4c90
Add moe e2e test (#2810)
pv97 Jun 4, 2026
7dd4a93
[skip ci] Update vLLM LKG to 8d9536a775a87eae5e0a1904603aa4725562765e
buildkite-bot Jun 4, 2026
f0c419f
Update owner (#2816)
jcyang43 Jun 4, 2026
7c79ea0
GDN recurrent scan kernel: added async dma for prefill, decode, and t…
yuhangning815 Jun 4, 2026
e24c22a
[skip ci] Update vLLM LKG to a55fccfc7cefc2d085d3557bace0e345cef67961
buildkite-bot Jun 4, 2026
d87896c
Update JAX to 10.1 (#2711)
kyuyeunk Jun 4, 2026
eda5b34
[skip ci] Update vLLM LKG to b7c5baf63d5f95d18493a7fae3c75fc4853732a7
buildkite-bot Jun 5, 2026
cd97f44
[skip ci] Update vLLM LKG to 063ce98fb7104dba93f72d56c094fb8b708bd793
buildkite-bot Jun 5, 2026
d502d4a
[Spec Decoding] Support Logprobs with Speculative Decoding (#2799)
Lumosis Jun 5, 2026
6a8f0a4
Add qwen3-vl run in example script (#2763)
muskansh-google Jun 5, 2026
7612c22
[MTP] Add MTP to support matrics (#2826)
Lumosis Jun 5, 2026
25e5d14
[skip ci] Update nightly support matrices (v6e/v7x)
buildkite-bot Jun 5, 2026
08c01e0
[skip ci] Update nightly support matrices for flax_nnx (v6e/v7x)
buildkite-bot Jun 5, 2026
899ebc6
Customize MLA kernel tuner keys (#2824)
BirdsOfAFthr Jun 5, 2026
9f5ae24
[skip ci] Update nightly support matrices for vllm (v6e/v7x)
buildkite-bot Jun 5, 2026
84c992a
Remove the logic to force change the compilation_config (#2821)
yiw-wang Jun 5, 2026
57c68ca
[Feature] Speed up compilation via AoT + threadpool (#2818)
sierraisland Jun 5, 2026
0d2c8c8
Add owners for tools folder (#2832)
patrickji2014 Jun 6, 2026
39ba549
Fix data-parallel-size configuration typo for Gemma4 on v7x-2 (#2835)
theminghuang Jun 6, 2026
72b66c8
Fix mamba/GDN recurrent-state slot lifecycle leaks (#2779)
yaochengji Jun 6, 2026
9006eb6
Make Kernel Tuner Result Inspector CLI Support Filter and Print as Ta…
patrickji2014 Jun 6, 2026
a1d4117
[skip ci] Update nightly support matrices (v6e/v7x)
buildkite-bot Jun 6, 2026
eff7e29
[skip ci] Update nightly support matrices for flax_nnx (v6e/v7x)
buildkite-bot Jun 6, 2026
087e220
[skip ci] Update nightly support matrices (v6e/v7x)
buildkite-bot Jun 7, 2026
ac548a0
[skip ci] Update nightly support matrices for vllm (v6e/v7x)
buildkite-bot Jun 7, 2026
0f66531
[skip ci] Update nightly support matrices for flax_nnx (v6e/v7x)
buildkite-bot Jun 7, 2026
3b2b065
refactor into classes, vectorize ops (#2820)
coolkp Jun 7, 2026
1253456
[skip ci] Update nightly support matrices for vllm (v6e/v7x)
buildkite-bot Jun 8, 2026
0dd4e0e
Fix DeepSeek-V4 imports for vLLM DeepseekV4Attention refactor (#2829)
guowei-dev Jun 8, 2026
a342edc
[Feat][Disagg] Use tpu-raiden for KV cache transfer in disaggregated …
juncgu-google Jun 9, 2026
810f892
Enable exporting benchmarking data to MLCompass (#2787)
ortibazar Jun 9, 2026
d37f0fe
[skip ci] Update nightly support matrices (v6e/v7x)
buildkite-bot Jun 9, 2026
444175f
Add Deepseek benchmark case (#2667)
boe20211 Jun 9, 2026
e87ca8d
[skip ci] Update nightly support matrices for vllm (v6e/v7x)
buildkite-bot Jun 9, 2026
862918b
[Kimi-K2.6] Add correctness tests for LM only (#2848)
jrplatin Jun 9, 2026
d595ee4
Add Combo test cases
Jun 8, 2026
cd143f9
fix OOM of offload_prefix_spec and chunked_offload_spec
circlepen Jun 10, 2026
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
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,17 @@
"VLLM_USE_V1": "1",
"MODEL_IMPL_TYPE": "flax_nnx",
"USE_BATCHED_RPA_KERNEL": "1",
"MOE_REQUANTIZE_WEIGHT_DTYPE": "float8_e4m3fn"
"MOE_REQUANTIZE_WEIGHT_DTYPE": "float8_e4m3fn",
"VLLM_ENGINE_READY_TIMEOUT_S": "1800"
},
"args": {
"model": "google/gemma-4-26B-A4B-it",
"max-num-seqs": 256,
"max-num-batched-tokens": 4096,
"data-parallel-size": {
"v6e-8": 2,
"v7x-2": 4,
"default": 1
"v6e-8": 2,
"v7x-2": 1,
"default": 1
},
"tensor-parallel-size": {
"v7x-2": 2,
Expand Down Expand Up @@ -79,16 +80,17 @@
"VLLM_USE_V1": "1",
"MODEL_IMPL_TYPE": "flax_nnx",
"USE_BATCHED_RPA_KERNEL": "1",
"MOE_REQUANTIZE_WEIGHT_DTYPE": "float8_e4m3fn"
"MOE_REQUANTIZE_WEIGHT_DTYPE": "float8_e4m3fn",
"VLLM_ENGINE_READY_TIMEOUT_S": "1800"
},
"args": {
"model": "google/gemma-4-26B-A4B-it",
"max-num-seqs": 256,
"max-num-batched-tokens": 4096,
"data-parallel-size": {
"v6e-8": 2,
"v7x-2": 4,
"default": 1
"v6e-8": 2,
"v7x-2": 1,
"default": 1
},
"tensor-parallel-size": {
"v7x-2": 2,
Expand Down Expand Up @@ -121,4 +123,4 @@
}
}
]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,16 @@
"env": {
"VLLM_USE_V1": "1",
"MODEL_IMPL_TYPE": "flax_nnx",
"USE_BATCHED_RPA_KERNEL": "1"
"USE_BATCHED_RPA_KERNEL": "1",
"VLLM_ENGINE_READY_TIMEOUT_S": "1800"
},
"args": {
"model": "google/gemma-4-31B-it",
"max-num-seqs": 256,
"max-num-batched-tokens": 4096,
"data-parallel-size": {
"v6e-8": 2,
"v7x-2": 4,
"v7x-2": 1,
"default": 1
},
"tensor-parallel-size": {
Expand Down Expand Up @@ -80,15 +81,16 @@
"env": {
"VLLM_USE_V1": "1",
"MODEL_IMPL_TYPE": "flax_nnx",
"USE_BATCHED_RPA_KERNEL": "1"
"USE_BATCHED_RPA_KERNEL": "1",
"VLLM_ENGINE_READY_TIMEOUT_S": "1800"
},
"args": {
"model": "google/gemma-4-31B-it",
"max-num-seqs": 256,
"max-num-batched-tokens": 4096,
"data-parallel-size": {
"v6e-8": 2,
"v7x-2": 4,
"v7x-2": 1,
"default": 1
},
"tensor-parallel-size": {
Expand Down
67 changes: 67 additions & 0 deletions .buildkite/benchmark/cases/daily/deepseek.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
{
"global_env": {
"GCP_PROJECT_ID": "cloud-tpu-inference-test",
"GCS_BUCKET": "vllm-cb-storage2",
"GCP_INSTANCE_ID": "vllm-bm-inst",
"GCP_DATABASE_ID": "vllm-bm-bk-runs"
},
"benchmark_cases": [
{
"case_name": "deepseek-r1-dataset_custom-inlen_1024-outlen_4096-prelen_0",
"ci_queue": [
"tpu_v7x_8_queue"
],
"env": {
"RUN_TYPE": "DAILY",
"MODELTAG": "NEW",
"EXPECTED_ETEL": 43200000,
"INPUT_LEN": 1024,
"OUTPUT_LEN": 4096,
"PREFIX_LEN": 0
},
"server_command_options": {
"command_type": "vllm_serve",
"env": {
"VLLM_USE_V1": "1",
"MODEL_IMPL_TYPE": "vllm",
"NEW_MODEL_DESIGN": "1",
"TPU_BACKEND_TYPE": "jax",
"VLLM_MLA_DISABLE": "0",
"MOE_REQUANTIZE_BLOCK_SIZE": "512",
"MOE_REQUANTIZE_WEIGHT_DTYPE": "fp4"
},
"args": {
"model": "deepseek-ai/DeepSeek-R1",
"seed": 42,
"max-num-seqs": 16,
"max-num-batched-tokens": 1024,
"tensor-parallel-size": {
"v7x-8": 8
},
"max-model-len": 5120,
"kv-cache-dtype": "fp8",
"gpu-memory-utilization": 0.95,
"enable-expert-parallel": true,
"no-enable-prefix-caching": true,
"async-scheduling": true,
"additional-config": "{\"sharding\": {\"sharding_strategy\": {\"enable_dp_attention\": true}}}"
}
},
"client_command_options": {
"command_type": "vllm_bench_serve",
"args": {
"model": "deepseek-ai/DeepSeek-R1",
"backend": "vllm",
"request-rate": "inf",
"dataset-name": "custom",
"dataset-path": "/workspace/tpu_inference/artifacts/dataset/DeepSeek-R1/inlen1024_outlen4096_prefixlen0.jsonl",
"num-prompts": 64,
"percentile-metrics": "ttft,tpot,itl,e2el",
"ignore-eos": true,
"custom-output-len": 4096,
"skip-chat-template": true
}
}
}
]
}
62 changes: 62 additions & 0 deletions .buildkite/benchmark/cases/dev/mlcompass-example.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{
"global_env": {
"GCP_PROJECT_ID": "cloud-tpu-inference-test",
"GCS_BUCKET": "vllm-cb-storage2",
"GCP_INSTANCE_ID": "vllm-bm-inst",
"GCP_DATABASE_ID": "vllm-bm-bk-runs",
"MLCOMPASS_EXPORT_ENABLED": "true",
"MODELTAG": "NEW",
"EXPECTED_ETEL": 10800000
},
"benchmark_cases": [
{
"case_name": "Qwen3-32B-dataset_random-inlen_1024-outlen_1024-max-concurrency-64",
"ci_queue": [
"tpu_v7x_2_queue"
],
"env": {
"MODELTAG": "NEW",
"EXPECTED_ETEL": 10800000,
"INPUT_LEN": 1024,
"OUTPUT_LEN": 1024,
"PREFIX_LEN": 0
},
"server_command_options": {
"command_type": "vllm_serve",
"env": {
"VLLM_USE_V1": "1",
"MODEL_IMPL_TYPE": "vllm"
},
"args": {
"model": "Qwen/Qwen3-32B",
"max-num-seqs": 256,
"max-num-batched-tokens": 4096,
"tensor-parallel-size": {
"v7x-2": 2
},
"max-model-len": 2048,
"kv-cache-dtype": "fp8",
"gpu-memory-utilization": 0.98,
"additional-config": "{\"quantization\": { \"qwix\": { \"rules\": [{ \"module_path\": \".*\", \"weight_qtype\": \"float8_e4m3fn\", \"act_qtype\": \"float8_e4m3fn\"}]}}}",
"no-enable-prefix-caching": true,
"async-scheduling": true
}
},
"client_command_options": {
"command_type": "vllm_bench_serve",
"args": {
"model": "Qwen/Qwen3-32B",
"backend": "vllm",
"dataset-name": "random",
"num-prompts": 320,
"random-input-len": 1024,
"random-output-len": 1024,
"max-concurrency": 64,
"request-rate": "inf",
"percentile-metrics": "ttft,tpot,itl,e2el",
"ignore-eos": true
}
}
}
]
}
2 changes: 1 addition & 1 deletion .buildkite/benchmark/scripts/benchmark_bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ buildkite-agent meta-data set "JOB_REFERENCE" "${JOB_REFERENCE}"
upload_benchmark_pipeline() {
local target_case_type="$BM_CASE_TYPE"

VLLM_COMMIT_HASH=$(get_vllm_commit_hash)
VLLM_COMMIT_HASH=${VLLM_COMMIT_HASH:-$(get_vllm_commit_hash)}
buildkite-agent meta-data set "VLLM_COMMIT_HASH" "${VLLM_COMMIT_HASH}"
TPU_COMMIT_HASH=$(git rev-parse HEAD)
CODE_HASH="${VLLM_COMMIT_HASH}-${TPU_COMMIT_HASH}-"
Expand Down
3 changes: 3 additions & 0 deletions .buildkite/benchmark/scripts/generate_bk_pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,11 +223,14 @@ def create_benchmark_steps(
# Include parent_dir in label for uniqueness
step_label = f"[{parent_dir}] {agent} {file_basename}"
case_parameter = f"{file_path}"
benchmark_name = file_basename
else:
step_env["TARGET_CASE_NAME"] = case_name
# Include parent_dir in label for uniqueness
step_label = f"[{parent_dir}] {agent} {file_basename} {case_name}"
case_parameter = f"{file_path} {case_name}"
benchmark_name = case_name
step_env["MLCOMPASS_TEST_NAME"] = f"vllm:{agent}:{benchmark_name}"

# Define step key and check for internal collisions
step_safe_key = clean_key_string(step_label)
Expand Down
127 changes: 127 additions & 0 deletions .buildkite/benchmark/scripts/mlcompass_export.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# Copyright 2026 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import argparse
import json
import os
import re
import time
import uuid

from google.cloud import bigquery

_GCP_PROJECT = os.getenv('MLCOMPASS_GCP_PROJECT',
'google.com:ml-compass-benchmarks')
_BIGQUERY_DATASET = os.getenv('MLCOMPASS_BIGQUERY_DATASET',
'benchmarks_dataset')
_BIGQUERY_TABLE = os.getenv('MLCOMPASS_BIGQUERY_TABLE', 'benchmarks_dev')


def get_env_commit_map() -> dict[str, dict[str, str]]:
code_hash = os.getenv('CODE_HASH')
match = re.match('^([0-9a-fA-F]+)-([0-9a-fA-F]+)-$', code_hash)
if not match:
raise RuntimeError(f'CODE_HASH value error: "{code_hash}"')
return {
'vllm': {
'repo': 'vllm-project/vllm',
'commit': match[1],
'branch': 'main',
},
'tpu-inference': {
'repo': 'vllm-project/tpu-inference',
'commit': match[2],
'branch': 'main',
},
}


def read_metrics_file(file_path: str) -> dict[str, float]:
metrics_dict: dict[str, float] = {}
with open(file_path, 'r') as file:
for line in file:
# Strip whitespace from the beginning and end of the line
line = line.strip()
# Skip empty lines and ensure the line contains '='
if line and '=' in line:
key, value = line.split('=', 1)
# Strip extra spaces from key/value and convert value to float
metrics_dict[key.strip()] = float(value.strip())
return metrics_dict


def get_links() -> dict[str, str]:
result = {}
build_number = os.getenv('BUILDKITE_BUILD_NUMBER')
job_id = os.getenv('BUILDKITE_JOB_ID')
if build_number and job_id:
result[
'buildkite'] = f'https://buildkite.com/organizations/tpu-commons/pipelines/tpu-inference-benchmark/builds/{build_number}/jobs/{job_id}/log'
return result


def export(metrics: dict[str, float]) -> None:
row_id = uuid.uuid4().hex

test_name = os.getenv('MLCOMPASS_TEST_NAME')
if not test_name:
raise RuntimeError('MLCOMPASS_TEST_NAME env var is not found.')

env_commit_map = get_env_commit_map()
client_info = {
'github_commit': env_commit_map['tpu-inference']['commit'],
'commit_branch_name': env_commit_map['tpu-inference']['branch'],
}
mlcompass_tracking_id = os.getenv('MLCOMPASS_TRACKING_ID', row_id)
mlcompass_execution_mode = os.getenv('MLCOMPASS_EXECUTION_MODE', 'oneshot')

row = {
'entry_id': row_id,
'sponge_id': os.getenv('MLCOMPASS_SPONGE_ID'),
'test_name': test_name,
'succeeded': bool(metrics),
'metrics': json.dumps(metrics),
'link_map': json.dumps(get_links()),
'exc_timestamp_millis': int(time.time() * 1000),
'client_info': client_info,
'env_commit_map': json.dumps(env_commit_map),
'mlcompass_tracking_id': mlcompass_tracking_id,
'mlcompass_execution_mode': mlcompass_execution_mode,
}
print(f'Exporting row: {row}')

client = bigquery.Client(project=_GCP_PROJECT)
table_ref = client.dataset(_BIGQUERY_DATASET).table(_BIGQUERY_TABLE)
table_obj = client.get_table(table_ref)
errors = client.insert_rows(table_obj, [row])
if errors:
raise RuntimeError(
f'Failed to insert row into MLCompass table: {str(errors)}')


def main() -> None:
parser = argparse.ArgumentParser(
description="Export datapoint to MLCompass")
parser.add_argument(
"--result_file",
type=str,
help="Path to result file generated by report_result.sh",
)
args = parser.parse_args()
metrics = read_metrics_file(args.result_file)
export(metrics)


if __name__ == "__main__":
main()
7 changes: 7 additions & 0 deletions .buildkite/benchmark/scripts/report_result.sh
Original file line number Diff line number Diff line change
Expand Up @@ -375,3 +375,10 @@ else
echo "Warning: $RESULT_FILE not found. No results to display."
fi
fi

if [[ "${MLCOMPASS_EXPORT_ENABLED:-false}" == "true" ]]; then
echo "--- Reporting to MLCompass"
python3 "$(dirname "${BASH_SOURCE[0]}")/mlcompass_export.py" --result_file="$RESULT_FILE"
else
echo "--- Reporting to MLCompass (skipped)"
fi
7 changes: 7 additions & 0 deletions .buildkite/benchmark/scripts/run_job.sh
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,14 @@ declare -a BENCHMARK_DOCKER_ARGS=(
"-e" "BUILDKITE=${BUILDKITE}"
"-e" "BUILDKITE_AGENT_NAME=${BUILDKITE_AGENT_NAME}"
"-e" "BUILDKITE_AGENT_META_DATA_QUEUE=${BUILDKITE_AGENT_META_DATA_QUEUE}"
"-e" "BUILDKITE_BUILD_NUMBER=${BUILDKITE_BUILD_NUMBER}"
"-e" "BUILDKITE_JOB_ID=${BUILDKITE_JOB_ID}"
"-e" "UPLOAD_DB=${UPLOAD_DB:-true}"
"-e" "MLCOMPASS_EXECUTION_MODE=${MLCOMPASS_EXECUTION_MODE:-}"
"-e" "MLCOMPASS_EXPORT_ENABLED=${MLCOMPASS_EXPORT_ENABLED:-}"
"-e" "MLCOMPASS_TEST_NAME=${MLCOMPASS_TEST_NAME:-}"
"-e" "MLCOMPASS_TRACKING_ID=${MLCOMPASS_TRACKING_ID:-}"
"-e" "MLCOMPASS_SPONGE_ID=${MLCOMPASS_SPONGE_ID:-}"
)

BENCHMARK_DOCKER_ARGS_STR="$(printf '%s\n' "${BENCHMARK_DOCKER_ARGS[@]}")"
Expand Down
Loading