Skip to content

feat: add DeepSeek V4.1 B300 TP2/TP4 operator profiles - #233

Merged
Harrilee merged 1 commit into
mainfrom
codex/dsv41-b300-op-tp2-tp4
Sep 21, 2026
Merged

Harrilee merged 1 commit into
mainfrom
codex/dsv41-b300-op-tp2-tp4

Conversation

@Harrilee

@Harrilee Harrilee commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Adds measured B300 TP2/TP4 operator databases for DeepSeek-V4.1-Flash SILICON prediction, with separate full and bounded execution profiles. The OP prerequisite #160 is merged; this PR now targets main and retains the existing GB300 data. The Collector derives GEMM/MoE/NCCL keys from the loaded TP layout and rejects mismatched process groups, expert topology and vocabulary padding before measurement.

Current head: 75ad15780b4a163070f9a75b6aae3bc904b8dbbf. Rebased the B300 supplement onto main (3bfdbf88) after #160 was squash-merged. This only updates ancestry: the complete Git tree is identical to previously validated 42063883 (ed777e702998f78ac7baac723e741e2fdcbd51a7). All code, tests and 58 profile files, including 24 Parquets, are unchanged. The PR contains no raw campaign artifacts or end-to-end ground truth.

Validation — 2026-09-21

The local results below were obtained at 42063883, whose entire source/data tree is identical to the current head. The ancestry-only rebase did not rerun those tests or GPU collection.

  • Freshly rebuilt native extension: 6,444/6,444 stored rows reproduce their latency exactly, with strict provenance, SILICON mode, no shared-layer reuse, and native source='silicon'. This covers all six profiles and all 24 tables: 5,824 module, 248 GEMM, 124 MoE and 248 NCCL rows. Sidecar hashes, row counts and unique physical keys also pass.
  • 120 Collector tests passed, including TP2/TP4 physical layout, NCCL identity, failed-preflight retry, execution profiles and forward-result admission.
  • Both native parity suites: 386 passed. Ruff lint/format, packaged legal mirrors, copyright, documentation destinations, ownership coverage and whitespace checks pass.
  • Historical exact-head validation at 42063883: both Fast CI runs and Full CI passed. Both new-head Fast CI runs passed (PR run, trusted-copy run). New-head Full CI remains pending; previous CI does not satisfy the new commit's gates.

There are no unresolved inline review threads or actionable review comments. The existing approval predates this rebase. The PR remains ready for review; #160 is already merged.

Exact table queries are integrity checks, not holdout accuracy. This rebase performs no GPU recollection or new MAPE evaluation. Historical CI and wheel evidence do not substitute for validation of this head; the results below retain their original sources, populations and limitations.

Packaged data

  • TP2 roots: python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/{full,decoder_bounded}; TP4 roots: python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/{full,decoder_bounded}. Select the documented B300 system, TP, runtime version and decoder profile explicitly.
  • Each TP has 985 full / 1,029 bounded module rows, plus 46 GEMM, 23 MoE and 46 NCCL rows per profile. The full/bounded collectors cover 145/154 frozen workloads. Module collection uses one warmup plus five measurements; baselines use two warmups plus five measurements. Aggregation takes TP-rank maxima per physical invocation, then the median per physical key.
  • Full and bounded databases, including collectives, remain separate. Compact provenance, hardware YAML, attribution and loading documentation are included.

Historical packaging validation reproduced all 2,244 TP2 records and all 322 full / 326 bounded qualified heldout predictions from a built wheel. That is retained collection evidence, not a claim that wheel validation was repeated by this rebase.

Historical native-forward validation

All methods use the same independently collected heldout observations within each TP/profile: 38 predeclared geometries, ten fixed attempts each. MAPE is the unweighted mean of geometry errors against the median of all qualified fixed attempts. Failed native geometry/batch-split attempts remain in the coverage denominator; they are excluded from numerical error, never counted as zero error. These are native-forward latencies, not HTTP serving metrics or a blind benchmark.

TP Profile SOL MAPE SILICON MAPE FPM static MAPE Common coverage
2 full 89.3745% 5.0551% 0.7977% 38/38 shapes; 322/380 attempts
2 bounded 89.0953% 6.3582% 5.2327% 38/38 shapes; 326/380 attempts
4 full 94.4044% 11.2440% 5.4528% 38/38 shapes; 345/380 attempts
4 bounded 94.3925% 11.4657% 1.5628% 38/38 shapes; 346/380 attempts

FPM aggregate coverage is separate. Full aggregate and static results agree. Bounded aggregate retains its original multiple-prefill guard: TP2 MAPE 6.7164%, 26/38 shapes and 260/380 attempts (66 otherwise-qualified guard rejections plus 54 native failures); TP4 MAPE 1.6108%, 26/38 and 260/380 (86 guard rejections plus 34 native failures). Static predictions use actual per-request seed/chunk/context witnesses; no aggregate guard was bypassed.

FPM calibration and heldout have disjoint run IDs, request IDs and exact geometries: 145 calibration versus 38 heldout shapes. Rows use the predeclared first qualified fixed attempt, never the fastest. Calibration qualified 1,224/1,450 TP2 full, 1,248/1,450 TP2 bounded, 1,275/1,450 TP4 full and 1,280/1,450 TP4 bounded attempts. All failures remain retained. No heldout latency is a predictor input, no heldout fitting occurred, and hardware/TP data were not substituted across cells.

The TP2 bounded FPM worst-point error is 138.5442% at decode B2 / total past-KV 3,584: prediction 272.4125 ms versus heldout median 114.1979 ms. This is the native interpolation between the first-qualified calibration observations at 3,072 (433.5766 ms) and 4,096 (111.2484 ms). Both original trace values were verified; later faster samples were not substituted and the slow sample's cause is not established. TP4 full retains its previously disclosed 111.33% worst-point error.

Measurement identity and evidence

B300 is b300_sxm, separate from GB300. TP4 uses dev-c4ca651192e5; TP2 uses dev-c4ca651192e5-tp267c0e788b4b2, binding the same immutable image to its separately qualified startup source/policy. The complete image/runtime/source identities, original package-reported version, driver, raw-admission and prediction hashes are in compact sidecars. Image hashes identify builds, not an asserted upstream Git revision.

TP2 OP jobs 4363517 (full) and 4364038 (bounded), and FPM jobs 4363666 (full) and 4364952 (bounded), completed with exit 0. Each FPM archive contains 11,180 files; every remote hash was recomputed locally. Both roles passed original source, token-freeze, trace, ten-attempt, physical-pool, prerequisite and identity gates. Raw-copy negative controls separately rejected invalid timing, altered tokens, pool size, prerequisite handoff and campaign role, including rebound outer hashes. Source-bound adapter corrections preserve the original producer and measured bytes.

The historical TP2 predictions used SOL 40fdb603, SILICON 6ad6af2d, and FPM f2aea3a1/76c5a5e2. Independent review at collection time recomputed the observed medians, attempts, MAPE, selection and worst-point trace evidence. TP4 observations and recorded prediction values are retained. These source identities remain the scope of the accuracy evidence; current-head rebase validation is reported separately above. OP collective baselines record Torch NCCL 2.29.7; actual FPM workers independently record SGLang PyNCCL 2.30.7. Their distinct library identities are preserved.

Companion FPM data PR: #232, targeting #158. This OP PR does not add GB300 TP2 measurements.

@coderabbitai

coderabbitai Bot commented Sep 16, 2026 •

Copy link
Copy Markdown

Review Change StackReview Change Stack

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Repository: ai-dynamo/aisimulate/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 4dd8073a-fd16-45f5-94bb-0fc0c96d810f

📥 Commits

Reviewing files that changed from the base of the PR and between 3bfdbf8 and 75ad157.

⛔ Files ignored due to path filters (16)
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/decoder_bounded/data/b300_sxm/comm/nccl/2.29.7/nccl_perf.parquet is excluded by !**/*.parquet and included by python/**
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/decoder_bounded/data/b300_sxm/dsv41/sglang/dev-c4ca651192e5/dsv41_module_perf.parquet is excluded by !**/*.parquet and included by python/**
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/decoder_bounded/data/b300_sxm/gemm/sglang/dev-c4ca651192e5/gemm_perf.parquet is excluded by !**/*.parquet and included by python/**
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/decoder_bounded/data/b300_sxm/moe/sglang/dev-c4ca651192e5/moe_perf.parquet is excluded by !**/*.parquet and included by python/**
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/full/data/b300_sxm/comm/nccl/2.29.7/nccl_perf.parquet is excluded by !**/*.parquet and included by python/**
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/full/data/b300_sxm/dsv41/sglang/dev-c4ca651192e5/dsv41_module_perf.parquet is excluded by !**/*.parquet and included by python/**
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/full/data/b300_sxm/gemm/sglang/dev-c4ca651192e5/gemm_perf.parquet is excluded by !**/*.parquet and included by python/**
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/full/data/b300_sxm/moe/sglang/dev-c4ca651192e5/moe_perf.parquet is excluded by !**/*.parquet and included by python/**
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/decoder_bounded/data/b300_sxm/comm/nccl/2.29.7/nccl_perf.parquet is excluded by !**/*.parquet and included by python/**
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/decoder_bounded/data/b300_sxm/dsv41/sglang/dev-c4ca651192e5-tp267c0e788b4b2/dsv41_module_perf.parquet is excluded by !**/*.parquet and included by python/**
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/decoder_bounded/data/b300_sxm/gemm/sglang/dev-c4ca651192e5-tp267c0e788b4b2/gemm_perf.parquet is excluded by !**/*.parquet and included by python/**
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/decoder_bounded/data/b300_sxm/moe/sglang/dev-c4ca651192e5-tp267c0e788b4b2/moe_perf.parquet is excluded by !**/*.parquet and included by python/**
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/full/data/b300_sxm/comm/nccl/2.29.7/nccl_perf.parquet is excluded by !**/*.parquet and included by python/**
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/full/data/b300_sxm/dsv41/sglang/dev-c4ca651192e5-tp267c0e788b4b2/dsv41_module_perf.parquet is excluded by !**/*.parquet and included by python/**
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/full/data/b300_sxm/gemm/sglang/dev-c4ca651192e5-tp267c0e788b4b2/gemm_perf.parquet is excluded by !**/*.parquet and included by python/**
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/full/data/b300_sxm/moe/sglang/dev-c4ca651192e5-tp267c0e788b4b2/moe_perf.parquet is excluded by !**/*.parquet and included by python/**
📒 Files selected for processing (28)
  • THIRD_PARTY_NOTICES.md
  • python/aisimulate/THIRD_PARTY_NOTICES.md
  • python/aisimulate/collector/sglang/dsv41_native_runner.py
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/README.md
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/b300-tp2-bounded-provenance.json
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/b300-tp2-full-provenance.json
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/b300-tp4-provenance.json
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/decoder_bounded/b300_sxm.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/decoder_bounded/data/b300_sxm/comm/nccl/2.29.7/collection_meta.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/decoder_bounded/data/b300_sxm/dsv41/sglang/dev-c4ca651192e5/collection_meta.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/decoder_bounded/data/b300_sxm/gemm/sglang/dev-c4ca651192e5/collection_meta.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/decoder_bounded/data/b300_sxm/moe/sglang/dev-c4ca651192e5/collection_meta.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/full/b300_sxm.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/full/data/b300_sxm/comm/nccl/2.29.7/collection_meta.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/full/data/b300_sxm/dsv41/sglang/dev-c4ca651192e5/collection_meta.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/full/data/b300_sxm/gemm/sglang/dev-c4ca651192e5/collection_meta.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/full/data/b300_sxm/moe/sglang/dev-c4ca651192e5/collection_meta.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/decoder_bounded/b300_sxm.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/decoder_bounded/data/b300_sxm/comm/nccl/2.29.7/collection_meta.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/decoder_bounded/data/b300_sxm/dsv41/sglang/dev-c4ca651192e5-tp267c0e788b4b2/collection_meta.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/decoder_bounded/data/b300_sxm/gemm/sglang/dev-c4ca651192e5-tp267c0e788b4b2/collection_meta.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/decoder_bounded/data/b300_sxm/moe/sglang/dev-c4ca651192e5-tp267c0e788b4b2/collection_meta.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/full/b300_sxm.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/full/data/b300_sxm/comm/nccl/2.29.7/collection_meta.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/full/data/b300_sxm/dsv41/sglang/dev-c4ca651192e5-tp267c0e788b4b2/collection_meta.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/full/data/b300_sxm/gemm/sglang/dev-c4ca651192e5-tp267c0e788b4b2/collection_meta.yaml
  • python/aisimulate/src/aisimulate_core/systems/profiles/dsv41/tp2/full/data/b300_sxm/moe/sglang/dev-c4ca651192e5-tp267c0e788b4b2/collection_meta.yaml
  • python/aisimulate/tests/unit/collector/test_dsv41_native_baselines.py

Comment @coderabbitai help to get the list of available commands.

@Harrilee
Harrilee force-pushed the feat/harrli/dsv41-silicon branch from 5b315ab to b7d65dc Compare September 18, 2026 21:48
@Harrilee
Harrilee force-pushed the codex/dsv41-b300-op-tp2-tp4 branch 2 times, most recently from 0cad95e to 472b4cb Compare September 18, 2026 22:56
@Harrilee
Harrilee force-pushed the feat/harrli/dsv41-silicon branch 2 times, most recently from ad7ffee to ae8905b Compare September 21, 2026 02:59
@Harrilee
Harrilee requested review from a team as code owners September 21, 2026 02:59
@Harrilee
Harrilee force-pushed the feat/harrli/dsv41-silicon branch from ae8905b to d7869f4 Compare September 21, 2026 03:10
@Harrilee Harrilee changed the title data: add DeepSeek V4.1 B300 TP2/TP4 operator profiles feat: add DeepSeek V4.1 B300 TP2/TP4 operator profiles Sep 21, 2026
@Harrilee
Harrilee force-pushed the codex/dsv41-b300-op-tp2-tp4 branch from 472b4cb to 4206388 Compare September 21, 2026 04:18
@Harrilee

Copy link
Copy Markdown
Contributor Author

Rebased the B300 supplement onto latest OP parent #160 (dbd543b3) and pushed 42063883. GitHub reports no conflicts. The child patch is unchanged, preserving the parent's review fixes; all 58 profile files, including 24 Parquet tables, match the previous child head byte-for-byte.

Validation on this head: 120 Collector tests and 386 native parity cases passed. All 6,444 stored module/GEMM/MoE/NCCL rows reproduce exact timings through strict native SILICON queries, with sidecar hashes and physical-key uniqueness checked. Both Fast CI runs passed; Full CI is running, not yet a pass.

There were no actionable review comments or unresolved inline threads. Updated the PR title to the repository's feat: convention and refreshed the body with current-head evidence, retaining historical MAPE and its source/coverage limits. No new GPU collection or accuracy qualification is claimed.

Base automatically changed from feat/harrli/dsv41-silicon to main September 21, 2026 04:29
@Harrilee
Harrilee enabled auto-merge (squash) September 21, 2026 04:34
@Harrilee
Harrilee force-pushed the codex/dsv41-b300-op-tp2-tp4 branch from 4206388 to 75ad157 Compare September 21, 2026 04:36
@Harrilee

Copy link
Copy Markdown
Contributor Author

Resolved the conflict caused by #160's squash merge and this PR's retargeting to main. Pushed 75ad1578, based on main 3bfdbf88; GitHub reports it as mergeable.

This update changes ancestry only. Its complete Git tree (ed777e702998f78ac7baac723e741e2fdcbd51a7) is identical to previous head 42063883, preserving all code, tests and 58 profile files. The previous exact-head Full CI has now passed, together with Fast CI and the previously reported local 120 Collector / 386 parity tests and 6,444 exact native table queries. Those tests were not rerun for this identical-tree rebase.

The body now reflects the merged prerequisite and direct main base. New-head Full CI is running; previous-head success is not represented as passing the new commit's checks. No new accuracy qualification is claimed.

@Harrilee
Harrilee merged commit e882803 into main Sep 21, 2026
64 of 65 checks passed
@Harrilee
Harrilee deleted the codex/dsv41-b300-op-tp2-tp4 branch September 21, 2026 04:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review-ready Ready for automated and human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants