# MiniMax M3 on three DGX Sparks

An original operator repository describing a three-node TP=3 deployment and its benchmark checkpoint. It also retains a four-node baseline, so the two sections must be read as different conditions.

- Type: Performance report
- Evidence: source_reported; site reproduced: false
- Model family: MiniMax
- Model: MiniMax M3 NVFP4 + DSpark
- Original author: ChrisTheCoolHut
- Original project: https://github.com/ChrisTheCoolHut/MiniMax-M3-NVFP4-DSpark-vLLM-3x-DGX-Spark
- Pinned document: https://github.com/ChrisTheCoolHut/MiniMax-M3-NVFP4-DSpark-vLLM-3x-DGX-Spark/tree/1008cf57355f49d5412f45880289516f29761f0b
- Source revision: 1008cf57355f49d5412f45880289516f29761f0b
- Source commit time (not experiment date): 2026-08-05T23:05:16Z
- Checked: 2026-10-17
- Experiment date: 2026-08-05
- Runtime topics: vLLM
- Hardware topics: spark
- Reported setup: {"system": "NVIDIA DGX Spark / GB10", "node_count": 3, "parallelism": "custom native vLLM TP=3", "kv_dtype": "FP8", "context_limit_tokens": 262144, "experiment_date": "2026-08-05"}
- 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
  },
  "test_profiles": [],
  "recipe_parameters": null,
  "deployment_options": []
}
```

## Reading notes

- The three-node path uses custom virtual-TP sharding patches.
- The repository distinguishes target weights, a DSpark drafter and FP8 KV cache.
- Read the dated three-node checkpoint and the actual recipe file together.

## Limits

- Three-node and four-node sections must not be merged.
- The checkpoint compares max_num_seqs=3 and 8; choose the matching experiment rather than treating them as one configuration.
- A declared container digest alone does not prove the TP=3 build matches the documented patch set.

## License declaration

{"declared_spdx": "MIT", "scope": "Repository declaration only; models, containers, datasets and per-file terms remain separate."}


## Editorial answer

The operator pads attention-head layouts to make native tensor parallelism three possible, using a custom target and draft loader. The run uses three GB10 nodes linked in a switchless RoCE triangle, FP8 KV cache and a 262,144-token context ceiling. This is a patched serving stack rather than an ordinary unmodified vLLM launch. The report’s 80.41 GiB per-rank weights and 122-second load are source observations, not a capacity guarantee for another build.

By Run AI Here editorial · 2026-10-17

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

## How does the three-node path work?

The operator pads attention-head layouts to make native tensor parallelism three possible, using a custom target and draft loader. The run uses three GB10 nodes linked in a switchless RoCE triangle, FP8 KV cache and a 262,144-token context ceiling. This is a patched serving stack rather than an ordinary unmodified vLLM launch. The report’s 80.41 GiB per-rank weights and 122-second load are source observations, not a capacity guarantee for another build.

Sources: https://github.com/ChrisTheCoolHut/MiniMax-M3-NVFP4-DSpark-vLLM-3x-DGX-Spark/blob/1008cf57355f49d5412f45880289516f29761f0b/benchmarks/2026-08-05-tp3-dspark.md#L9

## What changes when the sequence cap is raised?

The greedy 80-item GSM8K sweep at eight parallel requests reports 64.63 aggregate tokens/s with max_num_seqs three and 97.28 with eight, while both report 98.8% accuracy. That comparison changes admission behavior. It should not be mixed with the short 128-token llama-benchy runs or interpreted as a 97-token/s single-user decode rate.

Sources: https://github.com/ChrisTheCoolHut/MiniMax-M3-NVFP4-DSpark-vLLM-3x-DGX-Spark/blob/1008cf57355f49d5412f45880289516f29761f0b/benchmarks/2026-08-05-tp3-dspark.md#L102

## Why keep the sampled run separate?

At the publisher’s temperature 1.0 and top_p 0.95, the parallel-eight quality run reports 97.5% accuracy and 86.46 aggregate tokens/s. Greedy and sampled runs answer different questions. The 80-item corpus is a small task-specific check; even a perfect result on that subset does not prove general equivalence of a patched sharding implementation.

Sources: https://github.com/ChrisTheCoolHut/MiniMax-M3-NVFP4-DSpark-vLLM-3x-DGX-Spark/blob/1008cf57355f49d5412f45880289516f29761f0b/benchmarks/2026-08-05-tp3-dspark.md#L131

## What is still unknown?

The record does not establish a full original weight hash or executed runtime commit. The document also compares older four-node data, which belongs to a separate configuration. Preserve the exact custom patch set, container, topology, cache policy and workload before attempting a reproduction. This site has not run the stack.

Sources: https://github.com/ChrisTheCoolHut/MiniMax-M3-NVFP4-DSpark-vLLM-3x-DGX-Spark/blob/1008cf57355f49d5412f45880289516f29761f0b/benchmarks/2026-08-05-tp3-dspark.md#L80

## Selected source-reported figures

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

```json
[
  {
    "label": "Short generation, depth 0, C1",
    "metric": "aggregate_output",
    "value": 23.55,
    "unit": "tokens/s",
    "statistic": "reported value",
    "uncertainty": null,
    "conditions": {
      "system": "NVIDIA DGX Spark / GB10",
      "node_count": 3,
      "parallelism": "custom native vLLM TP=3",
      "kv_dtype": "FP8",
      "context_limit_tokens": 262144,
      "experiment_date": "2026-08-05",
      "model": "nvidia/MiniMax-M3-NVFP4",
      "draft": "nvidia/MiniMax-M3-DSpark",
      "speculative_tokens": 8,
      "runtime": "custom vLLM TP3",
      "prefix_cache": true,
      "harness": "llama-benchy 0.4.0",
      "repetitions": 3,
      "max_num_seqs": 3,
      "output_tokens": 128,
      "retained_depth_tokens": 0,
      "concurrency": 1
    },
    "evidence_state": "source_reported",
    "site_reproduced": false,
    "evidence_url": "https://github.com/ChrisTheCoolHut/MiniMax-M3-NVFP4-DSpark-vLLM-3x-DGX-Spark/blob/1008cf57355f49d5412f45880289516f29761f0b/benchmarks/2026-08-05-tp3-dspark.md#L27",
    "source_document_sha256": "fd06b6a7b2d74ead35c184ae7b31a99b7e43de3516a1dc5d56c1c218853682fc"
  },
  {
    "label": "Generation, depth 100000, C1",
    "metric": "aggregate_output",
    "value": 26.83,
    "unit": "tokens/s",
    "statistic": "reported value",
    "uncertainty": null,
    "conditions": {
      "system": "NVIDIA DGX Spark / GB10",
      "node_count": 3,
      "parallelism": "custom native vLLM TP=3",
      "kv_dtype": "FP8",
      "context_limit_tokens": 262144,
      "experiment_date": "2026-08-05",
      "model": "nvidia/MiniMax-M3-NVFP4",
      "draft": "nvidia/MiniMax-M3-DSpark",
      "speculative_tokens": 8,
      "runtime": "custom vLLM TP3",
      "prefix_cache": true,
      "harness": "llama-benchy 0.4.0",
      "repetitions": 3,
      "max_num_seqs": 3,
      "output_tokens": 128,
      "retained_depth_tokens": 100000,
      "concurrency": 1
    },
    "evidence_state": "source_reported",
    "site_reproduced": false,
    "evidence_url": "https://github.com/ChrisTheCoolHut/MiniMax-M3-NVFP4-DSpark-vLLM-3x-DGX-Spark/blob/1008cf57355f49d5412f45880289516f29761f0b/benchmarks/2026-08-05-tp3-dspark.md#L50",
    "source_document_sha256": "fd06b6a7b2d74ead35c184ae7b31a99b7e43de3516a1dc5d56c1c218853682fc"
  },
  {
    "label": "GSM8K greedy, parallel 8, sequence cap 3",
    "metric": "aggregate_output",
    "value": 64.63,
    "unit": "tokens/s",
    "statistic": "reported value",
    "uncertainty": null,
    "conditions": {
      "system": "NVIDIA DGX Spark / GB10",
      "node_count": 3,
      "parallelism": "custom native vLLM TP=3",
      "kv_dtype": "FP8",
      "context_limit_tokens": 262144,
      "experiment_date": "2026-08-05",
      "model": "nvidia/MiniMax-M3-NVFP4",
      "draft": "nvidia/MiniMax-M3-DSpark",
      "speculative_tokens": 8,
      "runtime": "custom vLLM TP3",
      "prefix_cache": true,
      "harness": "llama-benchy 0.4.0",
      "repetitions": null,
      "max_num_seqs": 3,
      "corpus_items": 80,
      "temperature": 0,
      "concurrency": 8
    },
    "evidence_state": "source_reported",
    "site_reproduced": false,
    "evidence_url": "https://github.com/ChrisTheCoolHut/MiniMax-M3-NVFP4-DSpark-vLLM-3x-DGX-Spark/blob/1008cf57355f49d5412f45880289516f29761f0b/benchmarks/2026-08-05-tp3-dspark.md#L117",
    "source_document_sha256": "fd06b6a7b2d74ead35c184ae7b31a99b7e43de3516a1dc5d56c1c218853682fc"
  },
  {
    "label": "GSM8K greedy, parallel 8, sequence cap 8",
    "metric": "aggregate_output",
    "value": 97.28,
    "unit": "tokens/s",
    "statistic": "reported value",
    "uncertainty": null,
    "conditions": {
      "system": "NVIDIA DGX Spark / GB10",
      "node_count": 3,
      "parallelism": "custom native vLLM TP=3",
      "kv_dtype": "FP8",
      "context_limit_tokens": 262144,
      "experiment_date": "2026-08-05",
      "model": "nvidia/MiniMax-M3-NVFP4",
      "draft": "nvidia/MiniMax-M3-DSpark",
      "speculative_tokens": 8,
      "runtime": "custom vLLM TP3",
      "prefix_cache": true,
      "harness": "llama-benchy 0.4.0",
      "repetitions": null,
      "max_num_seqs": 8,
      "corpus_items": 80,
      "temperature": 0,
      "concurrency": 8
    },
    "evidence_state": "source_reported",
    "site_reproduced": false,
    "evidence_url": "https://github.com/ChrisTheCoolHut/MiniMax-M3-NVFP4-DSpark-vLLM-3x-DGX-Spark/blob/1008cf57355f49d5412f45880289516f29761f0b/benchmarks/2026-08-05-tp3-dspark.md#L125",
    "source_document_sha256": "fd06b6a7b2d74ead35c184ae7b31a99b7e43de3516a1dc5d56c1c218853682fc"
  },
  {
    "label": "GSM8K sampled, parallel 8",
    "metric": "accuracy",
    "value": 97.5,
    "unit": "percent",
    "statistic": "reported value",
    "uncertainty": null,
    "conditions": {
      "system": "NVIDIA DGX Spark / GB10",
      "node_count": 3,
      "parallelism": "custom native vLLM TP=3",
      "kv_dtype": "FP8",
      "context_limit_tokens": 262144,
      "experiment_date": "2026-08-05",
      "model": "nvidia/MiniMax-M3-NVFP4",
      "draft": "nvidia/MiniMax-M3-DSpark",
      "speculative_tokens": 8,
      "runtime": "custom vLLM TP3",
      "prefix_cache": true,
      "harness": "llama-benchy 0.4.0",
      "repetitions": null,
      "max_num_seqs": 8,
      "corpus_items": 80,
      "temperature": 1,
      "top_p": 0.95,
      "concurrency": 8
    },
    "evidence_state": "source_reported",
    "site_reproduced": false,
    "evidence_url": "https://github.com/ChrisTheCoolHut/MiniMax-M3-NVFP4-DSpark-vLLM-3x-DGX-Spark/blob/1008cf57355f49d5412f45880289516f29761f0b/benchmarks/2026-08-05-tp3-dspark.md#L140",
    "source_document_sha256": "fd06b6a7b2d74ead35c184ae7b31a99b7e43de3516a1dc5d56c1c218853682fc"
  }
]
```
