| |
| """Capture SM120 bring-up golden data from the working (SM100) deployment. |
| |
| Produces in $VLLM_SM120_GOLDEN_DIR (/data/glm52-sm120-golden): |
| attn_layer{L}_call{N}.pt - real sparse-MLA attention I/O incl fp8_ds_mla |
| KV pages and indexer topk selections |
| moe_layer{L}_call{N}.pt - real hybrid-MoE I/O (x, routing, out) |
| e2e_goldens.pt - fixed prompts -> generated ids + top-50 |
| logprobs per step (greedy) |
| """ |
| import os |
|
|
| import torch |
|
|
| GOLD = "/data/glm52-sm120-golden" |
| os.environ["VLLM_SM120_GOLDEN_DIR"] = GOLD |
| os.environ.setdefault("VLLM_PP_LAYER_PARTITION", "21,19,19,19") |
|
|
| PROMPTS = [ |
| "The capital of France is", |
| "def quicksort(arr):\n ", |
| |
| ("The following is a technical design review.\n\n" + |
| "Section {i}: The system shall maintain consistency under partition " |
| "by electing a coordinator and journaling all state transitions to " |
| "a replicated log with fsync barriers at commit boundaries. " * 220 + |
| "\n\nQuestion: What mechanism ensures consistency under partition? " |
| "Answer:"), |
| ] |
|
|
|
|
| def main(): |
| from vllm import LLM, SamplingParams |
|
|
| llm = LLM( |
| model="/data/glm52", |
| pipeline_parallel_size=4, |
| gpu_memory_utilization=0.509, |
| kv_cache_dtype="fp8_ds_mla", |
| max_model_len=32768, |
| max_num_seqs=1, |
| max_num_batched_tokens=2048, |
| enforce_eager=True, |
| max_logprobs=50, |
| ) |
| open(os.path.join(GOLD, 'armed'), 'w').close() |
| sp = SamplingParams(max_tokens=32, temperature=0.0, logprobs=50) |
| outs = llm.generate(PROMPTS, sp) |
|
|
| goldens = [] |
| for o in outs: |
| c = o.outputs[0] |
| steps = [] |
| for lp in c.logprobs: |
| steps.append({int(t): float(v.logprob) for t, v in lp.items()}) |
| goldens.append({ |
| "prompt_token_ids": list(o.prompt_token_ids), |
| "generated_token_ids": list(c.token_ids), |
| "generated_text": c.text, |
| "top50_logprobs_per_step": steps, |
| }) |
| torch.save({"goldens": goldens, |
| "config": {"kv_cache_dtype": "fp8_ds_mla", |
| "partition": os.environ["VLLM_PP_LAYER_PARTITION"], |
| "greedy": True, "max_tokens": 32}}, |
| os.path.join(GOLD, "e2e_goldens.pt")) |
| for g in goldens: |
| print(f"[{len(g['prompt_token_ids'])} tok] -> {g['generated_text'][:70]!r}") |
| print("saved", os.path.join(GOLD, "e2e_goldens.pt")) |
|
|
|
|
| if __name__ == "__main__": |
| main() |
|
|