Home / 128 GB

128 GB · 1× DGX Spark (GB10)

plotarmordev's TensorFold recipe: NVIDIA Nemotron 3.5 Super VL 120B (NVFP4)

1x NVIDIA DGX Spark (GB10, 128 GB unified memory), one box.

TensorFold 1.1.3 stock (tensorfold-native, linux-aarch64), MTP drafts on (engine default)commit recipe 72ef12b01 GPUmeasured 2026-10-25independent check passed
Rank in 128 GB
6of 6
Overall score
58.1/ 100
Speed
26.8/ 35
Quality
20.3/ 25
Browser check
4.0/ 5
My rating
7.0/ 35

Overall score as of 25 Oct 2026. Scores are relative to the best run in the class today; a better model later moves older runs down.

How the overall score is calculated
PartThis runBest in classRelativeWeightPoints
Speed, one requestdecode 41.5 tok/sbest 48.3 tok/s86.0 %17.5 %15.1
Speed, 8 at oncetotal 84.2 tok/sbest 125.2 tok/s67.3 %17.5 %11.8
Qualitymean of 7 tests: 57.5 %best mean 70.8 %81.2 %25 %20.3
Browser check8 of 1080.0 %5 %4.0
My rating2 of 1020.0 %35 %7.0
Overall100 %58.1

The seven quality tests: MMLU-Pro 62.5 · GPQA 45.5 · IFEval 85.5 · LiveCodeBench 35.0 · long text 8K 52.5 · long text 32K 55.0 · GPQA 30 with thinking 66.7.

The speed part is half the decode speed with one request and half the total speed with 8 requests at once, each relative to the best run of this class; a run without a total for 8 requests at once gets the better of its decode speed alone and the mix with its highest measured total. Quality is relative to the best run of this class, the browser check and my rating are out of 10. The parts are rounded one by one. sparkDash, the memory test and speculative-decoding numbers are not part of it. How the score is made, and the assumption behind it.

Build test

What it builds as an agent

Task: Voxel world (3D scene, one HTML file). One attempt, no help. Counted: the final file counts.

The exact promptcopy it and try it yourself↓

This is the task prompt word for word, as we handed it to the agent harness. The harness adds its own system prompt and tools, and some harnesses add short context notes of their own. A run that goes past 90 minutes also gets a short “finish now” message, as the prompt says. To try it yourself, give it to your own coding agent: it needs a shell and a working folder.

Prompt: Voxel world (3D scene, one HTML file)
Design and create the most impressive, creative, elaborate and detailed
voxel art world you are capable of. The theme and style are ENTIRELY your
choice — pick whatever world you can execute best and push it as far as
you can: scale, variety, detail, color, animation, atmosphere, life.
Surprise me.

Hard requirements:
- Everything ends up in ONE single self-contained HTML file (game.html in
  the current working directory) that opens and runs directly in Chrome.
  Use WebGL and whatever libraries you like, but embed everything —
  no internet access at view time, no external files.
- The scene must present itself: include an automatic slow cinematic
  camera tour (orbiting the world, occasionally zooming in on highlights)
  that starts on load, plus mouse controls (orbit/zoom) for manual viewing.
- All user-facing text (UI, HUD, titles, descriptions, hints) must be in
  ENGLISH, regardless of the language of any project files you encounter.

When finished, verify your HTML actually loads and renders without
console errors, then state DONE with the absolute path of game.html.
Do not ask questions.

How you work (same for every model):
- You work alone in the folder /work (this is the current working directory). Nobody will answer questions. Aim to finish in about 60 minutes. After 90 minutes you will get a message to finish; then you have at most 30 more minutes. Hard stop after 120 minutes.
- Tools on this machine: shell, files, python3 with numpy and Pillow, ffmpeg, node, and `shot.sh game.html` (opens the page in a headless browser, saves a screenshot and prints console errors). There is no internet and no access to other machines.
- Keep a working /work/game.html at all times. If you are stopped, the last version that loaded without errors counts.
- JavaScript libraries available offline in the test browser, through an import map with these exact URLs: "three": "https://cdn.jsdelivr.net/npm/three@0.170.0/build/three.module.js", "three/addons/": "https://cdn.jsdelivr.net/npm/three@0.170.0/examples/jsm/", "simplex-noise": "https://cdn.jsdelivr.net/npm/simplex-noise@4.0.3/dist/esm/simplex-noise.js", "@tweenjs/tween.js": "https://cdn.jsdelivr.net/npm/@tweenjs/tween.js@25.0.0/dist/tween.esm.js", "cannon-es": "https://cdn.jsdelivr.net/npm/cannon-es@0.20.0/dist/cannon-es.js". No other external resources.
- After the scene is built, set `window.scene` to the Three.js scene (if you use Three.js) and `window.ready = true`.
Browser check
8/ 10
My rating
2/ 10
Time
14.5min
Tokens
33,009
Harness
OpenCode 1.19.3
Screen recording of the page this run built, made in Chrome after the run. The page files are unchanged. Still image

Play it yourself

Open full screen

AI-generated The page this setup built, running live in your browser: click into it and use the controls it shows itself (usually drag to look around, scroll to zoom). It needs WebGL and can be slow on a weak graphics card.

The browser check

  • page loads without page error1 / 1
  • window.ready === true within 30 s1 / 1
  • no console errors (whole session)1 / 1
  • frame is not blank1 / 1
  • frame rate in software GL (rAF over 5 s)0 / 1
  • world: scene size 0.5 (parts >= 80 or >= 20000 triangles; canvas fallback), visible text English if any 0.51 / 1
  • automatic camera tour: the view changes on its own in two successive ~5 s windows (1 each)2 / 2
  • animation in the world (nodes / instances / particles moving besides the camera)1 / 1
  • OrbitControls: drag and wheel change the picture beyond the animation baseline0 / 1

Measured 2026-10-24. Raw files: check · run info · command · final choice · contract · sampling · gate stats · gate log · screenshot · clip.mp4 · web.mp4 · web-poster.jpg.

The run's own headless check browser, which renders the page the model built, used up to 1428 % CPU. The load monitor counted it as another process. Browser check 8.0 out of 10 (voxel-world task): the page loads without a page error, is ready after 0.01 s, has no console errors, is not blank, shows a world (26,891 parts, 331,484 triangles, English text), passes the tour check (the picture changes over time) and has 6 animated nodes. The 2 lost points are the frame rate (1.34 frames per second in software rendering without a GPU, 10 give half a point and 20 the full point) and the orbit-controls test (a mouse drag changed the picture, the mouse wheel changed it less than the check needs). The agent (OpenCode 1.19.3) finished by itself after 14.5 minutes, one try, no help; the “finish now” message (from 90 minutes) was not needed. 4 versions of the page were seen on the way, 1 of them loaded without errors, and that one counts. 15 requests, no error, no request blocked, none shortened by my test proxy (598,178 prompt tokens, 33,009 answer tokens). The limit per answer was 65,536 tokens. The model card names only 16,384, in code examples for single answers (max_tokens=16384 at README lines 539, 571, 599 and 637 of the pinned revision 82d93699; line 548 adds that reasoning tokens and the answer share that budget), and it names no other output limit, so I used my default of 65,536 and changed nothing else. The context was the recipe's 131,072 tokens, 8 slots. Thinking was on with the card's sampling (temperature 1.0, top_p 0.95). What it built: VOXELARIA, one small floating island at sunset with voxel cottages, a great tree, a lily pond, a windmill and a day and night cycle. The world is simple. The page has a cinematic tour of seven stops, written with durations of 7 to 10 which the page's animation library reads as milliseconds, so in my recording the camera stays on the island at about the same distance; you can orbit and zoom by hand.

Exact command we measured withfor reproducing↓

You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.

Build test (run show-r4)
run_showcase.sh --harness opencode-limit-input --task VX --upstream http://127.0.0.1:46051/v1 --model nemotron-3.5-super-vl --sampling-file $RUN/sampling-show.json --out $RUN/raw/nemotron-2410-show-r4/show --limit-s 7200 --inject-after-s 5400 --poll-s 20 --ctx 131072
Extra build test

It also built this

Task: Airship dock (3D scene, one HTML file). One attempt, no help. Counted: the final file counts. This extra build test is shown for the full picture; it is not part of the ranking.

The exact promptcopy it and try it yourself↓

This is the task prompt word for word, as we handed it to the agent harness. The harness adds its own system prompt and tools, and some harnesses add short context notes of their own. A run that goes past 90 minutes also gets a short “finish now” message, as the prompt says. To try it yourself, give it to your own coding agent: it needs a shell and a working folder.

Prompt: Airship dock (3D scene, one HTML file)
Design and build the most impressive, creative, elaborate and detailed steampunk airship dock voxel world you are capable of. Theme: a steampunk airship dock. Everything else (style, story, extra details) is your choice.

How you work:
- You work alone in the folder /work. Nobody will answer questions. Aim to finish in about 60 minutes. After 90 minutes you will get a message to finish; then you have at most 30 more minutes. Hard stop after 120 minutes. Spend the time where it shows in the result.
- Tools on this machine: shell, files, python3 with numpy and Pillow, ffmpeg, node, and `shot.sh index.html` (opens the page in a headless browser, saves a screenshot and prints console errors). There is no internet and no access to other machines.
- You may create your own assets locally with these tools (textures, sky, sounds, music) and embed them in the file as data URIs. Do not download anything.
- Keep a working /work/index.html at all times: write a first working version early, then improve it step by step. If you are stopped, the last version that loaded without errors counts.
- Check your work with `shot.sh` as often as you like, fix every error, and keep improving until you are satisfied. Then stop.

Deliverable: ONE self-contained file /work/index.html that opens and runs in Chrome.
- JavaScript libraries: only these, through an import map with these exact URLs (they work offline in the test browser). Use whatever helps, including all Three.js addons (post-processing, sky, water, noise and so on):
  - "three": "https://cdn.jsdelivr.net/npm/three@0.170.0/build/three.module.js"
  - "three/addons/": "https://cdn.jsdelivr.net/npm/three@0.170.0/examples/jsm/"
  - "simplex-noise": "https://cdn.jsdelivr.net/npm/simplex-noise@4.0.3/dist/esm/simplex-noise.js"
  - "@tweenjs/tween.js": "https://cdn.jsdelivr.net/npm/@tweenjs/tween.js@25.0.0/dist/tween.esm.js"
  - "cannon-es": "https://cdn.jsdelivr.net/npm/cannon-es@0.20.0/dist/cannon-es.js"
- No other external resources. Build every object from cubes (voxels); InstancedMesh is allowed.
- The page fills the whole window and resizes with it. All visible text is in English.
- After the scene is built, set `window.scene` to the Three.js scene and `window.ready = true`.
- An automatic slow cinematic camera tour starts on load. Mouse input switches to OrbitControls (drag to rotate, scroll to zoom).
- Sound, if any, starts only after the first click (browsers block autoplay).
- A small label in the top-left corner: "Steampunk Airship Dock".

Minimum content (go far beyond it):
1. A tall iron docking tower with platforms, stairs or ladders, and a mooring arm at the top.
2. At least two airships, each with a balloon envelope, a gondola and propellers.
3. Big brass gears on the tower or the buildings.
4. Pipes and at least three chimneys that emit rising steam particles.
5. At least one crane and a stack of cargo crates.
6. A ground area with a workshop building and a small rail track.
7. Propellers and gears rotate, steam rises and fades, and one airship slowly approaches the tower, docks, waits and leaves again, in a loop.
8. Warm sunset lighting with shadows.
Time
18.4min
Tokens
37,586
Harness
OpenCode 1.19.3
The page this setup built: browser-check clip of the counted version (muted, loops). Still image

Play it yourself

Open full screen

AI-generated The page this setup built, running live in your browser: click into it and use the controls it shows itself (usually drag to look around, scroll to zoom). It needs WebGL and can be slow on a weak graphics card.

Measured 2026-10-24. Raw files: check · run info · command · final choice · contract · sampling · gate stats · gate log · screenshot · clip.mp4.

The run's own headless check browser, which renders the page the model built, used up to 1406 % CPU. The load monitor counted it as another process. Extra build, not part of the score. This run used the airship-dock prompt (the one the 16 GB and 32 GB classes use), not the voxel-world prompt this page is ranked on. Same box, same recipe, same server settings, same agent and same limits as the voxel-world run above; only the prompt differs. I have not rated this page, so no score is shown for it. The agent finished by itself after 18.4 minutes, one try, no help; the “finish now” message (from 90 minutes) was not needed. 4 versions of the page were seen on the way, 1 loaded without errors, and the last one counts. The browser check found one page error in the counted file (a write to a read-only property of an audio filter). 17 requests, no error, no request blocked, none shortened by my test proxy (667,567 prompt tokens, 37,586 answer tokens). Answer limit 65,536 tokens, context 131,072 tokens, thinking on with the card's sampling (temperature 1.0, top_p 0.95).

Exact command we measured withfor reproducing↓

You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.

Build test (run dock-show-r0)
run_showcase.sh --harness opencode-limit-input --task K1 --upstream http://127.0.0.1:43871/v1 --model nemotron-3.5-super-vl --sampling-file $RUN/sampling-show.json --out $RUN/raw/nemotron-2410-xdock-show-r0/show --limit-s 7200 --inject-after-s 5400 --poll-s 20 --ctx 131072
Speed v2

How fast it runs

Decode
41.5tok/s
Decode, code
40.6tok/s
Decode, prose
42.4tok/s
500 words
≈ 16.7s
Prefill at 8K
2467.2tok/s
First token at 2K
1.0s
MeasurementResult
Decode41.5 tok/s
Words per second29.9 words/s
Characters per second197.7 chars/s
Decode, code prompt40.6 tok/s
Decode, prose prompt42.4 tok/s
Spread of the decode runs (CV)10.1 %
Spread of the code runs (CV)10.1 %
Spread of the prose runs (CV)5.6 %
Decode, window 142.1 tok/s
Prefill at 2K2068.0 tok/s
Prefill at 8K2467.2 tok/s
Prefill at 32K2283.5 tok/s
Time to first token at 2K1.0 s
Time to first token at 8K3.3 s
Time to first token at 32K14.4 s
Draft acceptance rate68.1 %
Mean accepted length3.0 tokens
1 request at once (total)40.6 tok/s
2 at once (total)50.0 tok/s
4 at once (total)67.3 tok/s
8 at once (total)84.2 tok/s
1 request at once (per request)40.6 tok/s
2 at once (per request)25.9 tok/s
4 at once (per request)18.0 tok/s
8 at once (per request)11.2 tok/s
Server slots (from the recipe)8 slots
Long answer, wall time94.8 s

Method: code+prose; 2 run(s) each; 512 tokens; 1 warm-up(s); median; requests at once: C1,C2,C4,C8 at once; 2 rounds each; 512 tokens per request; prose prompt; total = all tokens / wall time, per request = tokens / end-to-end time; median over the rounds. Measured 2026-10-24. Raw files: speed result · speed contract · log · long answer.

Requests at once: the server has 8 slots (from the author's recipe). The speed test ran with the author's recipe unchanged (plotarmordev/Nemotron-3.5-Super-VL-Single-DGX-Spark-TensorFold, commit 72ef12b0 of 24 Oct 2026, the pull request that moved it to stock TensorFold 1.1.3): NVIDIA's own checkpoint (NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4, revision 82d93699, 120B parameters of which about 12B are active per token) on the stock TensorFold 1.1.3 engine by Ash Hart, started with the recipe's ./start.sh and no overrides: a context of 131,072 tokens (scripts/config.sh line 40), streams auto = up to 8 (line 41), images on (line 42), thinking by default (line 43, I switch it off per request for speed and quality), MTP drafts on with the engine's own depth (line 49; no --mtp flags). Model and engine pins are lines 19 to 22. Sampling is the model card's text sampling, temperature 1.0 and top_p 0.95 (model card README line 63; the card also gives temperature 0.6 for vision input, which these tests do not use); seed 42; no prompt cache in the requests. The command text and the raw files of this run cite the card as line 69 (sampling) and lines 602 to 603; that is the numbering of the card's current main version, in the pinned revision 82d93699 the same text stands at line 63 and lines 539 to 637. The headline 41.51 tok/s is the mean of the code prompt (40.61) and the prose prompt (42.41), medians of two runs each (spread 10.1 % and 5.6 %). The draft acceptance was 68.07 % (2.999 tokens per round). Requests at once: the recipe starts with 8 streams at the full 131,072-token context (recipe README lines 11 and 177), so C1, C2, C4 and C8 ran in this same run with the author's own server settings; nothing was raised. NVIDIA's card recommends a separate LiLiCorr drafter for DGX Spark (model card README line 306 of the pinned revision); the recipe serves the checkpoint's own MTP drafts instead and I followed the recipe. The recipe's README says its own speed table was measured on the build before 1.1.3 and not re-measured on 1.1.3 (recipe README lines 8, 18 to 19 and 31 to 32); the numbers on this page are new measurements on 1.1.3.

Exact command we measured withfor reproducing↓

You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.

Speed v2 (run speed-r0)
python3 speed2.py --base-url http://127.0.0.1:38263/v1 --label nemotron-2410-speed-r0 --prompts $BENCH/repos/rigmark-v2/prompts-v2.json --output $RUN/raw/nemotron-2410-speed-r0/nemotron-2410-speed-r0/speed2 --contract $RUN/raw/nemotron-2410-speed-r0/nemotron-2410-speed-r0/speed2/speed-contract.json --parts decode,prefill,conc,l1 --prefill-depths 2048,8192,32768 --prompt-ids code,prose --runs 2 --max-tokens 512 --warmups 1 --prefill-runs 3 --conc-levels 1,2,4,8 --conc-rounds 2 --conc-max-tokens 512 --conc-prompt prose --tokenizer-json $HOME/models/nemotron-3.5-super-vl-nvfp4/tokenizer.json --tokenizer-python python3 --sampling {"temperature": 1.0, "top_p": 0.95} --sampling-source NVIDIA model card README (nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4) line 69 'Recommended Sampling: Text: temperature 1.0, top_p 0.95; vision: temperature 0.6, top_p 0.95' and the usage examples lines 602-603; text values used for all tests --model nemotron-3.5-super-vl --no-cache-prompt --server-log $RUN/logs/server-A.log --engine-version-file $RUN/logs/engine-version.txt --server-slots 8 --server-slots-source scripts/config.sh:41 @72ef12b0 (PARALLEL auto: up to 8) + README 'up to 8 requests at once'
Quality v2

How well it answers

TestResult95 % marginRightCut offcount as wrongRaw files
MMLU-Pro
400 fixed questions, letter only
62.5 % ± 4.7 pts250 / 4000answers · summary · log · contractcommand
GPQA Diamond
198 questions, letter only
45.5 % ± 6.9 pts90 / 1980answers · summary · log · contractcommand
IFEval
200 fixed prompts, strict
85.5 % ± 4.9 pts171 / 2000answers · summary · log · contractcommand
LiveCodeBench
40 newest tasks, the code runs
35.0 % ± 14.2 pts14 / 400answers · answers · summary · log · contractcommand
Long text 8K
4 tasks x 10 at 8192 tokens
52.5 % ± 14.8 pts21 / 4010log · contract · answers · summarycommand
Long text 32K
4 tasks x 10 at 32768 tokens
55.0 % ± 14.7 pts22 / 400log · contract · answers · summarycommand
GPQA 30, thinking on
30 questions, limit 16,384 tokens
66.7 % ± 16.0 pts
median 7,851 tokens, 613.4 s per question
20 / 308log · contract · summarycommand

Thinking off, except the last test. Seed 42. Sampling from the model card. A cut-off answer counts as wrong. Measured: MMLU-Pro 2026-10-24; GPQA Diamond 2026-10-24; IFEval 2026-10-24; LiveCodeBench 2026-10-24; Long text 8K 2026-10-25; Long text 32K 2026-10-25; GPQA 30, thinking on 2026-10-24.

Note from the run: The long-text test (8K and 32K, four tasks of 10 questions each per length) ran later in its own job on the same GB10 box with the same recipe, the same server settings and the same 8 questions at a time. My first run skipped it because my tool could not start its local tokenizer for this model (a mistake in my test setup, not in the recipe). Its answer limit is 128 tokens (thinking off), the same limit for every setup; 10 of the 40 answers at 8K were cut off at that limit and count as wrong: all 10 questions of the word-count task (the model started to reason in the answer instead of listing the words). Nothing was cut off at 32K. MMLU-Pro and GPQA Diamond ran with an answer limit of 48 tokens (the answer is one letter); none of these answers was cut off. IFEval ran with 4,096 tokens and LiveCodeBench with 32,768 tokens, none cut off. 8 of 30 GPQA answers with thinking were cut off at their limit of 16,384 tokens and count as wrong. GPQA Diamond ran from the public mirror fingertap/GPQA-Diamond (198 questions), because the original is gated and I had no access token. The questions ran 8 at a time, the recipe's slot count (same questions, limits and seed 42 for every question); the median time per question of the thinking test (613 s) was measured under that load. Sampling for all of them: temperature 1.0 and top_p 0.95 (the model card, text). The load monitor saw other processes during two parts: up to 100 % CPU in the first test group (it is the LiveCodeBench solutions of the test itself, /work/solution.py, running in their sandbox) and one reading of 96.5 % CPU (a system update check, apt-check) during the thinking test. These are my own tests, and no other run of this setup is mixed into the numbers on this page.

Exact commands we measured withfor reproducing↓

You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.

MMLU-Pro (run inst-r1)
bash tools/quality2/measure_all.sh tools/quality2/cards/nemotron35-super-vl-nvfp4-tensorfold-1x-2410.json --parts mmlupro --job nemotron-2410
GPQA Diamond (run inst-r1)
bash tools/quality2/measure_all.sh tools/quality2/cards/nemotron35-super-vl-nvfp4-tensorfold-1x-2410.json --parts gpqa --job nemotron-2410
IFEval (run inst-r1)
bash tools/quality2/measure_all.sh tools/quality2/cards/nemotron35-super-vl-nvfp4-tensorfold-1x-2410.json --parts ifeval --job nemotron-2410
LiveCodeBench (run inst-r1)
bash tools/quality2/measure_all.sh tools/quality2/cards/nemotron35-super-vl-nvfp4-tensorfold-1x-2410.json --parts lcb --job nemotron-2410
Long text 8K (run ruler-r0)
bash tools/quality2/measure_all.sh tools/quality2/cards/nemotron35-super-vl-nvfp4-tensorfold-1x-2410.json --parts ruler --job nemotron-2410-r
Long text 32K (run ruler-r0)
bash tools/quality2/measure_all.sh tools/quality2/cards/nemotron35-super-vl-nvfp4-tensorfold-1x-2410.json --parts ruler --job nemotron-2410-r
GPQA 30, thinking on (run think-r2)
bash tools/quality2/measure_all.sh tools/quality2/cards/nemotron35-super-vl-nvfp4-tensorfold-1x-2410.json --parts think --job nemotron-2410
Memory test

How much context fits

Largest size tested
131,072tokens
Peak memory
93.33GiB
Decode at that size
not measured
Context sizePrompttokensFilledFirst tokenPrefilltok/s, as the server reports itDecodetok/sPeak memoryGiBResult
4K 4,096 tokens3,89295.0 %———87.08answered (length)
8K 8,192 tokens7,78295.0 %———87.22answered (stop)
16K 16,384 tokens15,56495.0 %———87.71answered (stop)
32K 32,768 tokens31,12995.0 %———88.85answered (stop)
64K 65,536 tokens62,25995.0 %———91.50answered (stop)
128K 131,072 tokens124,51895.0 %———93.33answered (stop)

Memory test. For each context size (4K, 8K, 16K ... up to the largest size tested for the setup) the server is started again with that context, one prompt that fills about 95 % of the context is sent, and the model must answer. The largest size that loaded and answered counts. Decode speed is measured on that answer at the largest size. Peak memory is the rise of used memory (MemTotal - MemAvailable) over the idle value before the step, on the one box. Unified memory, so GPU and CPU share it. Measured 2026-10-24. Raw files: result of every step · log · contract.

Note from the run: The largest size tested is the recipe's own context of 131,072 tokens; the sizes from 4K to 64K came before it. For each size the server was started again through the recipe's own ./start.sh with --context set to it, one prompt that fills about 95 % of the size was sent, and the model answered at every size. The memory number is the rise of used memory over the idle value of the GB10 box (unified memory, so GPU and CPU share it): 87.08 GiB already at 4,096 tokens, 93.33 GiB at 131,072 tokens (a prompt of 124,518 tokens). The decode speed at the largest size was not measured in this test. Three earlier attempts of this memory test failed at the start because my tool could not start its tokenizer for this model; they produced no result and are not on the page. This is the fourth attempt.

Exact command we measured withfor reproducing↓

You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.

Memory test (run fit-r8)
bash tools/quality2/measure_all.sh tools/quality2/cards/nemotron35-super-vl-nvfp4-tensorfold-1x-2410.json --parts fit --job nemotron-2410
Credits

Also made this possible

Setup

Run it yourself

What you need and how to start it, step by step. The results below come from exactly this setup.

What you need

Hardware
1x NVIDIA DGX Spark (GB10, 128 GB unified memory), one box.
Model
nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4 @82d93699
Model and NVFP4 checkpoint
huggingface.co/nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4
Engine
TensorFold 1.1.3 (stock) on one DGX Spark, NVIDIA's NVFP4 checkpoint with MTP drafts, vision model, context 131,072 tokens — the program that loads the model and answers requests · github.com/ashhart/TensorFoldBuild and settings we used: TensorFold 1.1.3 stock (tensorfold-native, linux-aarch64), MTP drafts on (engine default)
Recipe
github.com/plotarmordev/Nemotron-3.5-Super-VL-Single-DGX-Spark-TensorFold by plotarmordev

Steps

  1. Get the recipe, the engine and the model files from the list above.

  2. Start the server with this command. It loads the model into memory.

    cd Nemotron-3.5-Super-VL-Single-DGX-Spark-TensorFold && ./start.sh

    The file names are the ones we used. Run the command in the folder that holds them, or put the full path in front of each name.

Exact command we measured withfor reproducing↓

You do not need this to run the model. It is the start text exactly as our run recorded it, with the engine build in front, so anyone can repeat the result.

Start, as recorded with the run
TensorFold 1.1.3 stock (tensorfold-native, linux-aarch64), MTP drafts on (engine default); cd $HOME/Nemotron-3.5-Super-VL-Single-DGX-Spark-TensorFold && ./start.sh (defaults: CONTEXT 131072, PARALLEL auto/8, VISION 1, THINKING 1, DRAFTS 1)

Context and sampling: 131,072 tokens (the recipe's default, scripts/config.sh:40), up to 8 parallel streams (config.sh:41, recipe README lines 11 and 177), images on, MTP drafts on with the engine's own depth, seed 42, requests ask for no prompt cache. Sampling as the model card gives it for text: temperature 1.0, top_p 0.95 (temperature 0.6 is the card's value for vision input). Speed, quality and sparkDash with thinking off (GPQA 30 and the build tests with thinking on). The answer limit for the build tests was 65,536 tokens: the card names only 16,384, in code examples for single answers, so I used my default for agent runs. Agent for the build tests: OpenCode 1.19.3.. Hardware: 1x NVIDIA DGX Spark (GB10, 128 GB unified memory), one box.. All raw files of this setup: raw/v2/nemotron35-super-vl-120b-nvfp4-1spark-tensorfold.

Mia's sparkDash 2.50.0

Mia's own benchmark, run unchanged

This is Mia's own benchmark tool (commit 21a3511), run unchanged. It has its own section on this page, and it is never mixed with my numbers. A cut-off answer counts as wrong here, so a value can differ from sparkDash's own screen.

Tool Eval Quick
93/ 100
Decode, 1 request
92.3tok/s
TestResult95 % marginRightCut offcount as wrongRaw files
Quality QA
150 questions
90.0 % ± 4.8 pts135 / 1500answers · summarycommand
Quality MMLU
285 questions
91.2 % ± 3.3 pts260 / 285
sparkDash's own screen counts 261 right
1answers · summarycommand
Tool Eval Quick
15 scenarios, tool use
93 / 10013 / 15 passed—tool eval result · tool eval report · tool eval command · summarycommand
Decode, 1 request at once
first token 85 ms
92.3 tok/s——decode result · summarycommand
Prefill at 4K
first token 1.8 s
2609.5 tok/s——prefill result · summarycommand
Prefill at 8K
first token 3.4 s
2578.4 tok/s——prefill result · summarycommand
Prefill at 16K
first token 6.8 s
2506.3 tok/s——prefill result · summarycommand
Prefill at 32K
first token 14.0 s
2380.8 tok/s——prefill result · summarycommand

Seed 1234 applies to the two quality tests; decode, prefill and tool eval send no seed. The benchmark client ran on a separate machine that is never part of the measured group. Measured 2026-10-24. Version 2.50.0, commit 21a3511.

QA. Quality QA, 150 items, seed 1234, temperature 0, thinking off, 4 requests at once (Mia's default). An answer cut off at the token limit counts as wrong. ± is the 95 % margin (Wilson).

MMLU. Quality MMLU, 285 items (5 for each of 57 subjects, 4 answers), seed 1234, temperature 0, thinking off. An answer cut off at the token limit counts as wrong. ± is the 95 % margin (Wilson).

Decode. Decode bench, 1 request at once, 400 tokens, prompt type structured, temperature 0, thinking off. No seed is sent.

Prefill. Prefill bench at 4K, 8K, 16K and 32K tokens. sparkDash skips a size that does not fit into the context. No seed is sent.

Tool Eval Quick. Tool Eval Quick: tool-eval-bench (SeraphimSerapis, commit c61319b), 15 core scenarios (--short), --no-think, --timeout 120. Score 0 to 100. No seed is sent.

Note from the run: sparkDash 2.50.0 (@21a3511) on a client machine (never in the measured group), Quality: seed 1234, temperature 0, thinking off, a truncated answer counts as wrong; decode, prefill and tool eval send no seed; own row, never mixed with quality-v2. sparkDash runs its own tests (its own QA and MMLU questions at temperature 0, thinking off, a cut-off answer counts as wrong; none of the QA answers and 1 of the 285 MMLU answers were cut off), so its decode and prefill values are not comparable with Speed v2 above: its decode test uses a structured prompt, Speed v2 a code and a prose prompt. The sparkDash client ran on another machine and was never part of the measured group.

Exact commands we measured withfor reproducing↓

You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.

sparkDash (run sparkdash-r7)
python3 tools/quality2/sparkdash_client.py tools/quality2/cards/nemotron35-super-vl-nvfp4-tensorfold-1x-2410.json <box> --client <client machine> --job nemotron-2410 --out $RUN
Tool Eval Quick, as sparkDash starts it
tool-eval-bench --base-url http://127.0.0.1:<port> --model nemotron-3.5-super-vl --short --no-think --timeout 120 --json-file $BENCH/sparkdash-client/runs/nemotron-2410-sparkdash-r7/tooleval/result.json --no-live