{
  "id": "A17",
  "path": "/guides/minimax-m3-dual-spark-measured-lane/",
  "title": "MiniMax-M3 on Two Sparks: The Measured W4A16 Lane",
  "summary": "Separate a July lane-A reproduction from proposed speed/context recipes, retaining request timing, startup memory brackets and a negative NCCL result.",
  "answer": "Only lane A is reproduced by this reporter: W4A16 GPTQ with EAGLE3 and NVFP4 KV on two Sparks. Its four short workload observations use whole request wall time. Lanes B and C remain another author’s references under test, and the source supplies no quality score or measured peak RAM.",
  "published_on": "2026-10-18",
  "modified_on": "2026-10-18",
  "source_checked_on": "2026-10-18",
  "sources": [
    {
      "publisher": "tonyd2wild",
      "repository": "tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s",
      "platform": "github",
      "revision": "a8101fa423cac8140016e45110a2ccc8a0a72162",
      "document_path": "README.md",
      "pinned_url": "https://github.com/tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s/blob/a8101fa423cac8140016e45110a2ccc8a0a72162/README.md",
      "document_sha256": "98f2ec691a993fb8f143ca6f31d19ad9c2090de979e577b8a4dfbc4c8039a6b2",
      "last_commit_at": "2026-07-13T01:19:48Z",
      "url": "https://github.com/tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s",
      "report_url": "https://github.com/tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s/blob/a8101fa423cac8140016e45110a2ccc8a0a72162/README.md",
      "checked_on": "2026-10-18",
      "metadata_status": "checked",
      "record_id": "minimax-m3-tp2-lane-a"
    }
  ],
  "supplemental_sources": [
    {
      "document_id": "minimax-tp2-extra0",
      "parent_record_id": "minimax-m3-tp2-lane-a",
      "publisher": "tonyd2wild",
      "repository": "tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s",
      "revision": "a8101fa423cac8140016e45110a2ccc8a0a72162",
      "document_path": "DEFAULT-CONFIG.md",
      "pinned_url": "https://github.com/tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s/blob/a8101fa423cac8140016e45110a2ccc8a0a72162/DEFAULT-CONFIG.md",
      "document_sha256": "04d26375babfc741c02dac6d1d8c0f0004152284f4843c2ca1efe997d2282287",
      "last_commit_at": "2026-07-13T01:19:48Z",
      "checked_on": "2026-10-18",
      "public_URL_is_immutable": true,
      "revision_kind": "Git document revision; not necessarily the executed runtime or weights"
    },
    {
      "document_id": "minimax-tp2-extra1",
      "parent_record_id": "minimax-m3-tp2-lane-a",
      "publisher": "tonyd2wild",
      "repository": "tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s",
      "revision": "a8101fa423cac8140016e45110a2ccc8a0a72162",
      "document_path": "benchmarks/RESULTS.md",
      "pinned_url": "https://github.com/tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s/blob/a8101fa423cac8140016e45110a2ccc8a0a72162/benchmarks/RESULTS.md",
      "document_sha256": "9f3d73849567604e7dc04c19900c1e26343fb1193efb7b5df35fa2ade9838cad",
      "last_commit_at": "2026-07-13T01:19:48Z",
      "checked_on": "2026-10-18",
      "public_URL_is_immutable": true,
      "revision_kind": "Git document revision; not necessarily the executed runtime or weights"
    }
  ],
  "facts": [],
  "reported_results": [
    {
      "label": "JSON thinking False",
      "metric": "request_output_rate",
      "value": 36.6,
      "unit": "tokens/s",
      "statistic": "one reported observation; no dispersion",
      "uncertainty": null,
      "conditions": {
        "model": "MiniMax-M3",
        "model_artifact": "Sebesky/MiniMax-M3-W4A16-GPTQ",
        "model_revision": null,
        "runtime_execution_revision": null,
        "runtime_source_prefix": "979b56a66c96",
        "executed_image_digest": null,
        "image_tag": "vllm-node-minimax-m3-b12x",
        "engine": "vLLM + b12x",
        "system": "two DGX Spark GB10, TP2 over direct 200G RoCE",
        "node_count": 2,
        "parallelism": "TP2",
        "weight_precision": "W4A16 GPTQ",
        "kv_dtype": "b12x NVFP4",
        "drafter": "Sebesky/MiniMax-M3-EAGLE3-RTN-INT4",
        "drafter_revision": null,
        "draft_tokens": 3,
        "context_limit_tokens": 196608,
        "KV_pool_tokens": 208128,
        "configured_max_requests": 1,
        "concurrency": 1,
        "input_tokens": null,
        "output_tokens": 256,
        "actual_output_tokens": null,
        "temperature": 0,
        "top_p": null,
        "cache_state": "warm engine; first JIT request excluded",
        "repetitions": null,
        "experiment_date": "2026-07-05",
        "GMU": 0.929,
        "quality_score": null,
        "peak_runtime_RAM": null,
        "metric_denominator": "completion_tokens / whole request wall including prefill",
        "workload": "JSON",
        "thinking": false
      },
      "evidence_state": "source_reported",
      "site_reproduced": false,
      "source_document_id": "minimax-tp2-extra1",
      "source_document_sha256": "9f3d73849567604e7dc04c19900c1e26343fb1193efb7b5df35fa2ade9838cad",
      "source_line": 38,
      "evidence_url": "https://github.com/tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s/blob/a8101fa423cac8140016e45110a2ccc8a0a72162/benchmarks/RESULTS.md#L38",
      "source_record_id": "minimax-m3-tp2-lane-a"
    },
    {
      "label": "JSON thinking adaptive",
      "metric": "request_output_rate",
      "value": 35.4,
      "unit": "tokens/s",
      "statistic": "one reported observation; no dispersion",
      "uncertainty": null,
      "conditions": {
        "model": "MiniMax-M3",
        "model_artifact": "Sebesky/MiniMax-M3-W4A16-GPTQ",
        "model_revision": null,
        "runtime_execution_revision": null,
        "runtime_source_prefix": "979b56a66c96",
        "executed_image_digest": null,
        "image_tag": "vllm-node-minimax-m3-b12x",
        "engine": "vLLM + b12x",
        "system": "two DGX Spark GB10, TP2 over direct 200G RoCE",
        "node_count": 2,
        "parallelism": "TP2",
        "weight_precision": "W4A16 GPTQ",
        "kv_dtype": "b12x NVFP4",
        "drafter": "Sebesky/MiniMax-M3-EAGLE3-RTN-INT4",
        "drafter_revision": null,
        "draft_tokens": 3,
        "context_limit_tokens": 196608,
        "KV_pool_tokens": 208128,
        "configured_max_requests": 1,
        "concurrency": 1,
        "input_tokens": null,
        "output_tokens": 256,
        "actual_output_tokens": null,
        "temperature": 0,
        "top_p": null,
        "cache_state": "warm engine; first JIT request excluded",
        "repetitions": null,
        "experiment_date": "2026-07-05",
        "GMU": 0.929,
        "quality_score": null,
        "peak_runtime_RAM": null,
        "metric_denominator": "completion_tokens / whole request wall including prefill",
        "workload": "JSON",
        "thinking": "adaptive"
      },
      "evidence_state": "source_reported",
      "site_reproduced": false,
      "source_document_id": "minimax-tp2-extra1",
      "source_document_sha256": "9f3d73849567604e7dc04c19900c1e26343fb1193efb7b5df35fa2ade9838cad",
      "source_line": 38,
      "evidence_url": "https://github.com/tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s/blob/a8101fa423cac8140016e45110a2ccc8a0a72162/benchmarks/RESULTS.md#L38",
      "source_record_id": "minimax-m3-tp2-lane-a"
    },
    {
      "label": "code thinking False",
      "metric": "request_output_rate",
      "value": 31.8,
      "unit": "tokens/s",
      "statistic": "one reported observation; no dispersion",
      "uncertainty": null,
      "conditions": {
        "model": "MiniMax-M3",
        "model_artifact": "Sebesky/MiniMax-M3-W4A16-GPTQ",
        "model_revision": null,
        "runtime_execution_revision": null,
        "runtime_source_prefix": "979b56a66c96",
        "executed_image_digest": null,
        "image_tag": "vllm-node-minimax-m3-b12x",
        "engine": "vLLM + b12x",
        "system": "two DGX Spark GB10, TP2 over direct 200G RoCE",
        "node_count": 2,
        "parallelism": "TP2",
        "weight_precision": "W4A16 GPTQ",
        "kv_dtype": "b12x NVFP4",
        "drafter": "Sebesky/MiniMax-M3-EAGLE3-RTN-INT4",
        "drafter_revision": null,
        "draft_tokens": 3,
        "context_limit_tokens": 196608,
        "KV_pool_tokens": 208128,
        "configured_max_requests": 1,
        "concurrency": 1,
        "input_tokens": null,
        "output_tokens": 256,
        "actual_output_tokens": null,
        "temperature": 0,
        "top_p": null,
        "cache_state": "warm engine; first JIT request excluded",
        "repetitions": null,
        "experiment_date": "2026-07-05",
        "GMU": 0.929,
        "quality_score": null,
        "peak_runtime_RAM": null,
        "metric_denominator": "completion_tokens / whole request wall including prefill",
        "workload": "code",
        "thinking": false
      },
      "evidence_state": "source_reported",
      "site_reproduced": false,
      "source_document_id": "minimax-tp2-extra1",
      "source_document_sha256": "9f3d73849567604e7dc04c19900c1e26343fb1193efb7b5df35fa2ade9838cad",
      "source_line": 39,
      "evidence_url": "https://github.com/tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s/blob/a8101fa423cac8140016e45110a2ccc8a0a72162/benchmarks/RESULTS.md#L39",
      "source_record_id": "minimax-m3-tp2-lane-a"
    },
    {
      "label": "code thinking adaptive",
      "metric": "request_output_rate",
      "value": 29.2,
      "unit": "tokens/s",
      "statistic": "one reported observation; no dispersion",
      "uncertainty": null,
      "conditions": {
        "model": "MiniMax-M3",
        "model_artifact": "Sebesky/MiniMax-M3-W4A16-GPTQ",
        "model_revision": null,
        "runtime_execution_revision": null,
        "runtime_source_prefix": "979b56a66c96",
        "executed_image_digest": null,
        "image_tag": "vllm-node-minimax-m3-b12x",
        "engine": "vLLM + b12x",
        "system": "two DGX Spark GB10, TP2 over direct 200G RoCE",
        "node_count": 2,
        "parallelism": "TP2",
        "weight_precision": "W4A16 GPTQ",
        "kv_dtype": "b12x NVFP4",
        "drafter": "Sebesky/MiniMax-M3-EAGLE3-RTN-INT4",
        "drafter_revision": null,
        "draft_tokens": 3,
        "context_limit_tokens": 196608,
        "KV_pool_tokens": 208128,
        "configured_max_requests": 1,
        "concurrency": 1,
        "input_tokens": null,
        "output_tokens": 256,
        "actual_output_tokens": null,
        "temperature": 0,
        "top_p": null,
        "cache_state": "warm engine; first JIT request excluded",
        "repetitions": null,
        "experiment_date": "2026-07-05",
        "GMU": 0.929,
        "quality_score": null,
        "peak_runtime_RAM": null,
        "metric_denominator": "completion_tokens / whole request wall including prefill",
        "workload": "code",
        "thinking": "adaptive"
      },
      "evidence_state": "source_reported",
      "site_reproduced": false,
      "source_document_id": "minimax-tp2-extra1",
      "source_document_sha256": "9f3d73849567604e7dc04c19900c1e26343fb1193efb7b5df35fa2ade9838cad",
      "source_line": 39,
      "evidence_url": "https://github.com/tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s/blob/a8101fa423cac8140016e45110a2ccc8a0a72162/benchmarks/RESULTS.md#L39",
      "source_record_id": "minimax-m3-tp2-lane-a"
    },
    {
      "label": "Lane A KV pool",
      "metric": "KV_pool",
      "value": 208128,
      "unit": "tokens",
      "statistic": "one reported observation; no dispersion",
      "uncertainty": null,
      "conditions": {
        "model": "MiniMax-M3",
        "model_artifact": "Sebesky/MiniMax-M3-W4A16-GPTQ",
        "model_revision": null,
        "runtime_execution_revision": null,
        "runtime_source_prefix": "979b56a66c96",
        "executed_image_digest": null,
        "image_tag": "vllm-node-minimax-m3-b12x",
        "engine": "vLLM + b12x",
        "system": "two DGX Spark GB10, TP2 over direct 200G RoCE",
        "node_count": 2,
        "parallelism": "TP2",
        "weight_precision": "W4A16 GPTQ",
        "kv_dtype": "b12x NVFP4",
        "drafter": "Sebesky/MiniMax-M3-EAGLE3-RTN-INT4",
        "drafter_revision": null,
        "draft_tokens": 3,
        "context_limit_tokens": 196608,
        "KV_pool_tokens": 208128,
        "configured_max_requests": 1,
        "concurrency": 1,
        "input_tokens": null,
        "output_tokens": 256,
        "actual_output_tokens": null,
        "temperature": 0,
        "top_p": null,
        "cache_state": "warm engine; first JIT request excluded",
        "repetitions": null,
        "experiment_date": "2026-07-05",
        "GMU": 0.929,
        "quality_score": null,
        "peak_runtime_RAM": null,
        "metric_denominator": "completion_tokens / whole request wall including prefill",
        "thinking": null
      },
      "evidence_state": "source_reported",
      "site_reproduced": false,
      "source_document_id": "minimax-tp2-extra1",
      "source_document_sha256": "9f3d73849567604e7dc04c19900c1e26343fb1193efb7b5df35fa2ade9838cad",
      "source_line": 31,
      "evidence_url": "https://github.com/tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s/blob/a8101fa423cac8140016e45110a2ccc8a0a72162/benchmarks/RESULTS.md#L31",
      "source_record_id": "minimax-m3-tp2-lane-a"
    }
  ],
  "conditions": {
    "independent_site_runs": 0,
    "measurement_date": "2026-07-05",
    "only_lane_A_reproduced_by_this_reporter": true,
    "concurrency_measured_above_one": false
  },
  "generation": {
    "text_draft": "local Spark Qwen, then Codex factual review and rewrite; actual receipt in editorial-batch7 report",
    "review": "Run AI Here with Codex",
    "image": "deterministic matplotlib data figures and evidence maps",
    "local_first": true
  },
  "image": {
    "url": "/assets/batch7-minimax-hero.webp",
    "alt": "July 5, 2026 measurements / W4A16 GPTQ / EAGLE3 depth 3 / b12x NVFP4 KV.",
    "width": 1600,
    "height": 900,
    "sha256": "e485ab10218d38fa58c47dc2aa854b93c8457761da51dc897ac7ccf9ab834216",
    "caption": "The model family is current; these particular tests retain their July date."
  },
  "case_reports": [
    {
      "id": "minimax-lane-a-startup-bracket",
      "classification": "source_reported_startup_capacity_failure",
      "GMU_failed": 0.93,
      "shortfall_GiB": 0.02,
      "GMU_boots_but_KV_below_requested": 0.925,
      "GMU_selected": 0.929,
      "startup_margin_source_label": "approximately 100 MB",
      "runtime_peak_RAM": null,
      "source_url": "https://github.com/tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s/blob/a8101fa423cac8140016e45110a2ccc8a0a72162/DEFAULT-CONFIG.md"
    }
  ],
  "memory_observations": [
    {
      "kind": "KV_pool_tokens_not_peak_RAM",
      "value": 208128,
      "unit": "tokens",
      "configured_limit_tokens": 196608,
      "whole_model_peak_RAM": null
    }
  ],
  "schema_version": "1.0.0",
  "record_type": "source_backed_explainer",
  "evidence_state": "source_reported",
  "site_reproduced": false,
  "metrics": null,
  "performance_ranking_allowed": false,
  "body_markdown": "# MiniMax-M3 on Two Sparks: The Measured W4A16 Lane\n\n![July 5, 2026 measurements / W4A16 GPTQ / EAGLE3 depth 3 / b12x NVFP4 KV.](/assets/batch7-minimax-hero.webp)\n\n*The model family is current; these particular tests retain their July date.*\n\nMiniMax-M3 has several community deployment recipes, but their evidence should not be collapsed into a single “best” configuration. The [tonyd2wild report](https://github.com/tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s/blob/a8101fa423cac8140016e45110a2ccc8a0a72162/README.md) distinguishes a lane independently reproduced on its own two Sparks from two alternative lanes still under test. This note retains that distinction, the original July measurement date, short-probe timing and a negative transport experiment. It offers a concrete deployment reference without turning unfinished recipes into completed benchmarks.\n\n## Keep the measurement date attached to the model\n\nLane A is verified on July 5, 2026. Reading it today as a MiniMax-family deployment reference does not make its results October measurements. Its hardware is two DGX Sparks with 128 GB unified memory each, connected by direct 200G RoCE and serving through TP2. This is distinct from a three-Spark layer split or an offload configuration on a discrete GPU workstation.\n\nThe target is `Sebesky/MiniMax-M3-W4A16-GPTQ`, with a separate `Sebesky/MiniMax-M3-EAGLE3-RTN-INT4` draft. The report describes the full, unpruned model and a vLLM+b12x path. It names an execution image tag and a short source reference, but does not retain a full executed image digest or full target/draft weight revisions. Those fields remain null. Looking up a current model repository today would not establish which exact files ran in July.\n\nThe source credits a3refaat's upstream recipe and clearly labels where its own reproduction begins. Attribution is important here: a reference number quoted from the upstream author is not an additional independent measurement by the second reporter. The catalog points below are restricted to the reporter's measured lane A.\n\n## The measured lane uses one stream\n\nThe [default-configuration document](https://github.com/tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s/blob/a8101fa423cac8140016e45110a2ccc8a0a72162/DEFAULT-CONFIG.md) selects EAGLE3 depth three, b12x NVFP4 KV, a 196,608-token configured context and a 208,128-token KV pool. All published lane-A speed observations use `max_num_seqs=1`. A configured large context does not mean those short probes contain that many input tokens or test the whole window.\n\nThe [original result document](https://github.com/tonyd2wild/MiniMax-M3-2x-DGX-Spark-36-tok-s/blob/a8101fa423cac8140016e45110a2ccc8a0a72162/benchmarks/RESULTS.md) specifies 256-token probes, temperature zero, one stream and a warm engine. The first request after boot is excluded because b12x compilation warmup can take about a minute. Actual per-probe input counts, completion counts and repeated-run dispersion are not supplied. Although the source table says “decode,” its stated denominator is `completion_tokens / wall`, including request wall time. The article and JSON keep that definition.\n\n| Measured workload | Thinking disabled, tokens/s | Adaptive, tokens/s |\n|---|---:|---:|\n| JSON | 36.6 | 35.4 |\n| Code | 31.8 | 29.2 |\n\nThese four observations are useful for their own prompt classes. They are not a concurrency curve, a full-context curve or a confidence interval. Thinking disabled and adaptive can also produce different work, so the rate difference alone does not establish the same change in complete task time. No general quality score accompanies this experiment.\n\n![MiniMax-M3 request rates for JSON and code with thinking off and adaptive modes.](/assets/batch7-minimax-rates.webp)\n\n*The denominator is whole request wall time, despite the source table calling the values decode speed.*\n\nFor a latency-sensitive application, the next relevant evidence would record actual input and completion lengths, first-token latency, the complete request time and successful output checks under the intended mode. The existing table cannot supply those missing measurements. Keeping them explicit is more useful than filling them from another MiniMax report on a different engine or date.\n\n## The allocation bracket explains a reproducibility trap\n\nThe reporter finds that GMU 0.93 fails a startup free-memory check by 0.02 GiB. Reducing to 0.925 starts the engine but leaves a KV pool below the desired context requirement. The chosen 0.929 reaches the target pool with approximately 100 MB startup margin. The source preserves the bracket because one seemingly reasonable rounded parameter can change whether the recipe starts and whether it has enough configured capacity.\n\nThat margin is measured at startup in the reporter's boot state. It is not a sampled worst-case workload margin and does not show safe headroom for simultaneous long prefills. File-cache state, other resident processes and temporary runtime allocations can differ across systems. The published bracket does not justify a universal GMU recommendation or a guarantee that the same fraction works on every Spark pair.\n\n![GMU brackets are observations from the reporter's own boot state.](/assets/batch7-minimax-capacity.webp)\n\n*The approximately 100 MB startup margin is not a workload safety allowance.*\n\nThe 208,128-token pool is measured/configured KV capacity, in tokens. The 196,608-token ceiling is a per-request setting. They are not memory in bytes, and neither value is whole-model peak unified RAM. The source does not provide a paired peak-memory time series for a long request or multi-user load. Those unknowns remain null rather than being estimated from weight-file size or a nominal machine total.\n\n## A transport change that made this workload slower\n\nThe report tests `NCCL_PROTO=LL` with `NCCL_MAX_NCHANNELS=2`. In the code workload, stock NCCL gives 31.8 tokens/s and the LL/two-channel setting gives 28.8. The JSON workload also declines in the source's observed range. This negative result is retained rather than selecting only the fastest headline.\n\nThe author suggests that a larger MoE's communication pattern may explain why a setting useful on another model loses here. That is a hypothesis, not an isolated mechanism test. The evidence supports a narrower conclusion: this exact change did not improve the tested lane-A workloads on this pair. It does not identify a universally best NCCL protocol, prove a model-class law or replace measurements on another interconnect.\n\n![Lane A, stock NCCL versus LL protocol plus two channels.](/assets/batch7-minimax-negative.webp)\n\n*Source hypothesis about model class is interpretation, not a separately isolated mechanism.*\n\n## Why the other two lanes stay references\n\nLane C proposes a different KVarN KV path plus EAGLE3 for speed, and lane B proposes a drafterless context-oriented path. Their numbers in this repository are attributed to the upstream author's own hardware. The second reporter labels both lanes under test and leaves its own result checkboxes incomplete. This article does not publish their quoted speeds as reproduced lane-A data or add them to the selected result points.\n\nThe same restriction applies to proposed concurrency and repetition-penalty experiments. A checklist item is a plan. It cannot be turned into a success case because the surrounding recipe is detailed. Any later measured lane should retain its own boot evidence, KV pool, exact runtime identity, prompts, output limits, timing definitions and validation outcomes before joining this series.\n\nFor deployment selection, lane A is the supported starting reference in this source. Use its original reproduction inventory to understand the required kernel path, two-node transport and draft model, then account for missing identities and workload telemetry. The useful result is a bounded, reproducible question: whether the same lane satisfies a specified application's response and memory requirements. The published four short rates alone cannot answer the broader questions of maximum concurrency, long-context reliability, peak memory or standardized model quality.\n"
}
