diff --git a/scripts/frank-primary.env b/scripts/frank-primary.env index e8bdec2..a3531e3 100644 --- a/scripts/frank-primary.env +++ b/scripts/frank-primary.env @@ -62,9 +62,15 @@ NGL=999 OT_OVERRIDES=exps=CPU,per_layer_token_embd.weight=CPU TENSOR_SPLIT=1,1 -# The drafter lives on the first R9700 (the card the load log shows holding -# the shared embedding borrow path). -SPEC_DRAFT_DEVICE=ROCm0 +# The drafter MUST sit on the SECOND R9700 (ROCm1): with -ts 1,1 the main +# model's output head lands on the last-layers card, and the shared MTP head +# BORROWS it. --override-tensor sets has_tensor_overrides(), which pins +# n_copies==1 in the draft's scheduler — a borrowed output.weight sitting in +# a ROCm1 buffer then aborts the draft graph with ggml-backend.cpp:941 +# "pre-allocated tensor (output.weight) in a buffer (ROCm1) that cannot run +# the operation" when the draft is elsewhere (verified live 2026-09-26: the +# ROCm0 placement crash-looped 4x at ~12 s, ROCm1 loaded and served). +SPEC_DRAFT_DEVICE=ROCm1 # Batch geometry: logical batch 8192 with ubatch 512 — the measured optimum # class on this fleet's ROCm stack (a bigger logical batch is free; compute