fix(critical): stop replacing base image compute files — use corex native kernels
ROOT CAUSE OF ALL FAILURES:
patch_ops.sh was replacing qwen3_5.py, _custom_ops.py, model_runner.py,
xformers.py, paged_attn.py, prefix_prefill.py, logits_processor.py,
sampler.py, arg_utils.py — killing base image's CoreX fused kernels.
Evidence from competitor sub168 docker logs (d03 PASS in 2.12s):
- 'Using fused CoreX GDN decode operator' (DeltaNet)
- 'Using CoreX fused MoE prefill operator: tokens=4096, kernel=expert-grouped-wmma'
- 'Using CoreX FA2 packed prefill: B=2 Hq=4 Hkv=1 D=256'
- ZERO NaN warnings
- Model weights: 17.35GB (full)
Our sub509 (d03 FAIL in 49s):
- 'NaN in prefill GatedDeltaNet layer 0 (frac=0.9998)' — 99.98% NaN!
- 'FusedMoE native kernel failed, falling back to pure PyTorch'
- No CoreX FA2
- Model weights: 16.23GB (incomplete — 1.1GB missing)
CCCL design principle (dispatch_reduce_deterministic.cuh, transform.cu):
Let the framework's policy_selector choose optimal kernel config per
hardware — never hand-replace the dispatch layer.
Now patch_ops.sh ONLY patches serving layer:
- protocol.py, serving_chat.py, api_server.py, chat_utils.py, cli_args.py
- qwen3coder_tool_parser.py (tool call XML parsing)
- reasoning/ (think tag parsing)
- registry.py (register Qwen3_5 model type)
- transformers models (qwen3_5 config)
Base image compute files PRESERVED:
qwen3_5.py, _custom_ops.py, model_runner.py, xformers.py,
paged_attn.py, prefix_prefill.py, logits_processor.py, sampler.py,
arg_utils.py, sequence.py, scheduler.py