Summary
Ran Madreag's release/cuda-optimized branch (fork of this repo) on an NVIDIA DGX Spark (GB10, SM 12.1, 128GB unified LPDDR5X memory). I believe these are the first SM 121 results for turbo3/turbo4.
Key finding: Both turbo3 and turbo4 are consistently slower than f16 on this hardware, with degradation increasing at deeper context. Up to -23.6% at 32K context for token generation.
This appears to be a unified memory architecture effect - the GB10's 128GB pool eliminates the VRAM pressure that makes KV cache quantization beneficial on discrete GPUs.
Hardware
| Spec |
Value |
| GPU |
NVIDIA GB10 (Blackwell) |
| Compute Capability |
SM 12.1 |
| Memory |
124,610 MiB unified (LPDDR5X, ~273 GB/s) |
| CUDA |
13.0, Driver 580.95.05 |
| OS |
Ubuntu 24.04 aarch64 (ARM Grace) |
Build
git clone -b release/cuda-optimized https://github.com/Madreag/turbo3-cuda.git
cd turbo3-cuda
cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=121
cmake --build build -j$(nproc)
Commit: 1766c9133 (build 8793). Compiled clean with no issues on SM 121.
Model
Nemotron-3-Nano-30B-A3B-UD-Q4_K_XL.gguf (21.26 GiB, 31.58B params MoE)
Config: -ngl 99 -fa 1 -t 20 -r 3
Results: Token Generation (tg32)
| Depth |
f16 |
turbo4 |
turbo3 |
turbo4 vs f16 |
turbo3 vs f16 |
| 0 |
45.21 |
44.06 |
43.66 |
-2.5% |
-3.4% |
| 4096 |
43.29 |
41.58 |
41.68 |
-3.9% |
-3.7% |
| 8192 |
43.37 |
39.49 |
40.60 |
-8.9% |
-6.4% |
| 16384 |
43.29 |
36.21 |
36.54 |
-16.4% |
-15.6% |
| 32768 |
41.61 |
31.81 |
32.09 |
-23.6% |
-22.9% |
Results: Prompt Processing (pp2048)
| Depth |
f16 |
turbo4 |
turbo3 |
turbo4 vs f16 |
turbo3 vs f16 |
| 0 |
809.55 |
805.17 |
805.06 |
-0.5% |
-0.6% |
| 4096 |
794.71 |
788.86 |
788.90 |
-0.7% |
-0.7% |
| 8192 |
780.74 |
776.05 |
776.85 |
-0.6% |
-0.5% |
| 16384 |
763.60 |
758.19 |
757.55 |
-0.7% |
-0.8% |
| 32768 |
718.57 |
711.26 |
712.34 |
-1.0% |
-0.9% |
Analysis
The pattern is clear: dequantization overhead dominates on unified memory. The GB10 has abundant memory (~125GB available) so there's no bandwidth payoff from smaller KV cache entries. Meanwhile the ~273 GB/s LPDDR5X bandwidth is ~6x lower than GDDR7, making the compute-to-bandwidth ratio unfavorable for quantized approaches.
This is consistent with prior findings showing standard q4_0 KV cache also degrades on GB10 unified memory (92.5% throughput collapse at 64K context, and q4_0 actually using more memory than f16).
Suggestion
Would it be useful to add a "Unified Memory / DGX Spark" note to documentation? These results suggest turbo types don't benefit this architecture class. Happy to contribute a PR with the data.
Appreciate the great work on TurboQuant - the kernels compiled and ran perfectly on SM 121, the performance characteristics just don't transfer to unified memory.
Summary
Ran Madreag's
release/cuda-optimizedbranch (fork of this repo) on an NVIDIA DGX Spark (GB10, SM 12.1, 128GB unified LPDDR5X memory). I believe these are the first SM 121 results for turbo3/turbo4.Key finding: Both turbo3 and turbo4 are consistently slower than f16 on this hardware, with degradation increasing at deeper context. Up to -23.6% at 32K context for token generation.
This appears to be a unified memory architecture effect - the GB10's 128GB pool eliminates the VRAM pressure that makes KV cache quantization beneficial on discrete GPUs.
Hardware
Build
Commit:
1766c9133(build 8793). Compiled clean with no issues on SM 121.Model
Nemotron-3-Nano-30B-A3B-UD-Q4_K_XL.gguf (21.26 GiB, 31.58B params MoE)
Config:
-ngl 99 -fa 1 -t 20 -r 3Results: Token Generation (tg32)
Results: Prompt Processing (pp2048)
Analysis
The pattern is clear: dequantization overhead dominates on unified memory. The GB10 has abundant memory (~125GB available) so there's no bandwidth payoff from smaller KV cache entries. Meanwhile the ~273 GB/s LPDDR5X bandwidth is ~6x lower than GDDR7, making the compute-to-bandwidth ratio unfavorable for quantized approaches.
This is consistent with prior findings showing standard q4_0 KV cache also degrades on GB10 unified memory (92.5% throughput collapse at 64K context, and q4_0 actually using more memory than f16).
Suggestion
Would it be useful to add a "Unified Memory / DGX Spark" note to documentation? These results suggest turbo types don't benefit this architecture class. Happy to contribute a PR with the data.
Appreciate the great work on TurboQuant - the kernels compiled and ran perfectly on SM 121, the performance characteristics just don't transfer to unified memory.