Skip to content

[WS1][CUDA][MiniMax-H3] checkpoint mapper and the vLLM-Omni rollout adapter (RFC #420 stack 7/7) - #575

Open
fusheng-ji wants to merge 39 commits into
RL-Align:test-h3from
fusheng-ji:feat/h3-checkpoint-mapper-vllm
Open

fusheng-ji wants to merge 39 commits into
RL-Align:test-h3from
fusheng-ji:feat/h3-checkpoint-mapper-vllm

Conversation

@fusheng-ji

@fusheng-ji fusheng-ji commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

RFC #420 H3 stack 7/7 (base test-h3, merge in this order): #586 -> #587 -> #588 -> #567 -> #568 -> #569 -> #570 -> #571 -> #574 -> this PR (#575). This PR contains #574 and a merge of #569 (the adapter uses its parallel kernels); until those merge GitHub also shows their commits. This PR's own diff (it also shows the #569 merge).

What

  • h3_checkpoint_mapper: Diffusers <-> vLLM-Omni native names and layouts. transformer_blocks.N -> blocks.N, token_refiner.refiner_blocks.N -> token_refiner.blocks.N; to_q/k/v -> one fused attn.qkv_proj ([Q;K;V] rows); to_out.0 -> out_proj; ff.net.0.proj (value-first) -> mlp.fc1 (gate-first, halves swapped); ff.net.2 -> mlp.fc2; model-level names from vLLM-Omni's fasth3 table. All 638 checkpoint tensors map and the round trip is bitwise; unmapped names and incomplete q/k/v sets fail closed.
  • vllm_runtime_adapter_h3: install_h3_rollout(model, collective=None, tp=1) replaces the four fused linears' forwards (returning vLLM's (output, None)). qkv_proj / fc1 use h3-projection-gemm-v1 (a fused column equals the same column alone, tested); out_proj / fc2 use the canonical row-parallel reduction of h3-parallel-v1. Wrong dtype, non-CUDA weights or a model without those modules raise in strict mode. Attention, rotary, QK norm, SwiGLU and AdaLN stay vLLM-Omni's and are reported external; handle.remove() restores.

Prior art & reuse decision

Existing Used here
vLLM-Omni fasth3 name tables the mapper mirrors them; a test compares the tables when vllm_omni is importable
h3-projection-gemm-v1 (#568), h3-parallel-v1 (#569) the adapter runs these behind vLLM's linears
#338 runtime pattern followed for bind / read back / restore

Results (H100 / Hopper)

Full 33B step time (forward + backward, gradient checkpointing, one H100) — strict graph binds h3_full_attention (#553) in CandidateOps when _H3_C is built; provider is diffusers/cuBLAS. Median of 3 repeats; torch 2.13.0+cu130, MiniMax-H3@42ed227, runner tools/validation/models/h3_full_speed.py, measured at head 4f7c5d11 (#575 stack, includes #571).

tokens provider total strict total total ratio provider fwd strict fwd fwd ratio strict peak GiB
12 0.312 s 1.3 s 4.03x 0.104 s 0.42 s 4.0x 62.9
925 0.438 s 5.0 s 11.33x 0.119 s 1.31 s 11.0x 63.0
4253 1.709 s 37.4 s 21.88x 0.438 s 9.10 s 20.8x 63.5
8349 3.625 s 126.4 s 34.88x 0.910 s 28.70 s 31.6x 65.0

Strict uses the bounded-workspace #553 attention kernel (not the interim quadratic DeterministicAttentionOp); 8349 tokens fit in ~65 GiB. This is still far above provider time (launch-bound strict path plus interim projection/GEMM rows in the stack); it does not meet the “R/R step time not worse than P/P” acceptance bar.

Measured on NVIDIA H100 (93 GiB, sm90), CUDA 13.0, torch 2.13.0+cu130, with the real pinned MiniMax-H3@42ed227 checkpoint (14 shards), at head 4f7c5d11. Runner: tools/validation/models/h3_mapper_vllm_report.py. Data and figure on the fork's pr_assets branch (report.json, figure.png, environment.json).

mapper and adapter

Checkpoint mapper: all 638 checkpoint tensors map (534 native tensors after q/k/v fusion, all names unique), and native_to_diffusers(diffusers_to_native(x)) is bitwise x with dtypes kept. One pass takes about 5.4 s forward and 5.5 s back (CPU, 53 groups).

Adapter (blocks 0, 25, 49 of the real checkpoint, 70 and 925 tokens, BF16): the fused qkv_proj equals separate Q, K, V projections bitwise; the mapped fc1 equals the Diffusers ff.net.0.proj output with halves swapped, bitwise; all four projections are bitwise repeatable. Relative error to FP64 is 1.66e-3 for every projection, within 1e-7 of torch F.linear (qkv_proj and fc1 are identical to torch's error).

Speed against torch F.linear (adapter time / torch time; this is slower, not faster): qkv_proj 1.03x (70 tokens) and 1.47x (925), fc1 1.00x and 1.14 - 1.23x, out_proj 10.3x and 4.9 - 5.1x, fc2 4.9x and 3.3 - 3.5x. The row-parallel reduction (out_proj, fc2) pays for its fixed 8-unit order; at 70 tokens this is launch overhead (about 0.44 ms vs 0.04 - 0.09 ms).

TP invariance of the row-parallel reduction itself (TP 1/2/4/8) is measured in #569; it is not repeated here.

Results (B200 / Blackwell)

Measured on NVIDIA B200 (179 GiB, sm100), driver 580.126, CUDA 13.0, torch 2.13.0+cu130, pinned MiniMax-H3@42ed227 weights, clean tree at 4f7c5d11. Optional dependencies pinned to the revisions recorded for the H100 run (environment.json): vLLM-Omni 12e92800 (vllm_omni imported from that checkout).

Tests: 8 passed (8 collected), none skipped, including the vLLM-Omni name-table comparison; tests.json. Report: report.json.

  • Checkpoint mapper: all 638 checkpoint tensors map to 534 native tensors (53 groups), names unique; native_to_diffusers(diffusers_to_native(x)) is bitwise x. One pass takes 18.7 s forward and 8.9 s inverse.
  • Adapter (24 layer cases: blocks 0, 25, 49, tokens 70, 925): every case repeatable; fused columns equal the separate ones; fc1 equals diffusers' half swap; relative error against FP64 0.00166 to 0.00166, equal to torch.nn.functional.linear's (0.00166 to 0.00166).
  • Time against F.linear (the adapter uses the fixed-order kernels and the canonical row-parallel reduction): qkv_proj 1.6x to 1.7x (median 1.6x), fc1 1.4x to 1.7x (median 1.5x), fc2 4.3x to 7.5x (median 5.9x), out_proj 5.8x to 11.4x (median 8.5x).

checkpoint mapper and adapter on B200

Tests

tests/models/minimax_h3/test_h3_checkpoint_mapper_vllm.py (8 tests): 638-tensor mapping and unique native names, bitwise round trip, fc1 half swap and q/k/v order, fail-closed unmapped names, grouped layout, vLLM-Omni table comparison, adapter patch / restore, adapter strict rejection. 8 pass on H100 with vllm_omni installed; the table comparison is skipped when it is not importable. The #569 regression (test_h3_parallel.py, test_h3_ws2_processes.py) passes on this branch on H100 (74 tests, 4 GPUs).

B200: 8 passed, with vLLM-Omni importable.

Scope & Known limitations

  • Not run with tp > 1, and no single-node 8-GPU Hopper run. The adapter's row-parallel path takes a deterministic collective for tp = 2 / 4 / 8, but the tests and measurements here use tp = 1; the TP-invariance of the reduction is shown in [WS2][CUDA][MiniMax-H3] ws2 tensor / sequence / context parallel and the hierarchical cross-node collective (RFC #420 stack 3/5) #569, itself measured on 2 nodes x 4 H100 only. We lack a single-node 8-GPU Hopper machine; anyone who has one is welcome to run the adapter at tp = 8 and report back.

  • Only the four fused linears are bound; attention, rotary and norms are not.

  • The pinned vLLM-Omni version is the one installed for these tests; it is not a CI dependency, so the name-table test is skipped there.

@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 173 files, which is 73 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

Check out review usage here.

Run configuration
Commits

Reviewing files that changed from the base of the PR and between d22d4b4 and 3baf93c.

Files selected for processing: 173
  • .github/workflows/ci.yml
  • benchmarks/models/benchmark_h3_conditioning.py
  • build_tools/extensions.py
  • csrc/bindings/ops.cpp
  • csrc/cuda/h3/adaln_row_gather.cu
  • csrc/cuda/h3/det_linear.cu
  • csrc/cuda/h3/gate_residual.cu
  • csrc/cuda/h3/rmsnorm_modulate.cu
  • csrc/cuda/h3/timestep_sinusoid.cu
  • docs/.nav.yml
  • docs/operators/README.md
  • docs/operators/h3-adaln-gate-residual.md
  • docs/operators/h3-adaln-projection.md
  • docs/operators/h3-adaln-row-gather.md
  • docs/operators/h3-arch-fingerprint.md
  • docs/operators/h3-checkpoint-mapper-vllm.md
  • docs/operators/h3-final-adaln-out.md
  • docs/operators/h3-full-transformer.md
  • docs/operators/h3-integration.md
  • docs/operators/h3-one-block.md
  • docs/operators/h3-operator-trace.md
  • docs/operators/h3-parallel.md
  • docs/operators/h3-projection-rows.md
  • docs/operators/h3-rmsnorm.md
  • docs/operators/h3-sp-norm-adaln.md
  • docs/operators/h3-timestep-mlp.md
  • docs/operators/h3-timestep-sinusoid.md
  • docs/operators/h3-token-refiner.md
  • docs/operators/h3-tp-adaln-3mod.md
  • docs/operators/h3-trajectory-artifact.md
  • examples/models/minimax_h3/README.md
  • examples/models/minimax_h3/candidate.sbatch
  • examples/models/minimax_h3/diagnose-block.sbatch
  • examples/models/minimax_h3/full-model-ensemble-rule.json
  • examples/models/minimax_h3/full-model-thresholds.json
  • examples/models/minimax_h3/generation-compare.sbatch
  • examples/models/minimax_h3/generation-contract.json
  • examples/models/minimax_h3/generation-inputs.json
  • examples/models/minimax_h3/generation-prompt.txt
  • examples/models/minimax_h3/generation-resume-check.sbatch
  • examples/models/minimax_h3/generation.sbatch
  • examples/models/minimax_h3/reference-manifest.json
  • examples/models/minimax_h3/reference.sbatch
  • rl_engine/_C.pyi
  • rl_engine/backends/cuda/model_specific/__init__.py
  • rl_engine/backends/cuda/model_specific/minimax_h3/__init__.py
  • rl_engine/backends/cuda/model_specific/minimax_h3/adaln_modulation.py
  • rl_engine/backends/cuda/model_specific/minimax_h3/adaln_projection.py
  • rl_engine/backends/cuda/model_specific/minimax_h3/adaln_row_gather.py
  • rl_engine/backends/cuda/model_specific/minimax_h3/det_linear.py
  • rl_engine/backends/cuda/model_specific/minimax_h3/final_adaln_out.py
  • rl_engine/backends/cuda/model_specific/minimax_h3/gate_residual.py
  • rl_engine/backends/cuda/model_specific/minimax_h3/parallel.py
  • rl_engine/backends/cuda/model_specific/minimax_h3/projection.py
  • rl_engine/backends/cuda/model_specific/minimax_h3/rmsnorm.py
  • rl_engine/backends/cuda/model_specific/minimax_h3/sp_norm_adaln.py
  • rl_engine/backends/cuda/model_specific/minimax_h3/timestep_mlp.py
  • rl_engine/backends/cuda/model_specific/minimax_h3/timestep_sinusoid.py
  • rl_engine/backends/cuda/model_specific/minimax_h3/tp_adaln_projection.py
  • rl_engine/backends/cuda/model_specific/minimax_h3/ws2_comm.py
  • rl_engine/backends/shared/triton/gemm/h3_projection.py
  • rl_engine/distributed/algorithms/hierarchical.py
  • rl_engine/integrations/engines/rollout/vllm/h3_omni.py
  • rl_engine/models/minimax_h3/arch_fingerprint.json
  • rl_engine/models/minimax_h3/checkpoint_mapper.py
  • rl_engine/models/minimax_h3/fingerprint.py
  • rl_engine/models/minimax_h3/operator_trace.py
  • rl_engine/models/minimax_h3/pinned_checkpoint.json
  • rl_engine/models/minimax_h3/runtime.py
  • rl_engine/models/minimax_h3/trajectory.py
  • rl_engine/models/minimax_h3/transition.py
  • rl_engine/reference/minimax_h3/__init__.py
  • rl_engine/reference/minimax_h3/adaln_projection.py
  • rl_engine/reference/minimax_h3/adaln_row_gather.py
  • rl_engine/reference/minimax_h3/block.py
  • rl_engine/reference/minimax_h3/final_adaln_out.py
  • rl_engine/reference/minimax_h3/fixed_order.py
  • rl_engine/reference/minimax_h3/gate_residual.py
  • rl_engine/reference/minimax_h3/projection.py
  • rl_engine/reference/minimax_h3/rmsnorm.py
  • rl_engine/reference/minimax_h3/timestep_mlp.py
  • rl_engine/reference/minimax_h3/timestep_sinusoid.py
  • rl_engine/runtime/registry.py
  • rl_engine/validation/models/h3_block.py
  • rl_engine/validation/models/h3_cases.py
  • rl_engine/validation/models/h3_chain.py
  • rl_engine/validation/models/h3_full_manifest.json
  • rl_engine/validation/models/h3_full_model.py
  • rl_engine/validation/models/h3_generation_resume.py
  • rl_engine/validation/models/h3_manifest.json
  • rl_engine/validation/models/h3_provider.py
  • rl_engine/validation/models/h3_refiner.py
  • rl_engine/validation/models/h3_report.py
  • rl_engine/validation/models/h3_tp.py
  • rl_engine/validation/models/h3_weights.py
  • rl_engine/validation/models/h3_ws2.py
  • rl_engine/validation/operators/operator_inputs.py
  • rl_engine/validation/operators/operator_specs.py
  • tests/build/test_build_platform_collectives.py
  • tests/models/minimax_h3/conftest.py
  • tests/models/minimax_h3/test_h3_adaln_gate_residual.py
  • tests/models/minimax_h3/test_h3_adaln_modulation.py
  • tests/models/minimax_h3/test_h3_adaln_projection.py
  • tests/models/minimax_h3/test_h3_adaln_row_gather.py
  • tests/models/minimax_h3/test_h3_arch_fingerprint.py
  • tests/models/minimax_h3/test_h3_benchmark_timing.py
  • tests/models/minimax_h3/test_h3_chain_replay_cli.py
  • tests/models/minimax_h3/test_h3_checkpoint_mapper_vllm.py
  • tests/models/minimax_h3/test_h3_cli.py
  • tests/models/minimax_h3/test_h3_conditioning_e2e.py
  • tests/models/minimax_h3/test_h3_det_linear.py
  • tests/models/minimax_h3/test_h3_final_adaln_out.py
  • tests/models/minimax_h3/test_h3_full_model.py
  • tests/models/minimax_h3/test_h3_generation_resume.py
  • tests/models/minimax_h3/test_h3_native_validation.py
  • tests/models/minimax_h3/test_h3_one_block.py
  • tests/models/minimax_h3/test_h3_operator_trace.py
  • tests/models/minimax_h3/test_h3_parallel.py
  • tests/models/minimax_h3/test_h3_projection_rows.py
  • tests/models/minimax_h3/test_h3_report.py
  • tests/models/minimax_h3/test_h3_rmsnorm.py
  • tests/models/minimax_h3/test_h3_runtime_integration.py
  • tests/models/minimax_h3/test_h3_sp_norm_adaln.py
  • tests/models/minimax_h3/test_h3_timestep_mlp.py
  • tests/models/minimax_h3/test_h3_timestep_sinusoid.py
  • tests/models/minimax_h3/test_h3_token_refiner.py
  • tests/models/minimax_h3/test_h3_tp_adaln.py
  • tests/models/minimax_h3/test_h3_trajectory_artifact.py
  • tests/models/minimax_h3/test_h3_weights.py
  • tests/models/minimax_h3/test_h3_ws2_processes.py
  • tests/models/minimax_h3/test_prepare_h3_weights.py
  • tests/runtime/test_dispatch.py
  • tests/validation/operators/test_ws1_gtest_gpu.py
  • tools/migration/README.md
  • tools/migration/layout.json
  • tools/validation/models/h3_bitwise_reuse.py
  • tools/validation/models/h3_block_diagnostic.py
  • tools/validation/models/h3_block_replay.py
  • tools/validation/models/h3_block_ulp_sweep.py
  • tools/validation/models/h3_candidate_prepare.py
  • tools/validation/models/h3_chain_replay.py
  • tools/validation/models/h3_dual_trajectory.py
  • tools/validation/models/h3_evidence.py
  • tools/validation/models/h3_evidence_integrity.py
  • tools/validation/models/h3_fingerprint.py
  • tools/validation/models/h3_first_step_diagnostic.py
  • tools/validation/models/h3_full_charts.py
  • tools/validation/models/h3_full_compare.py
  • tools/validation/models/h3_full_ensemble_rule.py
  • tools/validation/models/h3_full_generation.py
  • tools/validation/models/h3_full_model.py
  • tools/validation/models/h3_full_provider_spread.py
  • tools/validation/models/h3_full_speed.py
  • tools/validation/models/h3_full_transformer.py
  • tools/validation/models/h3_generation_adopt.py
  • tools/validation/models/h3_generation_compare.py
  • tools/validation/models/h3_mapper_vllm_report.py
  • tools/validation/models/h3_operator_trace.py
  • tools/validation/models/h3_parallel_run.py
  • tools/validation/models/h3_prior_art.py
  • tools/validation/models/h3_projection_bench.py
  • tools/validation/models/h3_projection_charts.py
  • tools/validation/models/h3_refiner_report.py
  • tools/validation/models/h3_runtime_report.py
  • tools/validation/models/h3_trajectory.py
  • tools/validation/models/h3_ws2_charts.py
  • tools/validation/models/h3_ws2_evidence.py
  • tools/validation/models/plot_h3_bitwise_reuse.py
  • tools/validation/models/plot_h3_block.py
  • tools/validation/models/plot_h3_evidence.py
  • tools/validation/models/plot_h3_prior_art.py
  • tools/weights/prepare_h3_weights.py
  • tools/weights/snapshot_h3_checkpoint.py

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

fusheng-ji and others added 21 commits October 22, 2026 22:54
…fixed-order Triton GEMM

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 650e2148c6f0e5dcdef136537e0e62f745020273)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit d099c0b)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit b41f868)
…il-closed test instead of a skip

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 74e5b83)
…l keys

Review finding (RL-Align#568): jointly permuting x and g changed dW/dbias because the token axis
was reduced in call order. All projection ops (audio in/out, text context, Q/K/V) now take an
optional logical_keys [T,2|3] (negative first column = padding); rows are reduced in ascending
key order with padding dropped, active keys must be unique. Key format follows RL-Align#562.
Adds the reviewer's repro plus permutation/padding tests for every row and Q/K/V.

Co-authored-by: Yitao Wang <75578057+walker-ai@users.noreply.github.com>
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit d2941f0)
…ready ordered rows

Follows the canonical-row design of RL-Align#562: the Q/K/V node of the block graph supplies
(batch row, position) keys so its dW is reduced in logical order, and rows that already arrive in
canonical order are reduced in place (same bytes, no gather of x and g).

Co-authored-by: Yitao Wang <75578057+walker-ai@users.noreply.github.com>
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 0da0583)
…block 0 node-by-node and 50-block/generation gates

Squashes the one-block branch (its row-by-row history: timestep sinusoid, RMSNorm, AdaLN rows,
sequence/tensor parallel norm rows, final AdaLN, one block, 50-block qualification) onto the current
test-h3 so the pull request carries a reviewable, signed history. RFC RL-Align#420.

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
…pull request

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit eaba5efe3df971ea9d1a969f53e48f09e09ed176)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 7da0574)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit b45190d08fc033c7e63ad821d3918eb32dd454f6)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit b5536d6)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit ad1925045b522772bf56f8468b23cca47f04156b)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit f9041e8)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit b44540e)
…ody)

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit eab901b)
…g provider, LoRA gate and CPS transition

RFC RL-Align#420 rows h3_runtime_modes, h3_ablation_overlay, diffusers_runtime_adapter_h3,
h3_training_provider and h3_lora_gradient_gate, plus the layout-invariant CPS transition
the training provider uses. full_model_execution gains native_boundaries so a run can keep
selected boundary modules on provider arithmetic (ablation).

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 65d7fff)
… weight loader, tests, doc

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit d12a6bb26566fae58a309e76916af9aae767d487)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit b316869)
…ith H100 evidence

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 0734a32ee0c427790a244c7f83e826ba9fe66393)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit c2c2270)
JSON and figure: runtime modes, LoRA gradients against FP64, CPS transition against the
scheduler formula and verl-omni, and the 33B model under off / strict / audit / ablations.

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 3f0bbe6)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 1e3a2ea)
… and lint

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit d9b0c91)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 81515ae)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 67af796)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 2c08c25)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 58b724b)
…age import

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit e452447)
….path

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
…de collective, 2-node H100 evidence

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 7f1296a970efb0cfcebd9300ff92551de08cf311)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit d56c391)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 33cbcd6)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 5f4e34c)
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit d086b5c)
…hard leaves

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 5ae9f5e)
RFC RL-Align#420 rows h3_checkpoint_mapper (Diffusers <-> vLLM-Omni names and layouts, all 638 tensors,
bitwise round trip, fail-closed on unmapped names) and vllm_runtime_adapter_h3 (strict
fixed-order kernels behind qkv_proj / out_proj / fc1 / fc2, with read-back).

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit 7b08b63)
…mni adapter

Real checkpoint: 638 tensors map and round trip bitwise; fused qkv equals separate Q/K/V, fc1 halves,
FP64 error and time per projection against torch.

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
(cherry picked from commit b517d13)
@fusheng-ji
fusheng-ji force-pushed the feat/h3-checkpoint-mapper-vllm branch from 40569fe to a6c4f17 Compare October 22, 2026 21:04
… block and time the full model

CandidateOps attention=auto uses H3FullAttentionOp when the strict _H3_C extension is built (bounded
workspace, same RL-Align#240 arithmetic) and the interim DeterministicAttentionOp otherwise; h3_full requires
it, interim forces the old op. tools/validation/models/h3_full_speed.py times one full step.

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
fusheng-ji added a commit to fusheng-ji/RL-Kernel that referenced this pull request Oct 23, 2026
…#567 RL-Align#568 RL-Align#570 RL-Align#571 RL-Align#574 RL-Align#575

Test summaries (tests.json), runner outputs and figures measured on NVIDIA B200 (sm100),
driver 580, CUDA 13.0, torch 2.13.0+cu130, MiniMax-H3@42ed227, clean trees at the PR heads
eab901b, 3cf51bf, 6de320d, eb7840b, af3dcae and 4f7c5d1. Figures use B200 axis labels.
No host names, paths or scheduler identifiers.

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
fusheng-ji added a commit to fusheng-ji/RL-Kernel that referenced this pull request Oct 23, 2026
…jectory diag summary

- h3-fingerprint-trace-trajectory-h100/tests.json (77 passed, eab901b)
- environment.json for RL-Align#574/RL-Align#575 H100 adapter reproducibility pins
- dual_trajectory_diag_summary.json (H100/B200 diag strict 0/16 on seeds 11/22/33)

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
fusheng-ji added a commit to fusheng-ji/RL-Kernel that referenced this pull request Oct 23, 2026
…with the H100-pinned vllm-omni and verl-omni

Same heads (af3dcae, 4f7c5d1), with vllm-omni 12e92800 and verl-omni efb9dc7f as recorded in the H100
environment files, replacing the first B200 run that used newer checkouts. Test summaries record the
dependency revisions.

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
@Flink-ddd Flink-ddd added platform: cuda Specific optimizations or bugs in NVIDIA graphics cards (such as FlashInfer, TMA optimizations) new-model MiniMax-H3 WS1 labels Oct 23, 2026
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
…pper-vllm

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

MiniMax-H3 new-model platform: cuda Specific optimizations or bugs in NVIDIA graphics cards (such as FlashInfer, TMA optimizations) WS1

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants