Any benchmarks available how this performs on 16k context?

#1
by mcr-ksh - opened

Any benchmarks available how this quant performs?

mcr-ksh changed discussion status to closed
mcr-ksh changed discussion title from Max KV-cache on Jetson Thor? to Any benchmarks available how this performs on 16k context?

Any benchmarks available how this quant performs?

Hey, thanks for asking! I just ran a quick 16k test on my AGX Thor.

KV cache is basically a non-issue on Thor with this model. V4.1 compresses its attention cache and stores it in FP4, so the whole context state is around 2 GiB at 32k tokens. What actually limits you is the weights, and how fast the runtime gets through a long prompt.

Test: one 15.4k-token prompt, 256 tokens out, single request, greedy. It was in thinking mode, so the output is reasoning tokens.

CUDA server llama.cpp (this GGUF)
prompt processing (15.4k tokens) 628 tok/s (~25 s) 86 tok/s (~3 min)
generation at 16k 30 tok/s (with speculative decoding) 9.5 tok/s
same prompt sent again 59 ms (prefix cache) –
free memory while serving 8 GiB (32k context limit) 27 GiB (16k context limit)

At short context llama.cpp generates about 12 tok/s, and the CUDA server 25 tok/s plain, or 25–40 with speculation depending on the prompt.

llama.cpp

Upstream doesn't support this yet, so use my fork: https://github.com/patrickbdevaney/llama.cpp/tree/deepseek-v4.1-reap-thor

  • thor/build.sh builds it, and thor/start.sh starts an OpenAI-compatible llama-server on port 8080.
  • The default context is 16k. CTX=32768 thor/start.sh works too; it passes the extra keys the GGUF needs above 16k.
  • Vision works through the mmproj in this repo.
  • DSPARK=1 turns on the bundled drafter for speculative decoding, giving about 17–21 tok/s at short context. With it on, the output isn't always token-for-token the same as without it.
  • You also need the two Engram row files on local NVMe (not a USB drive). The "Engram row files" section in thor/README.md explains how.

Native CUDA server (the fast path on Thor)

It's a standalone CUDA engine written specifically for Thor (sm_110), so no llama.cpp or vLLM underneath. Speculative decoding is on by default, using the model's own drafter, and greedy output still matches plain decoding exactly. ./start.sh serves an OpenAI-compatible API on port 8000 with a 32k context limit. Set SEQMAX for more; I've tested allocating a 1M-token context. It also does image input, JSON schema / grammar constrained output, and caches previous prompts so follow-ups in a conversation are near instant.

One warning for both: Thor's memory is shared between CPU and GPU, so don't load a second model next to it. That can hard-reboot the box, and both start scripts will refuse to launch if another one is running.

Sign up or log in to comment