DGX Spark/Guides/Memory bandwidth measured
Performance · November 2026

DGX Spark memory bandwidth measured: how close real tests get to 273 GB/s

By Samuel Seidel · Published November 7, 2026 · Sources checked November 7, 2026

Measured GPU-side bandwidth on a DGX Spark is 200 to 247 GB/s, or 73 to 90% of NVIDIA's 273 GB/s, depending on the test: clpeak's global-memory read measured 234 to 247 GB/s and a STREAM triad 200 to 213 GB/s on four makers' GB10 units in June 2026. Single-user decode on dense models turns 73 to 87% of 273 GB/s into tokens in llama.cpp and vLLM, by my calculation, which is the same share an Apple M5 Max reaches and more than an RTX 5090 gets on the same 7B test. One CPU core sees only 38 GB/s.

What was measuredTool, settingsResultShare of 273 GB/sSourceDate
Specification16 channels LPDDR5X-8533, 256-bit273 GB/s100%NVIDIA docsread 2026-11-07
GPU global-memory read, ASUS GX10clpeak, float4, OpenCL / Vulkan / CUDA, driver 580.159.03246.8 / 242.3 / 244.5 GB/s89 to 90%NVIDIA forum2026-06-25
Same, Ubuntu 26.04 and driver 610.43.02clpeak, float4246.1 / 242.8 / 244.4 GB/s89 to 90%NVIDIA forum2026-06-25
GPU STREAM triad, five unitsnvfp4bench --bandwidth, CUDA 13200 to 213 GB/s (FE 207, HP ZGX Nano 207, GX10 205 and 200, Lenovo PGX 213)73 to 78%NVIDIA forum2026-06-17
GPU device-memory copyPyTorch copy test, driver 580.178.04216 to 218 GB/s79 to 80%NVIDIA forum2026-10-20
GPU write / verify-read over 92 GBmemtest_vulkan 0.6.0, DGX OS vs Ubuntu 26.04177 / 193 GB/s, then 178 / 215 GB/s65 to 79%NVIDIA forum2026-06-17
GPU background load during CPU testsChips and Cheese microbenchmarks231 GB/s85%Chips and Cheese2025-12-31
GPU read / write, cache-bypassing loadsuma_bw 2.0.0165.7 / 115.9 GB/s61% (read)NVIDIA forum2026-04-26
One CPU core from DRAMChips and Cheese microbenchmarks38 GB/s (X925), 26 GB/s (A725); one cluster over 100 GB/s14% (one X925)Chips and Cheese2025-12-31
CPU single-thread copy, Dell Pro Max GB10tinymembench 0.4.1031.9 GB/s memcpy, 86.9 GB/s memset12% (memcpy)Jeff Geerling2025-11-21
Copies between CPU and GPU viewsclpeak, Vulkan host-to-device / CUDA pinned122.7 / 58.9 GB/sn/aNVIDIA forum2026-06-25

Shares of 273 GB/s are my arithmetic. The uma_bw author's first public run reported impossible figures (millions of GB/s) before a fix, so I treat its 165.7 GB/s as low-confidence. NVIDIA's documentation lists 4,266 MHz and LPDDR5X-8533; 8,533 million transfers per second times 32 bytes is 273.1 GB/s.

What does NVIDIA's 273 GB/s mean?

It is the theoretical peak of the memory bus that the CPU and GPU share, and no published test reaches it. NVIDIA's hardware documentation lists "16 channels (256 bit) LPDDR5X 8533". Chips and Cheese notes that NVIDIA's Hot Chips slides allow up to 9,400 MT/s while dmidecode on a shipping unit reports 8,533, so the shipping figure is the lower one. The DGX Spark specs page explains what the shared pool means for VRAM; this page is about how much of the 273 GB/s you actually get.

The 64 GB OEM configuration carries the same 273 GB/s in NVIDIA's table, per the 64 GB vs 128 GB comparison. Nobody has published a bandwidth test of a 64 GB unit that I could find.

Why do STREAM, clpeak and PyTorch disagree?

They move different mixes of reads and writes, and the GB10 is fastest when it only reads. clpeak's global-memory test is read-dominated and lands at 242 to 247 GB/s. A STREAM triad computes a = b + s x c, two reads and one write per element, and lands at 200 to 213 GB/s. A device copy is one read and one write, 216 to 218 GB/s. memtest_vulkan shows the same split inside one run: writes at about 177 GB/s, the verifying reads at 193 to 215 GB/s.

My reading of this: decode reads weights and the KV cache and writes almost nothing, so the read-heavy clpeak figure is the better ceiling for tokens per second, and the triad figure is the better one for training steps and data processing that write as much as they read. The five triad results also bound unit-to-unit spread: 200 to 213 GB/s across a Founders Edition, an HP ZGX Nano, a Lenovo PGX and an ASUS GX10 on two drivers. That is 6%, small next to the gap between test types. Sustained behaviour by maker is the subject of the planned GB10 sustained performance by OEM guide.

What share of 273 GB/s does llama.cpp and vLLM decode reach?

Between 73% and 87% on dense models, by my calculation, which works out to about 200 to 240 GB/s of useful weight reads. Each generated token reads every weight once, so implied bandwidth is decode tok/s times the bytes of weights read per token. Dense models make this clean; mixture-of-experts models do not, because routing overhead and partly-read expert tensors blur the byte count.

Model and formatEngineGB read per tokenDecode tok/sImplied GB/sShare of 273SourceDate
Qwen2.5-Coder-7B, Q8_0llama.cpp build 7941, tg328.1029.4323887%llama.cpp2026-02-05
Magistral Small 24B, BF16vLLM 0.20.0about 48about 4.8523385%NVIDIA forum2026-10-20
Llama 3.3 70B, AWQ 4-bitvLLM 0.27.1about 376.022281%GPUwerk-measured2026-09-02
Llama 2 7B, Q4_0llama.cpp CUDA, commit 5acd455, tg1283.8357.2121980%CUDA scoreboardread 2026-11-07
DeepSeek-R1-Distill-Qwen-14B, Q4_K_Mllama.cpp build 7129, tg1288.9923.9221579%Jeff Geerling2025-11-22
Qwen3-32B (dense), Q4_K_Mllama.cpp build 7129, tg12819.7610.4620776%Jeff Geerling2025-11-22
Llama 3.3 70B, Q4_K_Mllama.cpp build 7129, tg12842.514.7220173%Jeff Geerling2025-11-22
Llama 3.1 8B, FP8SGLangabout 8.020.516560%LMSYS2025-10-13

GB per token is the file size reported by llama-bench converted from GiB (Llama 2 7B: the 3,825,807,040-byte file on Hugging Face), or parameters times bytes per weight for the vLLM and SGLang rows; the 70B AWQ figure is the one the benchmarks page uses. The embedding table is read one row per token, so these slightly overstate bytes read. Jeff Geerling's file is named Qwen3-30B-A3B, but llama-bench reports a dense qwen3 32B with 32.76B parameters, so I list it as Qwen3-32B.

The spread has a pattern. Simple 8-bit and 16-bit kernels (Q8_0, BF16 GEMV) reach 85 to 87%, the K-quants 73 to 79%, and an early SGLang FP8 run from launch month 60%. My inference is that dequantization work per byte, not memory, accounts for most of the gap on the K-quants. For gpt-oss-120b the benchmarks page's decode arithmetic uses about 3 GB per token; 58.72 tok/s on llama.cpp build 7941 makes that 176 GB/s, a lower share that fits the routing overhead of a mixture-of-experts model.

How does it compare with Strix Halo, Apple M5 and the RTX 5090?

Measured the same way, the Spark's memory system is as efficient as any of them; it is just much narrower than a discrete GPU. llama.cpp keeps public scoreboards for CUDA, Vulkan and Apple Silicon that all run one file, Llama 2 7B at Q4_0, with llama-bench's tg128 test. That gives the implied bandwidth below.

MachineSpec bandwidthBackendtg128 tok/sImplied GB/sShare of specSource
DGX Spark (GB10)273 GB/sCUDA, no FA57.2121980%CUDA scoreboard
DGX Spark (GB10)273 GB/sVulkan, FA, coopmat260.3923185%Vulkan scoreboard
AMD Ryzen AI Max+ 300 (Strix Halo)256 GB/sVulkan, no FA51.8119877%Vulkan scoreboard
Apple M5 Pro, 20-core GPU307 GB/sMetal66.3325483%Apple scoreboard
Apple M5 Max, 40-core GPU614 GB/sMetal119.9245975%Apple scoreboard
Apple M5 Ultra, 80-core GPU1,228 GB/sMetal179.1068556%Apple scoreboard
RTX 50901,792 GB/sCUDA, no FA290.021,11062%CUDA scoreboard
RTX PRO 6000 Blackwell1,792 GB/sCUDA, no FA274.201,04959%CUDA scoreboard

Implied GB/s is tg128 times the 3.83 GB file, my arithmetic. Spec bandwidth: Apple's from the scoreboard's own table, Strix Halo's from llm-tracker.info, the RTX 5090's from NVIDIA's comparison page and the RTX PRO 6000's from NVIDIA's product page. Scoreboards read 7 November 2026; each row names its llama.cpp commit on the scoreboard.

The large chips convert a smaller share because a 7B model is too small for them, in my reading. At 290 tok/s each token takes 3.4 ms on an RTX 5090, so fixed per-token costs such as kernel launches and sampling weigh more than they do at 17 ms per token on the Spark. The M5 Ultra also splits work across two dies. A microbenchmark points the same way for Strix Halo: rocm_bandwidth_test measured 212.4 GB/s inside the GPU, 83% of 256 (llm-tracker.info), against 89 to 90% for the Spark's clpeak read. Full head-to-heads are on DGX Spark vs Strix Halo and DGX Spark vs RTX 5090.

Does the CPU get the same bandwidth?

No. The 256-bit bus is there for the GPU, and the Arm cores reach a fraction of it. Chips and Cheese measured 38 GB/s from DRAM for one Cortex-X925 core and 26 GB/s for one Cortex-A725, with one cluster of five plus five cores pulling over 100 GB/s. Under a 231 GB/s GPU load, CPU memory latency went beyond 351 ns, against 113 ns idle. On a single-threaded copy with one tool across machines, the GB10 is the slowest of five:

Machinetinymembench standard memcpystandard memsetSourceDate
Dell Pro Max GB1031.9 GB/s86.9 GB/ssbc-reviews #922025-11-21
Framework Desktop, Ryzen AI Max+ 39540.1 GB/s87.5 GB/ssbc-reviews #802025-08-07
Core Ultra 7 265K, DDR5-600037.1 GB/s80.7 GB/ssbc-reviews #932025-11-25
Mac mini, M445.0 GB/s69.8 GB/ssbc-reviews #572024-11-11
Mac Studio, M3 Ultra68.9 GB/s58.3 GB/ssbc-reviews #952025-12-08

All runs by Jeff Geerling with tinymembench, single thread. Multi-threaded CPU bandwidth on GB10 has not been published as one number; Chips and Cheese gives per-core and per-cluster figures only.

Two practical consequences. CPU-side inference on a Spark gets nowhere near GPU decode speed, and offloading layers to the CPU buys no capacity because there is no separate VRAM to overflow; the llama.cpp CPU offload guide is for discrete GPUs. And CPU-heavy preprocessing on the same box competes with the GPU for one bus. Core speeds are covered in the planned GB10 CPU performance guide. Copies between the CPU and GPU views of the same memory are slower again: 58.9 GB/s pinned on CUDA and 122.7 GB/s on Vulkan in clpeak.

Do drivers, OS updates or firmware change it?

Not measurably in the tests published so far, with one exception. clpeak's three global-memory results moved by under 0.5% between Ubuntu 24.04 with driver 580.159.03 and Ubuntu 26.04 with driver 610.43.02 on the same GX10. The GX10's triad went from 205 to 200 GB/s across the same driver change. memtest_vulkan's verify read rose from 193 to 215 GB/s, an 11% change, but only on Vulkan.

The exception is a unit stuck in a low-power state, which forum posters report clears only with a full power cycle. One owner saw clocks fall to about 513 MHz under load and everything run about three times slower (NVIDIA forum, February 2026); healthy units run near 2.6 GHz in the nvfp4bench thread. If your tg128 on the Llama 2 7B file is far under 57 tok/s, check that before blaming software.

What number should you plan with?

Use 220 GB/s for single-stream estimates on dense models: tok/s is about 220 divided by gigabytes read per token. Llama 3.3 70B at about 37 GB gives 5.9 tok/s by that rule, and GPUwerk measured 6.0. A mixture-of-experts model lands lower than the rule: Qwen3-Coder-30B-A3B's roughly 1.7 GB of active weights predicts 129 tok/s, and it measured 80.9. The memory calculator checks whether the model fits before you do this sum.

# read-heavy and triad bandwidth on an owned Spark (needs nvcc, CUDA 13)
git clone https://github.com/secYOUre/nvfp4bench && cd nvfp4bench
cmake -B build && cmake --build build -j
./build/nvfp4bench --bandwidth

# the scoreboard test, comparable with every row above
llama-bench -m llama-2-7b.Q4_0.gguf -ngl 99 -fa 0,1

My take: the Spark's bandwidth is not underdelivering. It converts its 273 GB/s as well as an M5 Max converts 614, and better than an RTX 5090 converts 1,792 on small models. It is a 273 GB/s machine, so pick models by bytes read per token, which is the whole case for mixture-of-experts models on this box. For many users at once the same bus is shared, as the planned concurrent users guide shows.

FAQ

What is the real memory bandwidth of a DGX Spark?

Between about 200 and 247 GB/s on the GPU side, against NVIDIA's 273 GB/s. clpeak's global-memory test measured 234 to 247 GB/s on an ASUS GX10 in June 2026, and a STREAM triad in nvfp4bench measured 200 to 213 GB/s on Founders Edition, HP, ASUS and Lenovo units. Read-heavy tests land near 245 GB/s, mixed read-write tests near 205 GB/s.

Why is the DGX Spark only 273 GB/s?

Because it uses 16 channels of LPDDR5X-8533 on a 256-bit bus, per NVIDIA's hardware documentation: 8,533 million transfers per second times 32 bytes is 273 GB/s. That memory is shared by the CPU and GPU. An RTX 5090 has 1,792 GB/s of GDDR7 but only 32 GB of it.

How much bandwidth does the DGX Spark CPU get?

Much less than the GPU. Chips and Cheese measured 38 GB/s from DRAM for one Cortex-X925 core, 26 GB/s for one Cortex-A725 core and over 100 GB/s for one five-plus-five-core cluster (December 2025). Jeff Geerling's tinymembench run on a Dell GB10 measured 31.9 GB/s single-threaded memcpy.

Is the DGX Spark faster than Strix Halo in memory bandwidth?

Slightly, on spec and in tests. NVIDIA lists 273 GB/s and AMD's Strix Halo has 256 GB/s. On llama.cpp's shared Llama 2 7B Q4_0 test the Spark generates 57.2 tok/s on CUDA and 60.4 on Vulkan, against 51.8 for the Ryzen AI Max+ 300 series on Vulkan, which is about 219 to 231 GB/s against 198 GB/s by my calculation.

How much bandwidth should I assume when estimating DGX Spark tok/s?

About 220 GB/s. Dense models in llama.cpp and vLLM turn 73 to 87% of 273 GB/s into decode, by my calculation from published runs. Divide 220 by the gigabytes read per token: a 37 GB 4-bit 70B model gives about 5.9 tok/s, and GPUwerk measured 6.0 tok/s for Llama 3.3 70B AWQ on vLLM 0.27.1.

Sources

Every figure above is attributed to its source in the sentence or table where it appears. Pages were read on 7 November 2026 unless a date says otherwise.

First top-up: pay $20, get $30 in credit

Check the bandwidth of the box you would use.

Rent a Spark at $0.79 per hour, billed per minute, build llama-bench in a few minutes and read your own tg128 against the figures here.

A dedicated DGX Spark in the EU, $0.79/hour, billed per minute. $30 of credit is about 37 hours of compute.

Create account See the full DGX Spark specs