# Qwen3.6-27B non-MoE/hybrid preflight and topology-smoke record

> **Status (2026-07-17): `TOPOLOGY-SMOKE PASS; FRONTIER COVERAGE BLOCKED`.**
> The exact snapshot and official community-vLLM release are accepted through
> a fresh-server TP1/TP2/TP4 GPU smoke. No Frontier Qwen3.6 contract/profile,
> trace replay, or latency-matrix cell exists. The smoke is compatibility
> evidence only, not simulator-fidelity or latency-selection evidence.

## Decision enabled by this preflight

The latency-matrix experiment may add its dense branch only after the exact
model snapshot, a runnable open-source vLLM environment, and a Qwen3.6
Frontier contract/profile root exist on the same stack. Until then, all dense
matrix cells are **`NOT RUN`**. They are neither simulator failures nor
evidence for dense+MoE generalization.

## Executed staging record (after explicit approval)

| Step | Evidence | Result |
|---|---|---|
| Immutable snapshot staging | ModelScope `Qwen/Qwen3.6-27B@cea40373b9214dd387123e68841890af30dcd469` was downloaded to `/home/admin/cpfs/wjh/models/Qwen/Qwen3.6-27B`. The downloader recorded `download_start` and `download_complete` at `2026-07-17T07:42:00Z` and `2026-07-17T07:44:45Z`, respectively, in `/home/admin/cpfs/wjh/models/.staging/qwen36-27b-20260717/download.log`. | **PASS**; 29 snapshot files, approximately 52 GiB. |
| Snapshot integrity | Sorted per-file SHA-256 inventory: `/home/admin/cpfs/wjh/models/.staging/qwen36-27b-20260717/files.sha256`; inventory digest `031cea103726cbf27732b6971e898e210aee77f0c32e4bc703c947e0372349c4`. It includes `config.json`, tokenizer files, and all 15 `model-*.safetensors` shards; no `*.incomplete`, `*.lock`, or `*.tmp` files were found. | **PASS**. |
| CPU config/tokenizer parser | The preinstalled system `transformers==4.57.5` rejects `model_type=qwen3_5`; this environment is excluded. A dedicated CPU-only environment with `transformers==5.5.3` successfully parsed the snapshot with `CUDA_VISIBLE_DEVICES=""`: `Qwen3_5ForConditionalGeneration`, text model type `qwen3_5_text`, 64 layers, hidden size 5120, `mamba_ssm_dtype=float32`, tokenizer length 248077. | **PASS**, but only for checkpoint/tokenizer parsing; it is not the serving runtime. |
| Community vLLM release runtime | The initial source-build attempt was stopped before acceptance and is excluded. Official PyPI wheel `vllm==0.20.2` was staged at `wheel-probe-proxy/vllm-0.20.2-cp38-abi3-manylinux_2_35_x86_64.whl`, SHA-256 `22a7dd06eb03371298e13d6100f3dedbf307352342aaf08e87c929c60aae9b4d`, then installed into the clean environment `/home/admin/cpfs/wjh/venvs/qwen36-vllm-0.20.2`. `pip check` reports no broken requirements. | **PASS (CPU-only)**: vLLM `0.20.2`, Torch `2.11.0`, Transformers `5.14.1`; with `CUDA_VISIBLE_DEVICES=""`, `vllm.transformers_utils.config.get_config(..., trust_remote_code=False)` parses the exact snapshot as `Qwen3_5ForConditionalGeneration` / `qwen3_5`. |
| Fresh GPU topology smoke | Fresh text-only servers on H20 TP1, TP2, TP4 used the exact release runtime with requested `MNS=8`, `MBT=8192`, BF16, chunked prefill on, prefix cache off, and one `2048 → 1` request per topology. Every response reported exactly 2048 prompt and 1 completion token; all four used GPUs were zero-memory after cleanup. Evidence root: `artifacts/qwen36/smoke-v4-20260717/`; artifact inventory SHA-256 `5b09c94e61801bfb7085257cfeea88049dfa81001f50810d85b9f87468088be0`. | **PASS (GPU compatibility)**. It establishes that TP1/2/4 can serve this model on the intended release, not that any topology has lower latency. |

## Confirmed model identity and architecture

| Item | Confirmed fact | Consequence for the experiment |
|---|---|---|
| Canonical source | ModelScope [`Qwen/Qwen3.6-27B`](https://www.modelscope.cn/models/Qwen/Qwen3.6-27B) | Use this repository, not an inferred Hugging Face mirror or an old Qwen3.5 checkpoint. |
| Immutable revision | Read-only `git ls-remote --symref` on 2026-07-17 resolved `master`/`HEAD` to `cea40373b9214dd387123e68841890af30dcd469`. | Pin this commit hash in the download record. Do **not** record only the mutable name `master`. Re-resolve it immediately before an approved download; a changed hash requires a new review. |
| Model metadata | ModelScope API reports `Architectures=["Qwen3_5ForConditionalGeneration"]` and `ModelType=["qwen3_5"]`. The official card says the artifact is a causal language model with a vision encoder. | This is dense with respect to MoE routing, but it is **not** a conventional all-attention dense transformer. The text benchmark must send no media; the model runner must still be the architecture selected from the exact checkpoint config. |
| Text architecture (official card) | 27B parameters; hidden size 5120; padded token embedding / LM output 248320; 64 layers; `16 × (3 × (Gated DeltaNet → FFN) → 1 × (Gated Attention → FFN))`; DeltaNet has V=48/QK=16 heads of 128; gated attention has Q=24/KV=4 heads of 256 and RoPE dimension 64; FFN intermediate size 17408; native context 262144. | A Frontier profile must cover both DeltaNet/linear-state and gated-attention paths, in prefill, decode, and true mixed execution. An all-attention Qwen3.5 or Qwen3-30B/MoE profile is not a valid substitute. |
| Tokenizer | The staged snapshot contains the tokenizer artifacts in the immutable file inventory. The earlier dedicated CPU parser reported tokenizer length `248077`; `248320` above is still only the padded embedding/output size, not the tokenizer contract. | Request input/output lengths must be tokenized with this staged tokenizer. Before trace materialization, freeze a tokenizer/config subset digest and do not borrow counts from a Qwen3.5 tokenizer. |

The official ModelScope card states that these artifacts are compatible with
Transformers, vLLM, SGLang, and KTransformers. That is useful compatibility
evidence, not a successful run on the selected `dash0` stack.

## Runtime provenance and excluded alternatives

| Evidence | Read-only observation | Verdict |
|---|---|---|
| System vLLM | `/usr/local/bin/vllm` reports `0.13.0rc2.dev2111+gb44b43f43.d20260309`, with Torch `2.8.0a0+5228986c39.nv25.6` and Transformers `4.57.5`. Its installed source contains `qwen3_5.py`, `qwen3_5_mtp.py`, registry entries for `Qwen3_5ForConditionalGeneration`, and branches for `qwen3_5_text`. | Architecture-family support is present, but this development build is not yet the frozen community experiment runtime. |
| Uninstalled local source | `/home/admin/cpfs/wjh/agentic-kv/third_party/vllm_v20_build` is `v0.20.0` source with build by-products; `/home/admin/cpfs/wjh/venvs/vllm-0.20.0` does not contain a runnable vLLM/Transformers pair. | **Excluded.** It is not the experiment runtime and must not be cited as an alternative same-stack result. |
| Qwen-specific state/page rule | The v0.20 Qwen3.5 implementation obtains Mamba/DeltaNet state settings from the checkpoint when cache dtype is auto; the actual v0.20.2 GPU smoke then resolved its attention page to 784 tokens. | The state/page rule is a model-state contract, not an optional benchmark flag. The profile and simulator must consume the observed physical page setting. |

Therefore the defensible statement now is: **the exact Qwen3.6-27B snapshot
is CPU-parsed and GPU-served by the frozen official community vLLM release on
`dash0` at TP1/2/4. It is a non-MoE hybrid model, not a conventional
all-attention dense-transformer evidence point.**

## GPU topology-smoke observations (not a latency experiment)

The runner is a one-request topology/usage check, with a fresh server for
each TP. Its E2E values are retained only to audit that a request completed;
they are not steady-state samples, are not TTFT/TPOT measurements, and must
not be ranked.

| TP | Exact usage | Smoke E2E (audit only) | Resolved attention page/block size | GPU KV cache at `max_model_len=4096` |
|---|---|---:|---:|---:|
| 1 | 2048 prompt, 1 completion | 4581.977 ms | 784 tokens | 306,289 tokens |
| 2 | 2048 prompt, 1 completion | 5606.756 ms | 784 tokens | 1,068,600 tokens |
| 4 | 2048 prompt, 1 completion | 6252.274 ms | 784 tokens | 2,630,087 tokens |

vLLM accepted the requested `--block-size 16` but then logged, at every TP,
`Setting attention block size to 784 tokens to ensure that attention page size
is >= mamba page size.` Thus **block size 16 is not the actual engine state
for this model**. A later real/simulator comparison must freeze and expose the
resolved 784-token page/state contract (or deliberately select a different
legal engine mode before profiling); it may not label this stack as a
block-16 comparison. First TP1 startup also compiled FlashInfer GDN kernels
and performed a cold profile/warmup; these one-time costs remain outside all
request-latency metrics.

## Initial read-only `dash0` inventory (historical; superseded where noted)

All paths below were inspected without mutation on 2026-07-17.

| Area | Observation | Consequence |
|---|---|---|
| Disk | `/home/admin` root filesystem: 245 GiB available. Shared CPFS mounted at `/home/admin/cpfs`: 1.1 TiB available, already 95% used. Existing `/home/admin/cpfs/wjh/models` is 1.2 TiB and `/home/admin/resource/model` is 1.7 TiB. | Stage only after an explicit capacity check; do not rely on the root filesystem or an unconstrained default cache. |
| Checked model/cache locations | Before staging, the usual locations were absent. | **Superseded:** the immutable snapshot is now at `/home/admin/cpfs/wjh/models/Qwen/Qwen3.6-27B` and is bound by the inventory above. |
| Main checkout | `/home/admin/cpfs/wjh/aituner/aituner` had tracked and untracked user changes. | The smoke wrote only new artifacts and did not modify its source. A future profile implementation must use an explicitly versioned source/patch root rather than treating this dirty checkout as code provenance. |
| Frontier | Historical Frontier source exists at `/home/admin/cpfs/wjh/frontier-qwen30-vllm020-profile-v1/Frontier`, commit `d9cfeb6d8791fbf2f295dd9744c56a666171776e` (`pre-release-v0.2`), with a clean tracked tree. A source search found no `Qwen3.6`, `Qwen3_5`, or `qwen3_5` model-contract hit. | It is not an existing Qwen3.6 profile/model contract. A new dense adapter/spec must be versioned and accepted before it may be used. |
| Existing profiler contract | The old Qwen3-30B profile launcher hard-codes `model=qwen3-a3b-30b-moe`, `--is_moe`, vLLM 0.20 API adapters, and Frontier commit `d9cf…`. | It cannot be repurposed by only changing a model path; its MoE assumptions and compatibility adapter are excluded from the dense baseline. |
| Qwen3.6 artifacts | A read-only search of the checkout's `runs` subtree found no Qwen3.6-named run/profile/model path. | No dense Frontier profile or real/simulator output is admissible today. |

## Remaining gates before any latency-matrix cell

1. **Trace/tokenizer lock:** materialize the Qwen3.6 tokenized Fixed/Trace-P/
   Trace-PD vectors and hash the exact tokenizer/config subset. Trace-PD is
   not trace-faithful without the input, output, arrival and prefix-state
   vector.
2. **New Frontier contract:** introduce a versioned Qwen3.6 **non-MoE hybrid** model spec
   that maps the exact `config.json` to simulator operators. It must represent
   Gated DeltaNet/linear-state, gated attention, FFN, TP collectives and KV/
   state-cache capacity, including the resolved 784-token page rule. It may
   not import the Qwen3-30B MoE routing profile, an all-attention Qwen3.5
   profile, or an unrecorded additive timing scale. Any compatibility adapter
   is a separate, hashed intervention.
3. **Profile manifest:** collect and freeze per-TP (1/2/4) profile rows for
   the above stages over shapes covering Fixed-P, Fixed-PD, Trace-P and
   Trace-PD. Include prefill, decode and genuine mixed batches, plus TP2/TP4
   all-reduce. The manifest must bind model revision/config hash, tokenizer
   hash, vLLM/environment hash, Frontier commit/adapter hash, hardware,
   precision, profiler command, CSV hashes, and shape coverage.
4. **CPU simulator acceptance:** reject the profile root unless every required profile
   family has finite rows for all legal TP values and requested shapes; all
   identity hashes match the real-server lock; profile/model manifests name
   Qwen3.6; and the simulator emits request-level TTFT/E2E/TPOT where defined
   for a no-GPU fixture. A missing simulator operator is a **coverage
   blocker**, not a license to borrow a Qwen30 profile.

Only after all four gates may a separately approved real/simulator 600-s
latency surface begin. The GPU smoke closed the runtime/topology gate only; it
does not close any of these simulator or evaluation gates.

## Evidence locations

- This record: `runs/simulator-tuning-latency-matrix-v0/dense-preflight.md`.
- Matrix decision/protocol: `runs/simulator-tuning-latency-matrix-v0/experiment-card.md`.
- Existing (excluded) MoE-v0.20 profile launcher and its hard-coded contract:
  `runs/frontier-qwen30-vllm020-profile-v1/run_frontier_linear_smoke.sh` and
  `runs/frontier-qwen30-vllm020-profile-v1/frontier_vllm020_compat.py`.
- Existing Frontier surface runner shows the required external source,
  ReplayServe builder, profile root, request-level metric, and hash contract:
  `runs/frontier-phase-factorial-v0/run_frontier_qwen30_prefill_surface.py`.

## Not completed

- No Qwen3.6 Frontier model spec or profile exists.
- No Qwen3.6 fixed/trace workload vector is frozen.
- No real or simulator latency measurement exists, so this record cannot
  change the simulator-selection verdict.
