Skip to content
Open
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
3 changes: 2 additions & 1 deletion .buildkite/generate_pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -273,9 +273,10 @@ def make_step(path, data, profiles):
setup_commands = [setup_command("'lm-eval[api]' pyyaml bfcl-eval soundfile")]
else:
setup_commands = FULL_SETUP_COMMANDS
agents = {"queue": queue, **(profile.get("agent_tags") or {})}
step = {
"label": f"{emoji} {name}",
"agents": {"queue": queue},
"agents": agents,
"timeout_in_minutes": timeout,
"commands": setup_commands + [RUN_TEMPLATE.format(path=path)],
"artifact_paths": ["results/**/*"],
Expand Down
10 changes: 10 additions & 0 deletions lib/gpu_profiles.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,13 @@ MI355X:
k8s_plugin: amd
# See MI300X — HF cache defaults to an emptyDir-backed container path; override
# the volume source per-cluster with MI355X_HF_CACHE_VOLUME.

XPU:
queue: intel-gpu
agent_tags:
label: performance
gpu: 1+
mem: 32+
image_repo: vllm/vllm-openai-xpu
server_runtime: xpu_docker
hf_home: /data/huggingface
21 changes: 19 additions & 2 deletions lib/server.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,24 @@ start_server() {
local docker_args=(--gpus all --ipc=host --ulimit nofile=65536:65536
-e VLLM_ENGINE_READY_TIMEOUT_S=3600
-p "${port}:${port}")
local container_command=("$image" "$model" --port "$port" $serve_args)
if [[ "$runtime" == "xpu_docker" ]]; then
docker_args=(
--device /dev/dri:/dev/dri
--net=host
--ipc=host
--privileged
--ulimit nofile=65536:65536
-e VLLM_ENGINE_READY_TIMEOUT_S=3600
)
[[ -d /dev/dri/by-path ]] && docker_args+=(-v /dev/dri/by-path:/dev/dri/by-path)
[[ -n "${ZE_AFFINITY_MASK:-}" ]] && docker_args+=(-e "ZE_AFFINITY_MASK=${ZE_AFFINITY_MASK}")
[[ -n "${HF_TOKEN:-}" ]] && docker_args+=(-e "HF_TOKEN=${HF_TOKEN}")
local bash_serve_cmd
printf -v bash_serve_cmd 'source /root/.bashrc >/dev/null 2>&1; exec vllm serve %q --port %q %s' \
"$model" "$port" "$serve_args"
container_command=(--entrypoint /bin/bash "$image" -ic "$bash_serve_cmd")
fi
local hf_home=""
while IFS= read -r kv; do
[[ -z "$kv" ]] && continue
Expand All @@ -52,8 +70,7 @@ start_server() {
# vllm/vllm-openai's entrypoint takes the model as the first positional
# arg; do not prepend `vllm` or `serve`.
docker run -d --rm --name "$container" "${docker_args[@]}" \
"$image" \
"$model" --port "$port" $serve_args
"${container_command[@]}"

# Install pytest to avoid cupy.testing import failure during torch.compile
docker exec "$container" pip install -q pytest 2>/dev/null || true
Expand Down
48 changes: 48 additions & 0 deletions workloads/gpt_oss_120b_B70.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# GPT-OSS 120B on XPU (8xXPU, TP=4)
# Tracking perf regression: https://github.com/vllm-project/vllm/issues/40838
name: gpt_oss_120b-xpu
gpu: XPU
num_gpus: 4
nightly: true

vllm:
model: openai/gpt-oss-120b
serve_args: >-
--tensor-parallel-size 4
--max-model-len 32768
--max-num-seqs 512
--enforce-eager
--trust-remote-code
--no-enable-prefix-caching
--tool-call-parser openai
--enable-auto-tool-choice

lm_eval:
model_args:
tokenized_requests: false
tokenizer_backend: null
timeout: 6000
tasks:
- name: gsm8k
num_fewshot: 5
model_args:
num_concurrent: 64
max_length: 32768
max_gen_toks: 8192

bfcl:
test_categories:
- simple_python
- multiple
- multi_turn
num_threads: 8

vllm_bench:
configs:
- name: 4k-in-1k-out-conc-32
backend: openai
dataset: random
input_len: 4096
output_len: 1024
num_prompts: 128
max_concurrency: 32