Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -468,9 +468,12 @@ modified analytical adaptations of the indexer layout in `dsv41_sparse.py`.

The measured operator databases and adjacent documentation under
`src/aisimulate_core/systems/profiles/dsv41/` contain AISimulate timings
and geometry adapted from the same serving contracts. Their README identifies
the immutable measurement archive and the source-audited indexer metadata
correction; restoring the database does not change its measured timings.
and geometry adapted from the same serving contracts (modified). Their
README and adjacent provenance identify the immutable collection runtime
and source identities. The restored GB300 tables preserve their historical
timings and documented source-audited indexer metadata correction. The
B300 TP4 and TP2 tables are new native measurements with loaded-module dimension
validation; they do not inherit that historical correction.

Source: https://github.com/sgl-project/sglang/tree/1aa0e962b206102b7c439a4a0c4981cfec6e87bc
Copyright 2023-2024 SGLang Team and SGLang contributors. Licensed under Apache-2.0; its terms are
Expand Down
9 changes: 6 additions & 3 deletions python/aisimulate/THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -468,9 +468,12 @@ modified analytical adaptations of the indexer layout in `dsv41_sparse.py`.

The measured operator databases and adjacent documentation under
`src/aisimulate_core/systems/profiles/dsv41/` contain AISimulate timings
and geometry adapted from the same serving contracts. Their README identifies
the immutable measurement archive and the source-audited indexer metadata
correction; restoring the database does not change its measured timings.
and geometry adapted from the same serving contracts (modified). Their
README and adjacent provenance identify the immutable collection runtime
and source identities. The restored GB300 tables preserve their historical
timings and documented source-audited indexer metadata correction. The
B300 TP4 and TP2 tables are new native measurements with loaded-module dimension
validation; they do not inherit that historical correction.

Source: https://github.com/sgl-project/sglang/tree/1aa0e962b206102b7c439a4a0c4981cfec6e87bc
Copyright 2023-2024 SGLang Team and SGLang contributors. Licensed under Apache-2.0; its terms are
Expand Down
28 changes: 23 additions & 5 deletions python/aisimulate/collector/sglang/dsv41_native_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,26 @@ def collect_native_baselines(runner, options, tp_rank, provenance):
experts = layers[2].mlp.experts
gate = layers[2].mlp.gate
lm_head = runner.model.lm_head
if tuple(gate.weight.shape) != (384, 5120) or tuple(lm_head.weight.shape) != (32320, 5120):
raise RuntimeError("native baseline GEMM physical padding differs from TP4 graph")
tp_size = runner.model.tp_size
# The measured all-reduce uses the default process group. Only pure TP
# may label that collective and the loaded expert shards with this size.
if dist.get_world_size() != tp_size or dist.get_rank() != tp_rank:
raise RuntimeError("native baseline process group differs from model TP ranks")
if dist.get_backend() != "nccl":
raise RuntimeError("native baseline collectives require the actual NCCL process group")
if experts.moe_tp_size != tp_size or experts.moe_ep_size != 1:
raise RuntimeError("native baseline experts require model TP with EP=1")
# ParallelLMHead is built from the loaded text config (SGLang@1aa0e962,
# models/deepseek_v4.py:4079-4085). Verify its physical shard before
# recording the GEMM key; a differently padded runtime must fail closed.
vocab_size = runner.model.config.vocab_size
local_vocab_size = vocab_size // tp_size
if (
vocab_size % tp_size
or tuple(gate.weight.shape) != (384, 5120)
or tuple(lm_head.weight.shape) != (local_vocab_size, 5120)
):
raise RuntimeError("native baseline GEMM physical padding differs from model TP graph")
if type(experts.quant_method).__name__ != "Mxfp4FlashinferTrtllmMoEMethod":
raise RuntimeError("native baseline MoE requires verified MXFP4 TRTLLM dispatch")
if experts.quant_method.flashinfer_mxfp4_moe_precision != "default":
Expand Down Expand Up @@ -222,7 +240,7 @@ def collect_native_baselines(runner, options, tp_rank, provenance):
),
(
"gemm",
{"gemm_dtype": "bfloat16", "m": tokens, "n": 32320, "k": 5120},
{"gemm_dtype": "bfloat16", "m": tokens, "n": local_vocab_size, "k": 5120},
lambda: lm_head.quant_method.apply(lm_head, hidden),
_dispatch(lm_head, "quant_method.apply"),
),
Expand All @@ -235,7 +253,7 @@ def collect_native_baselines(runner, options, tp_rank, provenance):
"inter_size": 2304,
"topk": 6,
"num_experts": 384,
"moe_tp_size": 4,
"moe_tp_size": tp_size,
"moe_ep_size": 1,
"distribution": "uniform",
},
Expand All @@ -251,7 +269,7 @@ def collect_native_baselines(runner, options, tp_rank, provenance):
{
"op_name": "all_reduce",
"nccl_dtype": "half",
"num_gpus": 4,
"num_gpus": tp_size,
"message_size": 2 * tokens * width,
},
lambda payload=payload: dist.all_reduce(payload),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,34 @@ SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All
SPDX-License-Identifier: Apache-2.0
-->

# DeepSeek-V4.1 GB300 preview operator databases
# DeepSeek-V4.1 operator databases

These two systems roots contain the measured operator tables used by the
These systems roots contain the measured operator tables used by the
DeepSeek-V4.1 SILICON predictor. They are included in the Python distribution.
End-to-end ground truth, raw experiment logs, and prediction reports remain in
the immutable archive linked below.

The database version is `dev-800cc9adea5b`, using the first 12 characters of
the actual collection image's SHA-256 digest. This identifies one immutable
development build. The complete image and source identities are recorded below
and in the collection sidecars.

| Systems root | `decoder_replay` | V4.1 module rows | GEMM / MoE / NCCL rows |
| --- | --- | ---: | ---: |
| `full/` | `false` | 848 | 32 / 16 / 32 |
| `decoder_bounded/` | `true` | 948 | 32 / 16 / 32 |

Each root contains `gb300.yaml` and the standard
`data/gb300/<family>/<backend>/<version>/` layout, with a collection sidecar
external verification archives.

The database versions identify immutable collection images: `dev-800cc9adea5b`
for GB300 and `dev-c4ca651192e5` for B300. Each suffix uses the first 12 characters
of that image's SHA-256 digest. Complete image and source identities are recorded
below and in the collection sidecars. Both systems contain TP4 data. B300 TP2
full calibration is also available in the separate `tp2/full/` systems root described below. TP2 bounded is available in `tp2/decoder_bounded/`.

| System | Systems root | `decoder_replay` | V4.1 module rows | GEMM / MoE / NCCL rows |
| --- | --- | --- | ---: | ---: |
| GB300 | `full/` | `false` | 848 | 32 / 16 / 32 |
| GB300 | `decoder_bounded/` | `true` | 948 | 32 / 16 / 32 |
| B300 | `full/` | `false` | 985 | 46 / 23 / 46 |
| B300 | `decoder_bounded/` | `true` | 1029 | 46 / 23 / 46 |

Each root contains `gb300.yaml`, `b300_sxm.yaml` and the standard
`data/<system>/<family>/<backend>/<version>/` layout, with a collection sidecar
and SHA-256 for each Parquet file. Latencies are in milliseconds. These are
physical operator points, not independent workload counts.

## Selecting a database

Use `system_name="gb300"`, `backend="sglang"`, `backend_version="dev-800cc9adea5b"`,
Choose the matching system and image version below. Use `backend="sglang"`,
`database_mode="SILICON"`, `forward_model="op_level"`, `strict_provenance=True`,
and `enable_shared_layer=False`. Set TP and MoE TP to 4, and PP, MoE EP and
attention DP to 1. Set `systems_path` to the matching root:
Expand All @@ -38,25 +41,106 @@ from pathlib import Path
import aisimulate_core

decoder_replay = False
backend_version = "dev-800cc9adea5b"
system_name = "b300_sxm" # or "gb300"
backend_version = {
"gb300": "dev-800cc9adea5b",
"b300_sxm": "dev-c4ca651192e5",
}[system_name]
profile = "decoder_bounded" if decoder_replay else "full"
systems_path = str(
Path(aisimulate_core.__file__).parent / "systems" / "profiles" / "dsv41" / profile
)
```

Pass `backend_version`, `systems_path` and `decoder_replay` into the prediction configuration.
Pass `system_name`, `backend_version`, `systems_path` and `decoder_replay` into the prediction configuration.
The flag does not select a database automatically. The profiles contain
overlapping physical keys with different measured timings and must stay in
separate roots; a mismatched root is not guaranteed to fail every lookup.
They do not replace the general GB300 database or its default runtime versions.
They do not replace the general hardware databases or their default runtime versions.

Exact points return measured timings. The reader interpolates within an
existing curve and uses an existing measured boundary with SOL ratios for
extrapolation. A missing curve is a typed coverage error. Existing empirical
operators can still contribute to a whole-model total.

## Measurement scope and provenance
## B300 TP2 full operator database

Use `systems_path` ending in `systems/profiles/dsv41/tp2/full`,
`system_name="b300_sxm"`, `backend="sglang"`,
`backend_version="dev-c4ca651192e5-tp267c0e788b4b2"`, TP and MoE TP 2,
PP/MoE EP/attention DP 1, and `decoder_replay=False`. Retain the strict
SILICON/OP settings described above. This separate root preserves the TP4
and GB300 tables, including their NCCL observations.

The TP2 database contains 985 V4.1 module, 46 GEMM, 23 MoE and 46 NCCL rows.
All 145 frozen workloads completed on both ranks with one warmup and five
measured iterations; baselines used two warmups and five measured iterations.
All 1,100 aggregated records passed strict native exact lookup. The actual
runtime used request cap 4 and physical KV capacity 5120 on B300 driver
`610.57.04`. The version suffix binds the immutable image and qualified
startup-loader source/policy; it does not reuse the TP4 runtime identity.

[TP2 full provenance](b300-tp2-full-provenance.json) records the source identity,
raw archive/admission hashes and every database file hash. Raw observations
remain external. Complete calibration and exact lookup establish table
coverage. Independent full native-forward heldout validation covers 38 geometries
and 322/380 fixed attempts, with SILICON MAPE **5.0551%** (prefill **2.1298%**,
decode **13.2460%**). The 58 native batch-split failures remain in the denominator.
The bounded root below has separate measurements.

## B300 TP2 bounded operator database

Use `systems_path` ending in `systems/profiles/dsv41/tp2/decoder_bounded`
with the same TP2 backend version and parallelism above, and
`decoder_replay=True`. This profile contains 1,029 V4.1 module, 46 GEMM,
23 MoE and 46 NCCL records from 154 frozen workloads, including the nine
bounded supplemental geometries. All 1,144 records passed strict native
exact lookup. Warmup, measured repetitions and physical-pool limits match
the TP2 full protocol; the actual driver was `610.57.04`.

[TP2 bounded provenance](b300-tp2-bounded-provenance.json) identifies its
separate raw archive, admission and table hashes. These measured tables are
separate from the full profile. Independent bounded native-forward validation
covers 38 geometries and 326/380 fixed attempts, with SILICON MAPE **6.3582%**
(prefill **2.1822%**, decode **18.0512%**). The 54 native batch-split failures
remain in the denominator.

Both TP2 profiles use predeclared heldout geometries disjoint from FPM calibration.
MAPE is the unweighted mean geometry error against the median of every qualified
fixed heldout attempt. No observed latency is a predictor input; no fitting or
failed-attempt removal occurs. These are native-forward results for the recorded
source-qualified runtime, not a blind benchmark or HTTP serving validation.
Actual wheel readers reproduce all 2,244 TP2 exact lookups and every heldout
prediction from both profiles.

## B300 TP4 measurement scope and provenance

The September 17, 2026 collection used four B300 SXM6 GPUs on driver `610.57.04`,
the AMD64 image
`sha256:c4ca651192e57e91989b5176c3665148131b9a171e53861dee87f5e57cef25b5`,
and the checkpoint revision listed below. Full and bounded-decoder collection
covered 145 and 154 frozen workloads respectively, including nine predefined
bounded-profile supplemental workloads. Each workload had one warmup and five
measured iterations on all four ranks. Baselines had two warmups and five
measured iterations. Aggregation takes the maximum across TP ranks per physical
invocation, then the median within the same profile and physical key. The raw
package version `0.0.0.dev0` remains provenance; loading uses the image dev selector.

Both profiles use eager text execution, a physically observed 5120-token KV
capacity, HBM-resident Engram, unfused shared experts and separate NCCL 2.29.7
collectives. CUDA graphs and fused all-reduce are disabled. Each complete
calibration passed source, workload, physical-pool and exact native-reader
checks. These checks establish database coverage, not heldout prediction accuracy.
The TP4 tables contain no TP2 observations. The separately admitted TP2 full
root above uses its own source-qualified startup runtime and raw measurements.

[B300 TP4 provenance](b300-tp4-provenance.json) records table hashes, runtime and
checkpoint identities, collection settings, and hashes binding the external
raw archive and admission receipts. The tables and sidecars are unchanged
copies of the admitted outputs. The build's Git revision is unknown; the
serving-contract reference below is not asserted to identify the entire image.

## GB300 measurement scope and provenance

The September 2026 collection used four GB300 GPUs, the SGLang ARM64 image
`sha256:800cc9adea5be1e18f48185451220c4bc487c545b7095c720d2ccc9ba9bb3b5d`,
Expand All @@ -83,7 +167,7 @@ routing. CUDA graphs and fused all-reduce were disabled. Coverage is limited
to the measured geometry and runtime; these tables do not qualify alternative
topologies, offload, output equivalence, or general serving accuracy.

All 18 database file contents are byte-identical copies from AISimulate commit
All 18 GB300 database file contents are byte-identical copies from AISimulate commit
[`24faa2e263c75c137c091b8e80b7c2d36740b864`](https://github.com/ai-dynamo/aisimulate/tree/24faa2e263c75c137c091b8e80b7c2d36740b864/data/experimental/deepseek-v41/gb300-silicon/indexer-identity-v2/prefix-refinement),
under `data/experimental/deepseek-v41/gb300-silicon/indexer-identity-v2/`
`prefix-refinement/{full,decoder_bounded}/systems/`. Only the SGLang version
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
{
"backend_version": "dev-c4ca651192e5-tp267c0e788b4b2",
"collection": {
"baseline_iterations": 5,
"baseline_warmup": 2,
"checkpoint_revision": "fb2764a5cf321eaa5070ca8f9e892818f477c16d",
"geometry_count": 154,
"job_id": "4364038",
"max_running_requests": 4,
"measured_iterations": 5,
"physical_kv_tokens": 5120,
"rank_aggregation": "maximum per physical invocation, then median per physical key",
"run_id": "9c3c44cd-11df-4caa-a260-527145a9d584",
"warmup": 1
},
"database_files": {
"b300_sxm.yaml": "1b46526ebec20b518f73215b01d46e70354ccb316ca173fa67611892ac99ee97",
"data/b300_sxm/comm/nccl/2.29.7/collection_meta.yaml": "183d658404b8378744334728ca6899868a34165c4e09622927ec4adcd2d06644",
"data/b300_sxm/comm/nccl/2.29.7/nccl_perf.parquet": "9a3c6888b768168fa933114f0c6413b26d05952a06b57cf7e6cd861639ac11c4",
"data/b300_sxm/dsv41/sglang/dev-c4ca651192e5-tp267c0e788b4b2/collection_meta.yaml": "a45588047dddd38be75a08d714079e638cd0769483713e47ff57fc305527ddd7",
"data/b300_sxm/dsv41/sglang/dev-c4ca651192e5-tp267c0e788b4b2/dsv41_module_perf.parquet": "f388060ea5ca384e6d8c8603c49ac942d35297554267975923e57a26cf30ac55",
"data/b300_sxm/gemm/sglang/dev-c4ca651192e5-tp267c0e788b4b2/collection_meta.yaml": "9bf7e34df5141e373db46399e7088093450a1e2b25c2b737cbb5df3b8906afb5",
"data/b300_sxm/gemm/sglang/dev-c4ca651192e5-tp267c0e788b4b2/gemm_perf.parquet": "1b3aebbcdcc5d3aea9c9cccf706c9e341d63fa035ae87ba5c4dd0dd1aca699bf",
"data/b300_sxm/moe/sglang/dev-c4ca651192e5-tp267c0e788b4b2/collection_meta.yaml": "0b969a8158c870107d64b134e42e0c9a218da26b706b7d22f619e9db019cd6f8",
"data/b300_sxm/moe/sglang/dev-c4ca651192e5-tp267c0e788b4b2/moe_perf.parquet": "c8628c4357ed6e20cdf3bb5fcd77eb58b39bc7cfdde34cd5ac38c7db5e976c15"
},
"evidence": {
"native_lookup_receipt_sha256": "2c5b7a52c5503c204a70a0e9e583ce8465357af02d78f60541139a7c20d61e4b",
"publication_adapter_manifest_sha256": "68bbd7545991b889347c96672f14c844fd3866450221c2fe110bbef138e294d0",
"raw_admission_sha256": "871c80f41485fb3707ca3dab48235cd89300fdaf3de333c49410e5ceb11111d6",
"raw_archive_sha256": "a962d7a84a39c3bcdb764177156b9536663aa1e038a25bdff71937ddf8b35083"
},
"exact_native_lookup_counts": {
"dsv41": 1029,
"gemm": 46,
"moe": 23,
"nccl": 46
},
"execution_profile": "decoder_bounded",
"observed_hardware": {
"actual_driver_version": "610.57.04",
"gpu_names": [
"NVIDIA B300 SXM6 AC"
],
"raw_receipt_canonical_json_sha256": "67ac78e739828110ceddfb51c2525678c2ecfdfb9d0a0d2552b7bcf872131783",
"raw_receipt_location": "External raw archive identified in evidence.raw_archive_sha256",
"receipt_sha256": "a467e1ce8068ca4845f053ef0766e2a28e465d60ce8b7930d24790bc82160cc0"
},
"qualification": "Complete OP calibration and strict exact lookup; independently observed native-forward heldout validation below. This does not establish general HTTP serving accuracy.",
"runtime_identity_sha256": "67c0e788b4b2bcdb1d55e684ee2742c1a50e63be881d0006e621c63204a49f28",
"schema_version": 1,
"source_qualified_runtime": {
"bridge_manifest_sha256": "e1f09392aefe01320590e2a25193131f1b6418d8121d236dce72d2fe24414372",
"image_manifest_digest": "sha256:c4ca651192e57e91989b5176c3665148131b9a171e53861dee87f5e57cef25b5",
"image_squashfs_sha256": "48a67d21c9186ffd15fd3c19c20a033c32a610c559f4837b9d02045585a79b17",
"kind": "native_startup_bridge",
"loader_source_descriptor_sha256": "762305550393b33cff4511bcfdef61e16cc7160ac030627c22e351b084f22e8e",
"loader_variant_identity_sha256": "257c9d5e61a19f4403b7baab566d3ab5b74a912bc1797be8d2bc648f21a162c5",
"schema": "dsv41.tp2.source-qualified-runtime.v1",
"startup_policy_sha256": "420c5722b2b4c447f8b331dfc95bbf831b568d2d85f99882cb0892b0d3b51981"
},
"system": "b300_sxm",
"tp": 2,
"heldout_validation": {
"mape_percent": 6.358216768717344,
"phase_mape_percent": {
"prefill": 2.1821654264608807,
"decode": 18.05116052703544
},
"planned_geometries": 38,
"predicted_geometries": 38,
"planned_attempts": 380,
"qualified_and_predicted_attempts": 326,
"native_geometry_failures_retained": 54,
"run_id": "cb03f93d-5652-416e-95c6-b6847e106c78",
"mape_definition": "Unweighted mean geometry error against median of every qualified fixed heldout attempt; unavailable geometry retained in coverage.",
"fitting": false,
"observed_latency_passed_to_predictor": false,
"geometries_predeclared": true,
"blind_benchmark": false,
"comparison_sha256": "c674788be3976bf86bed453505348d13b7b06f7d26a8eadbe3bc239ff8bf7d9f",
"predictor_head": "6ad6af2d9047234b446eb8ab84971c7938e963eb",
"native_sha256": "31fa4a3a066a3cd0509c3f36fac02139ac3625a258e96b371aa8b7c780dc78fd",
"wheel_validation_receipt_sha256": "38c0ba091d52be040d375c4c295b7bd9e124546da466a6eae9573386939cb02b"
}
}
Loading
Loading