# llama.cpp on Spark: Q4_K_M prefill and decode

Original Spark report separating prompt processing from single-batch generation at different context depths.

- Type: Performance report
- Evidence: source_reported; site reproduced: false
- Model family: Multiple
- Model: Qwen3 / Ministral 3
- Original author: DandinPower
- Original project: https://github.com/DandinPower/llama.cpp_bench
- Pinned document: https://github.com/DandinPower/llama.cpp_bench/blob/a1e9514561e9be68982e1905f48808143082013a/dgx_spark/report.md
- Source revision: a1e9514561e9be68982e1905f48808143082013a
- Source commit time (not experiment date): 2025-12-05T13:40:35Z
- Checked: 2026-10-17
- Experiment date: None
- Runtime topics: llama.cpp
- Hardware topics: spark, nvidia
- Reported setup: {"system": "NVIDIA DGX Spark / GB10 / 128 GB LPDDR5x", "node_count": 1, "parallelism": null, "kv_dtype": null, "context_limit_tokens": null, "experiment_date": null}
- Performance figures: attributed selections with per-point conditions; no cross-source ranking

## Conditions

Unknown is null. Recipe options are not measured benchmark settings.

```json
{
  "conditions": {
    "model_revision": null,
    "weight_hash": null,
    "runtime_execution_revision": null,
    "input_tokens": null,
    "output_tokens": null,
    "concurrency": null,
    "cache_state": null,
    "quantization": "Q4_K_M",
    "speculative_decoding": null,
    "temperature": null,
    "top_p": null
  },
  "test_profiles": [
    {
      "label": "Prompt processing",
      "evidence_url": "https://github.com/DandinPower/llama.cpp_bench/blob/a1e9514561e9be68982e1905f48808143082013a/dgx_spark/report.md",
      "conditions": {
        "model_revision": null,
        "weight_hash": null,
        "runtime_execution_revision": null,
        "input_tokens": null,
        "output_tokens": null,
        "concurrency": null,
        "cache_state": null,
        "quantization": "Q4_K_M",
        "speculative_decoding": null,
        "temperature": null,
        "top_p": null,
        "context_depth_tokens": [
          512,
          16384
        ]
      }
    },
    {
      "label": "Generation",
      "evidence_url": "https://github.com/DandinPower/llama.cpp_bench/blob/a1e9514561e9be68982e1905f48808143082013a/dgx_spark/report.md",
      "conditions": {
        "model_revision": null,
        "weight_hash": null,
        "runtime_execution_revision": null,
        "input_tokens": null,
        "output_tokens": null,
        "concurrency": null,
        "cache_state": null,
        "quantization": "Q4_K_M",
        "speculative_decoding": null,
        "temperature": null,
        "top_p": null,
        "batch_size": 1,
        "context_depth_tokens": [
          512,
          2048
        ]
      }
    }
  ],
  "recipe_parameters": null,
  "deployment_options": []
}
```

## Reading notes

- Q4_K_M is the selected weight format.
- Prefill and decode tables describe different context depths.

## Limits

- Exact model and runtime commits are not specified in this report.
- A tested context depth is not the machine’s maximum supported context.

## License declaration

{"declared_spdx": null, "scope": "Repository metadata only; per-file, model, data and conversion terms remain separate."}


## Editorial answer

The report studies Qwen3 and Ministral 3 Q4_K_M artifacts on a single GB10 Spark with 128 GB unified memory. Prompt processing is tabulated at context depths 512 and 16,384; single-batch generation at 512 and 2,048. Context depth is the source table’s label, not a specified generated-output budget or a maximum capacity test.

By Run AI Here editorial · 2026-10-17

AI-assisted source reading and original editorial synthesis; no independent model execution.

## What experiment is being described?

The report studies Qwen3 and Ministral 3 Q4_K_M artifacts on a single GB10 Spark with 128 GB unified memory. Prompt processing is tabulated at context depths 512 and 16,384; single-batch generation at 512 and 2,048. Context depth is the source table’s label, not a specified generated-output budget or a maximum capacity test.

Sources: https://github.com/DandinPower/llama.cpp_bench/blob/a1e9514561e9be68982e1905f48808143082013a/dgx_spark/report.md#L20

## What is a useful concrete comparison?

The selected Qwen3 30B MoE row reports 89.3 decode tokens/s at depth 512 and 83.8 at 2,048, while the 32B dense row reports 10.7 at depth 512. These results illustrate the author’s bandwidth interpretation for this particular pair of Q4_K_M artifacts. They do not establish equal quality or the same outcome for another MoE family.

Sources: https://github.com/DandinPower/llama.cpp_bench/blob/a1e9514561e9be68982e1905f48808143082013a/dgx_spark/report.md#L33

## What prevents a strong reproduction claim?

The report does not identify exact weight hashes, executed runtime commit, output lengths, cache policy or repetitions. Those gaps remain explicit. Without them, a later reader cannot know whether a discrepancy comes from kernels, artifacts or workload. A tested context depth also cannot certify the machine’s maximum context.

Sources: https://github.com/DandinPower/llama.cpp_bench/blob/a1e9514561e9be68982e1905f48808143082013a/dgx_spark/report.md#L18

## How is the source reused?

This article gives a small attributed factual selection with an original explanation. Repository metadata does not declare a license, so the full result table and prose are left with the original author. No independent run is claimed, and prefill and decode remain separate measurement types.

Sources: https://github.com/DandinPower/llama.cpp_bench/blob/a1e9514561e9be68982e1905f48808143082013a/dgx_spark/report.md#L46

## Selected source-reported figures

Each point retains its own configuration, measurement unit and source. No site reproduction or cross-source ranking.

```json
[
  {
    "label": "Qwen3 30B MoE, shallow context",
    "metric": "decode",
    "value": 89.3,
    "unit": "tokens/s",
    "statistic": "reported value",
    "uncertainty": null,
    "conditions": {
      "system": "NVIDIA DGX Spark / GB10 / 128 GB LPDDR5x",
      "node_count": 1,
      "parallelism": null,
      "kv_dtype": null,
      "context_limit_tokens": null,
      "experiment_date": null,
      "runtime": "llama.cpp, executed commit unspecified",
      "quantization": "Q4_K_M",
      "batch_size": 1,
      "input_tokens": null,
      "output_tokens": null,
      "repetitions": null,
      "cache_state": null,
      "model": "Qwen3 30B MoE",
      "context_depth_tokens": 512
    },
    "evidence_state": "source_reported",
    "site_reproduced": false,
    "evidence_url": "https://github.com/DandinPower/llama.cpp_bench/blob/a1e9514561e9be68982e1905f48808143082013a/dgx_spark/report.md#L40",
    "source_document_sha256": "44d415d26c12533d1694fcc7b622f8961ea0a320078177e14c663a5b77028c70"
  },
  {
    "label": "Qwen3 30B MoE, deeper context",
    "metric": "decode",
    "value": 83.8,
    "unit": "tokens/s",
    "statistic": "reported value",
    "uncertainty": null,
    "conditions": {
      "system": "NVIDIA DGX Spark / GB10 / 128 GB LPDDR5x",
      "node_count": 1,
      "parallelism": null,
      "kv_dtype": null,
      "context_limit_tokens": null,
      "experiment_date": null,
      "runtime": "llama.cpp, executed commit unspecified",
      "quantization": "Q4_K_M",
      "batch_size": 1,
      "input_tokens": null,
      "output_tokens": null,
      "repetitions": null,
      "cache_state": null,
      "model": "Qwen3 30B MoE",
      "context_depth_tokens": 2048
    },
    "evidence_state": "source_reported",
    "site_reproduced": false,
    "evidence_url": "https://github.com/DandinPower/llama.cpp_bench/blob/a1e9514561e9be68982e1905f48808143082013a/dgx_spark/report.md#L40",
    "source_document_sha256": "44d415d26c12533d1694fcc7b622f8961ea0a320078177e14c663a5b77028c70"
  },
  {
    "label": "Qwen3 32B dense, shallow context",
    "metric": "decode",
    "value": 10.7,
    "unit": "tokens/s",
    "statistic": "reported value",
    "uncertainty": null,
    "conditions": {
      "system": "NVIDIA DGX Spark / GB10 / 128 GB LPDDR5x",
      "node_count": 1,
      "parallelism": null,
      "kv_dtype": null,
      "context_limit_tokens": null,
      "experiment_date": null,
      "runtime": "llama.cpp, executed commit unspecified",
      "quantization": "Q4_K_M",
      "batch_size": 1,
      "input_tokens": null,
      "output_tokens": null,
      "repetitions": null,
      "cache_state": null,
      "model": "Qwen3 32B dense",
      "context_depth_tokens": 512
    },
    "evidence_state": "source_reported",
    "site_reproduced": false,
    "evidence_url": "https://github.com/DandinPower/llama.cpp_bench/blob/a1e9514561e9be68982e1905f48808143082013a/dgx_spark/report.md#L41",
    "source_document_sha256": "44d415d26c12533d1694fcc7b622f8961ea0a320078177e14c663a5b77028c70"
  }
]
```
