# SkyPilot: Qwen3-8B BurstGPT Windows

This SkyPilot task runs NVIDIA AIPerf fixed-schedule BurstGPT replay against
`Qwen/Qwen3-8B` served by vLLM.

For `openai/gpt-oss-120b`, use
`gpt_oss_120b_burstgpt_b_windows.yaml`. It defaults to the B-regime split
windows `B1 B2` and writes artifacts under
`/workspace/artifacts/gpt-oss-120b-burstgpt/`.

Run from the repository root:

```bash
cd /Users/nj/Documents/harmonic
sky launch -y -c qwen3-8b-burstgpt traces/burstgpt/aiperf_windows/skypilot/qwen3_8b_burstgpt_windows.yaml
```

If your SkyPilot CLI is configured for `https://skypilot.autoinference.ai`,
authenticate first:

```bash
sky api login -e https://skypilot.autoinference.ai
```

By default it runs one split window:

```text
A1
```

To run another single window:

```bash
sky launch -y -c qwen3-8b-burstgpt \
  --env SEGMENTS="B1" \
  traces/burstgpt/aiperf_windows/skypilot/qwen3_8b_burstgpt_windows.yaml
```

To run the six split windows sequentially on the same cluster after the first
successful launch:

```bash
for segment in A1 A2 B1 B2 C1 C2; do
  sky exec qwen3-8b-burstgpt \
    --env SEGMENTS="${segment}" \
    traces/burstgpt/aiperf_windows/skypilot/qwen3_8b_burstgpt_windows.yaml
done
```

To run the full 10 minute windows sequentially:

```bash
for segment in A B C; do
  sky exec qwen3-8b-burstgpt \
    --env SEGMENTS="${segment}" \
    traces/burstgpt/aiperf_windows/skypilot/qwen3_8b_burstgpt_windows.yaml
done
```

After the first successful launch, you can reuse the same cluster for one
regime with `sky exec`:

```bash
sky exec qwen3-8b-burstgpt \
  --env SEGMENTS="C1 C2" \
  traces/burstgpt/aiperf_windows/skypilot/qwen3_8b_burstgpt_windows.yaml
```

Use `sky launch` again if you change setup, file mounts, or local CSV contents.

If GCP reports `Quota 'GPUS_PER_GPU_FAMILY' exceeded. Limit: 0.0` for H100,
the project has no H100 quota in the tried regions. Running fewer windows will
not fix that provisioning error because it happens before the benchmark starts.
This task now defaults to Nebius `eu-north1`. To force GCP instead, override
the infra and accelerator:

```bash
sky launch -y -c qwen3-8b-burstgpt \
  --infra gcp/us-central1 \
  --gpus A100:1 \
  traces/burstgpt/aiperf_windows/skypilot/qwen3_8b_burstgpt_windows.yaml
```

Note: the local SkyPilot CLI version `1.0.0.dev20260511` had a hidden
`--docker` option default that caused `ValueError: False backend is not
supported` on `sky launch`. The installed CLI has been patched locally by
changing that default to `None`.

Artifacts are written on the SkyPilot VM under:

```text
/workspace/artifacts/qwen3-8b-burstgpt/
```

Download them locally with:

```bash
mkdir -p artifacts
sky rsync-down qwen3-8b-burstgpt /workspace/artifacts/qwen3-8b-burstgpt artifacts/qwen3-8b-burstgpt
```

The task mounts only these local folders:

```text
aiperf/                         -> /workspace/aiperf
traces/burstgpt/aiperf_windows/ -> /workspace/burstgpt_windows
```

This avoids uploading the full `traces/` workspace.

The default `WORKERS_MAX` is intentionally modest (`32`) because the selected
trace windows do not need hundreds of local AIPerf workers, and very high worker
counts can make AIPerf's local services time out before profiling starts.

## GPT-OSS-120B B1/B2

Launch B1 and B2 on a Nebius H100:

```bash
sky down gpt-oss-120b-burstgpt || true
sky launch -y -c gpt-oss-120b-burstgpt \
  traces/burstgpt/aiperf_windows/skypilot/gpt_oss_120b_burstgpt_b_windows.yaml
```

The GPT-OSS config pins vLLM `v0.21.0`, uses `gpt_oss_mxfp4`
quantization, limits `max-model-len` to `2048`, and starts vLLM with eager
execution plus conservative scheduler limits. These settings are intended to
make the first AIPerf baseline fit on a single H100 if possible. If vLLM still
reports no available KV-cache memory, use a B200 or a multi-GPU H100 launch
instead of increasing AIPerf concurrency.

Run only one B segment:

```bash
sky launch -y -c gpt-oss-120b-burstgpt \
  --env SEGMENTS="B1" \
  traces/burstgpt/aiperf_windows/skypilot/gpt_oss_120b_burstgpt_b_windows.yaml
```

Download GPT-OSS results with SSH-backed `rsync`:

```bash
mkdir -p artifacts/gpt-oss-120b-burstgpt
rsync -av gpt-oss-120b-burstgpt:/workspace/artifacts/gpt-oss-120b-burstgpt/ artifacts/gpt-oss-120b-burstgpt/
```
