Skip to content

Prefill hangs on RTX 4060 Ti (SM89) for prompts beyond warmup length #72

Description

@2stacks

Summary

On an RTX 4060 Ti 16GB (Ada, SM89), a ~180-token prompt sent to a freshly started server hangs indefinitely. An ~11-token prompt works and decodes at 50–66 tok/s.

While hung: no Prefill batch line, no access-log line, connection stays open. GPU sits flat at 100% utilization / ~35W of 165W. Scheduler thread spins at ~100% CPU. SIGINT/SIGTERM are ignored; kill -9 required.

Is SM89 desktop Ada a tested configuration? The paper benchmarks an RTX 4060 laptop, RTX 5090, and RTX PRO 6000.

Environment

  • FreeToken 0.1.2+g0ab982f10 (Desktop installer engine wheel)
  • RTX 4060 Ti 16GB (SM89), driver 590.48.01, Ubuntu 24.04
  • CUDA 13.0 toolkit installed, nvcc on PATH and confirmed in use
  • torch==2.11.0+cu130, flashinfer-python==0.6.17, sglang-kernel==0.4.5+cu130, freetoken-kernel-cache==0.1.2+cu130.g0ab982f10
  • Model: nvidia/Qwen3.6-35B-A3B-NVFP4 (FTW)

Reproduction

Start a fresh server:

ft serve --model ~/.freetoken/models/Qwen3.6-35B-A3B-NVFP4 \
         --served-model-name qwen3.6-35b-a3b

Send a ~180-token prompt as the first request:

python3 -c 'import json;p="The quick brown fox jumps over the lazy dog. "*20;print(json.dumps({"model":"qwen3.6-35b-a3b","messages":[{"role":"user","content":p}],"max_tokens":32}))' > /tmp/p.json
 
curl http://127.0.0.1:1919/v1/chat/completions -H 'Content-Type: application/json' -d @/tmp/p.json

Never returns. Restart required.

For contrast, an ~11-token prompt ("hi") as the first request completes normally.

Startup logs Prefill warmup complete for lengths [80, 128].

Request history affects the outcome

The same 20-rep request that hangs from a cold server succeeds if smaller prompts are served first. Sending 10 → 15 → 20 succeeds, and continuing 25 → 30 → 35 → 40 also succeeds. Sending 10 then 20 hangs.

That escalation is not reliable, though, and the step size does not cleanly predict failure: a run of 9 → 10 → 12 → 15 → 20 → 27 → 35 → 44 all landed, then 44 → 54 hung — a smaller relative jump than several earlier steps that worked. So this may be non-deterministic rather than a size threshold. I have not run enough repetitions to say.

Either way there is no practical warm-up path to agent-sized prompts: Hermes sends ~23,000 tokens on its first message and never returns.

Notes

Full logs, py-spy dumps, nvidia-smi/nvtop output available on request. Happy to run repeated trials to establish whether this is non-deterministic, apply patches, or collect further traces.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions