speed-bench: Jetson AGX Thor (sm_110) numbers - #788
Open
marcodelpin wants to merge 1 commit into
Open
Conversation
Canonical sweep on a Jetson AGX Thor T5000 dev kit, CUDA backend, built from an unmodified tree with: make cuda CUDA_ARCH=sm_110 ctx 2048..65536, step 2048, gen 128. Machine verified idle at the start and the end of the run.
|
Hi @marcodelpin, would you like to try our implementation #621 with a slightly different GGUF file on your Jetson AGX Thor board (sm_110)? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
speed-bench: Jetson AGX Thor (sm_110) numbers
Adds
speed-bench/jetson_agx_thor.csvand its_ts.svg. No Jetson/Thor numbers were in thecorpus.
Hardware
NVIDIA Jetson AGX Thor T5000 developer kit - Blackwell, compute capability sm_110, 2560 CUDA
cores / 96 tensor cores, 128 GB LPDDR5X at 273 GB/s, 14-core Arm Neoverse-V3AE, CUDA 13.0.48,
L4T R38.4.
How it was run
Built from an unmodified tree - sm_110 needed no patch:
The command from the README, plus
--cudafor the CUDA backend, on an idle machine:Model: DeepSeek V4 Flash,
IQ2XXS-w2Q2K-AProjQ8-SExpQ8-OutQ8-chat-v2-imatrix-0731(80.8 GiB),fully resident in RAM.
Numbers
The absolute numbers, and the same rows against
gb10.csv- same 128 GB LPDDR5X at 273 GB/s,6144 CUDA cores against Thor's 2560, i.e. Thor has 41.7%:
Across the full 32-context sweep: prefill 356.52 - 424.58 t/s, generation 9.48 - 12.16 t/s.
Prefill lands close to the CUDA-core ratio; generation sits consistently above it, as one would
expect if decode is partly bandwidth-bound and the bandwidth is identical on both.
kvcache_bytesmatchesgb10.csvbyte-for-byte at every one of the 32 contexts.Correctness on sm_110
Per CONTRIBUTING, on the CUDA machine:
ds4_test --logprob-vectorsalso passes against the official DeepSeek continuation vectors intests/test-vectors/flash-0731/official.vec, andds4_test --serverpasses.No failures to report.
Power and efficiency
Sampled with
tegrastatsduring the sweep, 305 samples, at the factory-default power mode:Raising the power mode above the 120 W default bought +5.8% generation and cost 11.6% prefill, so
the default is the better operating point for this workload and these numbers are from it.
There are no power figures anywhere in
speed-bench/today, so this is a starting point ratherthan a comparison - someone has to measure the first one. The method is stated above precisely so
it can be repeated on any other board: sample
tegrastats(or the platform equivalent) for theduration of the same sweep, at the default power mode, and report the mean and the peak of total
board draw rather than a reading taken before or after the run.
For a module whose whole point is being deployable, t/s per W is arguably the axis that matters
most, and right now nobody has published one.
Cost per token
Prices as of 2026-08, US list, ex-VAT, for the smallest configuration that fits the model:
Thor is last on this axis, and the gap to the Mac is 1.7x. Worth stating plainly rather than
leaving implied: its case is not cost per token but that it is an embedded, deployable module with
the Jetson stack, at 66 W - a different product class from a laptop or a desk appliance.
Prices move: the Spark figure is the post-February-2026 MSRP, up 18% from its $3,999 launch price
on LPDDR5X supply. Anyone reading this later should re-check rather than trust the table.
Note:
DS4_CUDA_HAVE_MXF4gates the indexer, not the weightsNo code change proposed.
Adding
sm_110to the Makefile allowlist does not work -ptxasrejects it:The flag's five consumers are all in
ds4_cuda.cu, all on the lightning-indexer path that needsthat block-scaled MMA. The MXFP4 weight kernels in
cuda/mmq/reference the flag nowhere, runon
__dp4a, and are already compiled into the stock sm_110 build:ds4_mmq_mxfp4_dense,_moe,_moe_pairand_moe_vecare present in the binary, whileindexer_mxf4*is absent.They are also numerically correct there:
make test-mxfp4-cudaon sm_110 reportsMXFP4 routed MMQandMXFP4 routed MMVQat 0/1536 failures, both fused decode pathsclean, and
MXFP4 CUDA parity: PASS.So the allowlist is correct as it stands. Only the name reads wider than the thing it gates, and a
one-line comment at the conditional would make that clear.
Whether a real MXFP4 model runs on Thor is untested here.