Skip to content

GB10 / SM 121 (DGX Spark) Benchmark Results - TurboQuant slower than f16 on unified memory #44

Description

@dentity007

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions