Skip to content

[None][feat] Port 13 AutoDeploy custom models to sharding IR + opt them in via registry - #14778

Merged
greg-kwasniewski1 merged 26 commits into
NVIDIA:mainfrom
nv-auto-deploy:gk/sharding-ir-default-flip
Jun 9, 2026
Merged

[None][feat] Port 13 AutoDeploy custom models to sharding IR + opt them in via registry#14778
greg-kwasniewski1 merged 26 commits into
NVIDIA:mainfrom
nv-auto-deploy:gk/sharding-ir-default-flip

Conversation

@greg-kwasniewski1

@greg-kwasniewski1 greg-kwasniewski1 commented May 30, 2026

Copy link
Copy Markdown
Collaborator

Summary

Ports 13 AutoDeploy custom modeling files (tensorrt_llm/_torch/auto_deploy/models/custom/modeling_*.py) to use sharding IR, validated by the offline equivalence test introduced in #13963. Adds enable_sharder_ir.yaml to 70 model_registry entries so they actually exercise apply_sharding_hints at runtime — same opt-in pattern PR #13478 used for its 4 families.

This is scope-restricted: the default sharding pipeline in default.yaml stays on legacy (detect_sharding); the flip to apply_sharding_hints as default is deferred to a follow-up PR (see Future work).

Ported models (13)

Family File Architecture
Dense modeling_gemma.py Gemma 1 — MHA + SwiGLU
Dense modeling_mistral.py Mistral — GQA + SwiGLU + sliding window
Dense modeling_granite.py Granite — GQA + SwiGLU + scaling multipliers
Dense modeling_hunyuan_dense.py HunYuan Dense V1 — GQA + per-head QK norm (post-RoPE)
Dense modeling_seed_oss.py Seed-OSS — GQA + SwiGLU
Dense modeling_gemma2.py Gemma 2 — sliding window + attn/final logit softcap
Dense modeling_cohere.py Cohere — parallel attn+MLP residual; LayerNorm; interleaved RoPE
Dense modeling_exaone.py EXAONE 3.5 — non-standard naming; bundled config
Dense modeling_llama3.py Llama 3 (3, 3.1, 3.2, 3.3) — GQA + SwiGLU
MoE modeling_deepseek_v2.py DeepSeek-V2 — MLA + MoE w/ shared expert
MoE modeling_glm4_moe.py GLM4 MoE — GQA + partial RoPE + QK norm
MoE modeling_qwen3_moe.py Qwen3 MoE — GQA + per-head QK norm
MoE modeling_llama4.py Llama 4 — GQA + L2 QK norm + NoPE + BMM-style MoE

Also deletes modeling_llama3_ir.py — a stale sharding-IR variant that diverged from canonical modeling_llama3.py before the rope-handling fix landed; it raises KeyError: 'default' on current transformers (ROPE_INIT_FUNCTIONS["default"] no longer exists).

Changes

  • Modeling files: 13 ports applying the standard 5-edit recipe (op substitution → hint kwargs → all_reduce insertion → docstring update).
  • Skill update (.claude/skills/ad-sharding-ir-port/SKILL.md):
    • Affirmative-only instructions; no negative rules.
    • One-line module docstring + per-class Sharding strategy: blocks (no advocacy paragraph, no redundant from ... import custom_ops).
  • Existing 9 ports' docstrings: slimmed to match the new skill convention.
  • Stale file removed: modeling_llama3_ir.py.
  • Registry (examples/auto_deploy/model_registry/models.yaml): adds enable_sharder_ir.yaml to 70 entries whose config class maps to one of the 13 ported families. Skipped 13 entries flagged as multimodal.yaml or simple_shard_only.yaml.

Tests / validation

  • Per-port: offline equivalence test from [TRTLLM-13960][test] Offline equivalence test for sharding IR #13963 (pytest tests/unittest/auto_deploy/multigpu/transformations/library/test_sharding_ir_equivalence.py --sharding-ir-modeling-file <path>) passes 4/4 dist configs (tp-only / ep-only / tep / attn-dp) on every ported file. Re-validation sweep will run alongside CI.
  • Sabotage negative-control (SHARDING_IR_SABOTAGE=1) confirmed working on a representative model — it correctly flips PASS to FAIL when collectives are removed.

Deferred (out of scope; follow-up PRs)

  • 20 modeling files not yet ported (10 baseline-test framework issues like trust_remote_code configs / padding-idx tiny-config quirks / OTHER_FAIL; 3 structural blockers — starcoder2's attention TP shape, olmo3's flat-projection RMSNorm under TP, gpt_oss's per-head sinks parameter; 5 MoE+multimodal explicitly out of scope per scope decision; 2 baseline OTHER_FAIL to investigate separately).
  • Default-flip in default.yaml and the new enable_legacy_sharding.yaml override: realized that flipping the default would regress ~30+ registry entries that map to non-IR-ported modeling files (Phi-4, Qwen2.5, etc.). Deferred until either (a) more models are IR-ported, or (b) the legacy override is wired in everywhere needed.

Risk

Library-visible, low risk. Each ported file is exercised by an offline equivalence test that compares sharded vs unsharded outputs on tiny configs across four parallelism layouts. Multi-GPU AutoDeploy CI stages mandatory (see Test plan).

Test plan

  • Per-port offline equivalence (4/4 dist configs each) — passed pre-PR
  • Sabotage negative control — confirmed working
  • DGX_H100-4_GPUs-AutoDeploy-1 and DGX_B200-4_GPUs-AutoDeploy-1 CI stages green (triggered below)
  • Full PR CI green

Fixes #14642

Summary by CodeRabbit

Release Notes

  • New Features

    • Enhanced distributed model execution with sharding intermediate representation (IR) support across multiple model architectures (Gemma, Llama, Mistral, Qwen, and others).
  • Documentation

    • Updated model porting procedures and validation guidelines for sharding-enabled configurations.
    • Refined sharding strategy documentation for core model layers.
  • Chores

    • Updated model registry configurations to enable sharding-driven optimization.

Review Change Stack

Add explicit sharding-hint ops to the canonical Gemma modeling file:
- torch.ops.auto_deploy.torch_linear_simple for q/k/v/o and MLP projections,
  with tp_mode (colwise / rowwise), tp_min_local_shape=head_dim on Q/K/V
  (GQA-safe), and layer_type ("mha" / "mlp").
- torch.ops.auto_deploy.view (tp_scaled_dim=2, layer_type="mha") on
  Q/K/V/attn_output reshapes whose head-count dim scales with TP.
- torch.ops.auto_deploy.all_reduce after the rowwise o_proj and MLP down_proj.

Model logic is untouched: Gemma's (1+weight) RMSNorm load hook, the
embedding sqrt(hidden_size) normalization, the explicit attention_mask
path with is_causal=False, and the parameter / module hierarchy all
remain identical to the legacy file.

Validated via the offline equivalence test from NVIDIA#13963 on a tiny 4-layer
Gemma config across tp-only / ep-only / tep / attn-dp parallelism configs.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
Add explicit sharding-hint ops to the canonical Mistral modeling file:
- torch.ops.auto_deploy.torch_linear_simple for q/k/v/o and MLP projections,
  with tp_mode (colwise / rowwise), tp_min_local_shape=head_dim on Q/K/V
  (GQA-safe), and layer_type ("mha" / "mlp").
- torch.ops.auto_deploy.view (tp_scaled_dim=2, layer_type="mha") on
  Q/K/V/attn_output reshapes whose head-count dim scales with TP.
- torch.ops.auto_deploy.all_reduce after the rowwise o_proj and MLP down_proj.

Model logic is untouched: sliding-window attention, is_causal=True
torch_attention call, parameter / module hierarchy, RMSNorm semantics
all remain identical to the legacy file.

Validated via the offline equivalence test from NVIDIA#13963 on a tiny 4-layer
Mistral config across tp-only / ep-only / tep / attn-dp parallelism configs.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
Add explicit sharding-hint ops to the canonical Granite modeling file:
- torch.ops.auto_deploy.torch_linear_simple for q/k/v/o and MLP projections,
  with tp_mode (colwise / rowwise), tp_min_local_shape=head_dim on Q/K/V
  (GQA-safe), and layer_type ("mha" / "mlp").
- torch.ops.auto_deploy.view (tp_scaled_dim=2, layer_type="mha") on
  Q/K/V/attn_output reshapes whose head-count dim scales with TP.
- torch.ops.auto_deploy.all_reduce after the rowwise o_proj and MLP down_proj.

Model logic is untouched: Granite's embedding_multiplier, residual_multiplier,
attention_multiplier (used as the attention scaling kwarg), and logits_scaling
are all preserved.

Validated via the offline equivalence test from NVIDIA#13963 on a tiny 4-layer
Granite config across tp-only / ep-only / tep / attn-dp parallelism configs.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
Add explicit sharding-hint ops to the canonical HunYuan Dense V1 modeling file:
- torch.ops.auto_deploy.torch_linear_simple for q/k/v/o and MLP projections,
  with tp_mode (colwise / rowwise), tp_min_local_shape=head_dim on Q/K/V
  (GQA-safe), and layer_type ('mha' / 'mlp').
- torch.ops.auto_deploy.view (tp_scaled_dim=2, layer_type='mha') on
  Q/K/V/attn_output reshapes whose head-count dim scales with TP.
- torch.ops.auto_deploy.all_reduce after the rowwise o_proj and MLP down_proj.

Model logic is untouched: HunYuan's QK-normalization (RMSNorm on Q/K applied
after RoPE), Dynamic NTK-Alpha RoPE scaling, and SiLU-gated MLP are preserved.

Validated via the offline equivalence test from NVIDIA#13963 on a tiny 4-layer
HunYuan Dense config across tp-only / ep-only / tep / attn-dp parallelism
configs.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
Add explicit sharding-hint ops to the canonical Seed-OSS modeling file:
- torch.ops.auto_deploy.torch_linear_simple for q/k/v/o and MLP projections,
  with tp_mode (colwise / rowwise), tp_min_local_shape=head_dim on Q/K/V
  (GQA-safe), and layer_type ('mha' / 'mlp').
- torch.ops.auto_deploy.view (tp_scaled_dim=2, layer_type='mha') on
  Q/K/V/attn_output reshapes whose head-count dim scales with TP.
- torch.ops.auto_deploy.all_reduce after the rowwise o_proj and MLP down_proj.

Model logic (GQA semantics, attention_bias / attention_out_bias asymmetry,
standard RoPE, RMSNorm, residuals) is untouched.

Validated via the offline equivalence test from NVIDIA#13963 on a tiny 4-layer
Seed-OSS config across tp-only / ep-only / tep / attn-dp parallelism configs.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
Add explicit sharding-hint ops to the canonical Gemma 2 modeling file:
- torch.ops.auto_deploy.torch_linear_simple for q/k/v/o and MLP projections,
  with tp_mode (colwise / rowwise), tp_min_local_shape=head_dim on Q/K/V
  (GQA-safe), and layer_type ('mha' / 'mlp').
- torch.ops.auto_deploy.view (tp_scaled_dim=2, layer_type='mha') on
  Q/K/V/attn_output reshapes whose head-count dim scales with TP.
- torch.ops.auto_deploy.all_reduce after the rowwise o_proj and MLP down_proj.

Model logic is untouched: Gemma 2's (1+weight) RMSNorm scaling, 4 layer norms
per decoder layer, attention logit softcapping, alternating sliding window /
full attention, custom query_pre_attn_scalar attention scaling, embedding
sqrt(hidden_size) normalization, and final logit softcapping are all preserved.

Validated via the offline equivalence test from NVIDIA#13963 on a tiny 4-layer
Gemma 2 config across tp-only / ep-only / tep / attn-dp parallelism configs.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
Add explicit sharding-hint ops to the canonical Cohere/Cohere2 modeling file:
- torch.ops.auto_deploy.torch_linear_simple for q/k/v/o and MLP projections,
  with tp_mode (colwise / rowwise), tp_min_local_shape=head_dim on Q/K/V
  (GQA-safe), and layer_type ('mha' / 'mlp').
- torch.ops.auto_deploy.view (tp_scaled_dim=2, layer_type='mha') on
  Q/K/V/attn_output reshapes whose head-count dim scales with TP.
- torch.ops.auto_deploy.all_reduce after the rowwise o_proj and MLP down_proj.

Model logic (parallel attention + MLP pattern, CohereLayerNorm, interleaved
RoPE via torch_rope_with_qk_interleaving, Cohere2 sliding window / conditional
RoPE, optional CohereLayerNorm-based Q/K-norm applied before RoPE on the
per-head head_dim axis) is untouched. Q/K-norm weights live on head_dim, which
is not a TP-sharded dim, so they remain replicated and require no hints.

Validated via the offline equivalence test from NVIDIA#13963 on a tiny 4-layer
Cohere config across tp-only / ep-only / tep / attn-dp parallelism configs.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
Add explicit sharding-hint ops to the canonical EXAONE modeling file:
- torch.ops.auto_deploy.torch_linear_simple for q/k/v/out and MLP projections
  (c_fc_0 / c_fc_1 / c_proj), with tp_mode (colwise / rowwise),
  tp_min_local_shape=head_dim on Q/K/V (GQA-safe), and layer_type
  ('mha' / 'mlp').
- torch.ops.auto_deploy.view (tp_scaled_dim=2, layer_type='mha') on
  Q/K/V/attn_output reshapes whose head-count dim scales with TP.
- torch.ops.auto_deploy.all_reduce after the rowwise out_proj and MLP c_proj.

Model logic (EXAONE-specific naming, llama3-style RoPE scaling, bundled
ExaoneConfig, ExaoneAttentionBlock checkpoint-key wrapper) is untouched.

Validated via the offline equivalence test from NVIDIA#13963 on a tiny 4-layer
EXAONE config across tp-only / ep-only / tep / attn-dp parallelism configs.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
Add explicit sharding-hint ops to the canonical Llama 3 modeling file:
- torch.ops.auto_deploy.torch_linear_simple for q/k/v/o and MLP projections,
  with tp_mode (colwise / rowwise), tp_min_local_shape=head_dim on Q/K/V
  (GQA-safe), and layer_type ('mha' / 'mlp').
- torch.ops.auto_deploy.view (tp_scaled_dim=2, layer_type='mha') on
  Q/K/V/attn_output reshapes whose head-count dim scales with TP.
- torch.ops.auto_deploy.all_reduce after the rowwise o_proj and MLP down_proj.

Model logic (Llama 3 / 3.1 / 3.2 / 3.3 GQA, SwiGLU, RMSNorm, RoPE with
llama3-style scaling via init_rope_inv_freq) is untouched.

Validated via the offline equivalence test from NVIDIA#13963 on a tiny 4-layer
Llama 3 config across tp-only / ep-only / tep / attn-dp parallelism configs.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
modeling_llama3_ir.py was an earlier sharding-IR variant that diverged from
the canonical modeling_llama3.py before a rope-handling fix landed (see commit
that introduced _rope_utils.init_rope_inv_freq). The _ir variant indexes
ROPE_INIT_FUNCTIONS["default"] directly, but recent transformers versions no
longer have the "default" key (valid keys: dynamic / linear / llama3 /
longrope / proportional / yarn), so loading the model raises
`KeyError: 'default'`.

Since the canonical modeling_llama3.py is now itself sharding-IR-aware
(previous commit) and routes RoPE init through the version-safe
init_rope_inv_freq helper, the _ir variant is redundant and broken. Confirmed
no in-repo importers (grep against tensorrt_llm/, tests/, examples/).

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
…ant custom_ops import

Now that sharding IR is the AutoDeploy default, the skill no longer needs to advocate for it in every ported file. Update the allowlist (Step 0 / A4) and self-audit table (Step 12) to require a single-line module-level header noting the file uses sharding IR, per-class 'Sharding strategy:' blocks on MLP/Attention/MoE etc., and NO 'Shardable custom ops used:' trailer.

Also drop the prior A4 'add custom_ops side-effect import' rule. The line 'from ... import custom_ops  # noqa: F401' is redundant: torch.ops.auto_deploy.* is already registered by importing the tensorrt_llm._torch.auto_deploy package, which any test or runtime path does before loading a modeling file. New ports must not add it (F8). Older reference models still carry the redundant import and the verbose docstring; do not replicate that pattern.

Step 2 is rewritten to explicitly say 'do NOT add the side-effect import'.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
…instructions

Skills should tell the agent what TO do, not what NOT to do. The previous commit (2e7d34b) used negative instructions ('do not add ...') and introduced an F8 row in the self-audit table for the redundant custom_ops import. If the allowlist only names allowed changes, the agent never adds anything outside it — no need for a 'do not add' counterweight.

- Strips negative phrasing from A4 (docstring rule). A4 now lists only what to add: a single-line module header + per-class Sharding strategy blocks.

- Removes the old Step 2 ('Do NOT add a custom_ops side-effect import') entirely; remaining steps renumbered down by one (Step 11 was Step 12, etc.). Cross-references in body and validation checklist updated.

- Drops F8 from the self-audit table. A4 description trimmed to the affirmative form.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
…ted files

Match the convention now codified in the ad-sharding-ir-port skill (commit 2baa14b): one-line module-level docstring header '"""<Model> model (sharding IR).' followed by the original source-of-truth / HF link block; per-class 'Sharding strategy:' blocks already in place.

Removes from the 9 ported modeling files:

- The 6-line 'This is a sharding-aware rewrite ... deterministic, node-local sharding' paragraph that advocated for sharding IR.

- The 4-line 'Shardable custom ops used:' trailer.

- The 'from ... import custom_ops  # noqa: F401' side-effect import line, which is redundant: torch.ops.auto_deploy.* is already registered by importing the tensorrt_llm._torch.auto_deploy package, which any test or runtime path does before loading a modeling file.

Net effect: -117 lines, no semantic change. Equivalence test re-confirmed on modeling_gemma.py (tp-only) after the slim.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
Add explicit sharding-hint ops to the canonical DeepSeek-V2 modeling file:
- torch.ops.auto_deploy.torch_linear_simple for q_a/q_b/q, kv_a, o_proj,
  MLP gate/up/down, and shared-expert MLP, with tp_mode (none / colwise /
  rowwise) and layer_type ('mla' / 'mlp' / 'moe').
- torch.ops.auto_deploy.view (tp_scaled_dim=2, layer_type='mla') on the
  Q reshape and post-attention output reshape whose head-count dim scales
  with TP.
- torch_mla called with enable_sharding=True, layer_type='mla' so
  _apply_hint_mla shards kv_b_proj.weight column-wise per head.
- torch.ops.auto_deploy.all_reduce after rowwise o_proj (layer_type='mla')
  and a single all_reduce after the (routed + shared) MoE merge point
  (layer_type='moe'). Shared expert MLP constructed with
  add_all_reduce=False, layer_type='moe' so its closing all_reduce is
  deferred.
- torch_moe carries layer_type='moe'.

Model logic (MLA semantics, softmax-based router gate, RMSNorm, residuals)
is untouched.

Validated via the offline equivalence test from NVIDIA#13963 on a tiny 4-layer
DeepSeek-V2 config across tp-only / ep-only / tep / attn-dp parallelism
configs.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
Add explicit sharding-hint ops to the canonical GLM4 MoE modeling file:
- torch.ops.auto_deploy.torch_linear_simple for q/k/v/o, MLP gate/up/down
  and shared-expert MLP, with tp_mode (colwise / rowwise),
  tp_min_local_shape=head_dim on K/V (GQA-safe), and layer_type
  ('mha' / 'mlp' / 'moe').
- torch.ops.auto_deploy.view (tp_scaled_dim=2, layer_type='mha') on
  Q/K/V/attn_output reshapes whose head-count dim scales with TP.
- torch.ops.auto_deploy.all_reduce after rowwise attn o_proj (layer_type=
  'mha') and a single all_reduce after the (routed + shared) MoE merge
  point (layer_type='moe'). Shared expert MLP constructed with
  add_all_reduce=False, layer_type='moe' so its closing all_reduce is
  deferred.
- torch_moe carries layer_type='moe'. The fused noaux_tc_op router gate
  is TP-replicated and kept verbatim.

Model logic (GQA + partial RoPE, QK norm, RMSNorm, residuals) is
untouched.

Validated via the offline equivalence test from NVIDIA#13963 on a tiny 4-layer
GLM4 MoE config across tp-only / ep-only / tep / attn-dp parallelism
configs.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
Add explicit sharding-hint ops to the canonical Qwen3 MoE modeling file:
- torch.ops.auto_deploy.torch_linear_simple for q/k/v/o and dense MLP
  gate/up/down, with tp_mode (colwise / rowwise),
  tp_min_local_shape=head_dim on K/V (GQA-safe), and layer_type
  ('mha' / 'mlp').
- torch.ops.auto_deploy.view (tp_scaled_dim=2, layer_type='mha') on
  Q/K/V/attn_output reshapes whose head-count dim scales with TP.
- torch.ops.auto_deploy.all_reduce after rowwise attn o_proj
  (layer_type='mha'), after rowwise MLP down (layer_type='mlp'), and
  after torch_moe (layer_type='moe'). No shared expert in Qwen3 MoE, so
  a single MoE all_reduce suffices.
- torch_moe carries layer_type='moe'. The plain nn.Linear router gate is
  TP-replicated and kept verbatim.

Model logic (GQA, per-head Q/K RMSNorm, RoPE, residuals) is untouched.

Validated via the offline equivalence test from NVIDIA#13963 on a tiny 4-layer
Qwen3 MoE config across tp-only / ep-only / tep / attn-dp parallelism
configs.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
Add explicit sharding-hint ops to the canonical Llama 4 modeling file:
- torch.ops.auto_deploy.torch_linear_simple for q/k/v/o and MLP
  gate/up/down (including the shared expert), with tp_mode (colwise /
  rowwise), tp_min_local_shape=head_dim on K/V (GQA-safe), and layer_type
  ('mha' / 'mlp' / 'moe').
- torch.ops.auto_deploy.view (tp_scaled_dim=2, layer_type='mha') on
  Q/K/V/attn_output reshapes whose head-count dim scales with TP.
- torch.ops.auto_deploy.all_reduce after rowwise attn o_proj
  (layer_type='mha'), after rowwise MLP down on dense layers
  (layer_type='mlp'), and a single all_reduce after the (routed + shared)
  MoE merge point (layer_type='moe'). Shared expert MLP constructed with
  add_all_reduce=False, layer_type='moe' so its closing all_reduce is
  deferred.
- The routed MoE remains expressed as stacked-weight torch.bmm; the
  pattern_matcher stage rewrites it into torch_moe (which carries
  layer_type='moe' by default) before sharding runs. The sigmoid router
  is a plain nn.Linear and stays TP-replicated.

Model logic (GQA + complex RoPE, NoPE layers, L2 QK norm, attn
temperature tuning, residuals) is untouched.

Validated via the offline equivalence test from NVIDIA#13963 on a tiny 4-layer
Llama 4 config across tp-only / ep-only / tep / attn-dp parallelism
configs.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
…orted model families

Add 'enable_sharder_ir.yaml' to the yaml_extra of every model_registry/models.yaml entry whose config class maps to one of the 13 modeling files ported in this PR (llama3, mistral, granite, hunyuan_dense, seed_oss, gemma2, cohere, exaone, gemma, deepseek_v2, glm4_moe, qwen3_moe, llama4).

Without this, those entries continue to run through the legacy detect_sharding pipeline. detect_sharding does recognize torch_linear_simple via is_any_lin_op, so it still shards correctly, but the explicit sharding-hint kwargs on the IR-ported ops are dormant metadata under that path. This commit makes the registry actually exercise the apply_sharding_hints transform on those models, matching the opt-in pattern PR NVIDIA#13478 used for the first four families (qwen3, qwen3_5_moe, deepseek, nemotron_h).

70 entries updated. Excluded by design (still on legacy via no override):

- 'multimodal.yaml' entries: vision/audio variants take a separate path.

- 'simple_shard_only.yaml' entries: Llama-3_1-Nemotron-51B, -Ultra-253B (and -FP8), Qwen3-30B-A3B, Qwen3-235B-A22B - explicit opt-outs of the regular sharding pass.

Refs NVIDIA#14642

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
@greg-kwasniewski1

Copy link
Copy Markdown
Collaborator Author

/bot run --extra-stage "DGX_B200-4_GPUs-AutoDeploy-1, DGX_H100-4_GPUs-AutoDeploy-1"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #51184 [ run ] triggered by Bot. Commit: b368c99 Link to invocation

@coderabbitai

coderabbitai Bot commented May 30, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

This PR transitions AutoDeploy from legacy PyTorch execution to sharding-IR across 13 text-only models by replacing direct linear/view operations with torch.ops.auto_deploy custom ops, updating model registry configuration to enable sharding IR, consolidating Llama3 to a canonical implementation, and refining porting procedure documentation to reflect the new delta contract.

Changes

AutoDeploy Sharding IR Transition

Layer / File(s) Summary
Porting guide and allowlist documentation
.claude/skills/ad-sharding-ir-port/SKILL.md
Removed custom_ops side-effect import instruction, renamed step 11b to 10b, refined A4 allowlist to docstring-only changes, and aligned failure-handling and validation procedures with new step numbering.
Model registry configuration for sharding IR enablement
examples/auto_deploy/model_registry/models.yaml
Added enable_sharder_ir.yaml to yaml_extra arrays for 30+ model entries across base and sprint lists, enabling the sharding-IR pipeline for Llama, Gemma, Mistral, Granite, Cohere, DeepSeek, and other families.
Cohere model sharding IR port
tensorrt_llm/_torch/auto_deploy/models/custom/modeling_cohere.py
Replaced PyTorch linear/reshape with torch_linear_simple and view custom ops for MLP and attention Q/K/V/O projections; added all_reduce after down-projections; updated docstrings with sharding strategy.
EXAONE model sharding IR port
tensorrt_llm/_torch/auto_deploy/models/custom/modeling_exaone.py
Rewrote MLP and attention forward paths using torch_linear_simple with explicit tp_mode parameters; added view reshapes with tp_scaled_dim for head dimensions; integrated all_reduce operations; documented sharding strategy.
Gemma model sharding IR port
tensorrt_llm/_torch/auto_deploy/models/custom/modeling_gemma.py
Replaced MLP gate/up/down with torch_linear_simple ops and all_reduce; changed Q/K/V/O projections and reshapes to torch_linear_simple and auto_deploy.view custom ops; added sharding IR and per-layer strategy documentation.
Gemma2 model sharding IR port
tensorrt_llm/_torch/auto_deploy/models/custom/modeling_gemma2.py
Replaced MLP forward with torch_linear_simple projections and all_reduce; changed attention Q/K/V/O to custom ops with GQA tp_min_local_shape hints and tp_scaled_dim reshaping; updated docstrings with sharding strategy.
Granite model sharding IR port
tensorrt_llm/_torch/auto_deploy/models/custom/modeling_granite.py
Replaced MLP computations with torch_linear_simple and all_reduce; changed attention Q/K/V/O projections to custom ops with colwise/rowwise sharding modes and head-dimension scaling; added sharding strategy documentation.
HunYuan Dense model sharding IR port
tensorrt_llm/_torch/auto_deploy/models/custom/modeling_hunyuan_dense.py
Replaced MLP with torch_linear_simple and in-place activation fusion; changed attention Q/K/V/O to custom ops with tensor-parallel modes and view reshaping for multi-head layouts; updated module documentation and Q/K normalization notes.
Mistral model sharding IR port
tensorrt_llm/_torch/auto_deploy/models/custom/modeling_mistral.py
Replaced MLP gate/up/down with torch_linear_simple and all_reduce; changed attention Q/K/V/O to custom ops with tp_min_local_shape GQA hints and BSND reshaping; updated module and class docstrings with sharding IR context.
Seed-OSS model sharding IR port
tensorrt_llm/_torch/auto_deploy/models/custom/modeling_seed_oss.py
Replaced MLP with colwise/rowwise torch_linear_simple and all_reduce; changed Q/K/V/O projections to custom ops with GQA-aware tp_min_local_shape and head-dimension scaling; updated docstrings with sharding strategy.
Llama3 canonical promotion and legacy consolidation
tensorrt_llm/_torch/auto_deploy/models/custom/modeling_llama3.py, tensorrt_llm/_torch/auto_deploy/models/custom/modeling_llama3_ir.py (deleted)
Refactored modeling_llama3.py to use torch.ops.auto_deploy custom ops throughout MLP and attention, replacing direct linear/view with torch_linear_simple and auto_deploy.view; added sharding strategy documentation; deleted separate modeling_llama3_ir.py file (445 lines).
DeepSeek V2 MoE model sharding IR update
tensorrt_llm/_torch/auto_deploy/models/custom/modeling_deepseek_v2.py
Added add_all_reduce and layer_type parameters to DeepSeekV2MLP for MoE-aware deferral; changed DeepSeekV2MoE to construct shared expert with deferred reduction and apply single merge-point all_reduce(..., layer_type="moe"); updated attention to use custom ops for Q/KV/O with MLA-specific sharding hints.
GLM4 MoE model sharding IR update
tensorrt_llm/_torch/auto_deploy/models/custom/modeling_glm4_moe.py
Extended Glm4MoeMLP with add_all_reduce and layer_type parameters; changed Glm4MoeMoE to construct shared expert with deferred reduction and apply single merge-point all_reduce(..., layer_type="moe"); updated attention Q/K/V/O to custom ops with TP scaling and GQA-safe tp_min_local_shape.
Llama4 MoE model sharding IR update
tensorrt_llm/_torch/auto_deploy/models/custom/modeling_llama4.py
Added add_all_reduce and layer_type parameters to Llama4MLP; updated Llama4MoE to construct shared expert with deferred reduction and apply single merge-point all_reduce(..., layer_type="moe"); changed attention Q/K/V/O to custom ops with TP-scaled head dimensions.
Qwen3 MoE model sharding IR update
tensorrt_llm/_torch/auto_deploy/models/custom/modeling_qwen3_moe.py
Updated Qwen3MoeMLP to use torch_linear_simple and all_reduce(layer_type="mlp"); added post-expert all_reduce(layer_type="moe") in Qwen3MoeSparseMoeBlock; changed attention Q/K/V/O to custom ops with TP scaling and layout-preserving BSND reshaping.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Suggested reviewers

  • MrGeva
  • suyoggupta
  • bmarimuthu-nv
  • yuxianq
  • govind-ramnarayan
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title '[None][feat] Port 13 AutoDeploy custom models to sharding IR + opt them in via registry' is specific and clearly summarizes the main objective of porting 13 models to sharding IR and updating the registry.
Linked Issues check ✅ Passed The PR ports 13 of the 28 text-only models mentioned in #14642 (Tier A and Tier B combined), validates via offline equivalence tests (4/4 dist configs passed), and updates the registry. However, it defers the default.yaml flip, legacy override creation, and porting of remaining 20 models to follow-up PRs.
Out of Scope Changes check ✅ Passed All changes align with the stated scope: 13 model ports using the standard 5-edit recipe, skill update, registry additions, and deletion of stale modeling_llama3_ir.py. The scope-restricted design intentionally defers default.yaml flip and remaining models.
Description check ✅ Passed The PR description comprehensively covers the scope, changes, testing, and deferred work; follows standard PR documentation practices with clear sections.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@examples/auto_deploy/model_registry/models.yaml`:
- Line 6: The models.yaml's yaml_extra lists include enable_sharder_ir.yaml but
several dense-family model entries (the multimodal/simple_shard_only groups and
the default_ws_2, default_ws_4, default_ws_8 blocks) are missing that include;
verify whether the omission is intentional and if not add
"enable_sharder_ir.yaml" to the yaml_extra array for the specific model entries
named (default_ws_2 entries: nvidia/NVIDIA-Nemotron-Nano-12B-v2,
nvidia/Nemotron-H-8B-Base-8K, nvidia/Nemotron-H-8B-Reasoning-128K; default_ws_4
entries: neuralmagic/Mixtral-8x7B-Instruct-v0.1-FP8,
nvidia/NVIDIA-Nemotron-Nano-31B-A3-v3, nvidia/Nemotron-H-47B-Reasoning-128K,
nvidia/OpenReasoning-Nemotron-32B; default_ws_8 entry:
mistralai/Mixtral-8x22B-Instruct-v0.1) by adding the filename to each entry's
yaml_extra list to match the other configs (or document why these remain
excluded).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 9618c3e5-3d2d-4a4c-913e-3752b3ef379c

📥 Commits

Reviewing files that changed from the base of the PR and between f20858c and b368c99.

📒 Files selected for processing (16)
  • .claude/skills/ad-sharding-ir-port/SKILL.md
  • examples/auto_deploy/model_registry/models.yaml
  • tensorrt_llm/_torch/auto_deploy/models/custom/modeling_cohere.py
  • tensorrt_llm/_torch/auto_deploy/models/custom/modeling_deepseek_v2.py
  • tensorrt_llm/_torch/auto_deploy/models/custom/modeling_exaone.py
  • tensorrt_llm/_torch/auto_deploy/models/custom/modeling_gemma.py
  • tensorrt_llm/_torch/auto_deploy/models/custom/modeling_gemma2.py
  • tensorrt_llm/_torch/auto_deploy/models/custom/modeling_glm4_moe.py
  • tensorrt_llm/_torch/auto_deploy/models/custom/modeling_granite.py
  • tensorrt_llm/_torch/auto_deploy/models/custom/modeling_hunyuan_dense.py
  • tensorrt_llm/_torch/auto_deploy/models/custom/modeling_llama3.py
  • tensorrt_llm/_torch/auto_deploy/models/custom/modeling_llama3_ir.py
  • tensorrt_llm/_torch/auto_deploy/models/custom/modeling_llama4.py
  • tensorrt_llm/_torch/auto_deploy/models/custom/modeling_mistral.py
  • tensorrt_llm/_torch/auto_deploy/models/custom/modeling_qwen3_moe.py
  • tensorrt_llm/_torch/auto_deploy/models/custom/modeling_seed_oss.py
💤 Files with no reviewable changes (1)
  • tensorrt_llm/_torch/auto_deploy/models/custom/modeling_llama3_ir.py

Comment thread examples/auto_deploy/model_registry/models.yaml Outdated
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #51184 [ run ] completed with state FAILURE. Commit: b368c99
/LLM/main/L0_MergeRequest_PR pipeline #40614 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@greg-kwasniewski1

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #51637 [ run ] triggered by Bot. Commit: 5c87c8a Link to invocation

Signed-off-by: Grzegorz Kwasniewski <213329731+greg-kwasniewski1@users.noreply.github.com>
@greg-kwasniewski1

Copy link
Copy Markdown
Collaborator Author

/bot run --extra-stage "DGX_B200-4_GPUs-AutoDeploy-1, DGX_H100-4_GPUs-AutoDeploy-1"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #51670 [ run ] triggered by Bot. Commit: 191b405 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #51637 [ run ] completed with state ABORTED. Commit: 5c87c8a

Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #51670 [ run ] completed with state SUCCESS. Commit: 191b405
/LLM/main/L0_MergeRequest_PR pipeline #41051 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@greg-kwasniewski1

Copy link
Copy Markdown
Collaborator Author

/bot run --extra-stage "DGX_B200-4_GPUs-AutoDeploy-1, DGX_H100-4_GPUs-AutoDeploy-1" --disable-fail-fast --post-merge

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #51846 [ run ] triggered by Bot. Commit: 191b405 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #51846 [ run ] completed with state FAILURE. Commit: 191b405
/LLM/main/L0_MergeRequest_PR pipeline #41206 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

Link to invocation

…ng files

CI runs `pytest .../test_sharding_ir_equivalence.py` with no flags via
`test_unittests_v2[unittest/auto_deploy/multigpu/transformations]`. The
existing `sharding_ir_modeling_file` fixture skipped the test when
`--sharding-ir-modeling-file` was absent, so CI silently exercised zero
modeling files -- the test has been dead-code on CI since it landed.

Switch the conftest to materialize parametrize off CLI options:

- `--sharding-ir-modeling-file` supplied: single-file mode (legacy debug
  invocation, unchanged behavior). Dist config defaults to `tep` (4 ranks).
- both flags absent: auto-discovery mode. Parametrize over every
  `modeling_*.py` in `tensorrt_llm/_torch/auto_deploy/models/custom/`
  (37 files today) at the cheapest dist config (`tp-only`, 2 ranks).
- `--sharding-ir-dist-config` may pin a single config in either mode.

Test ids stay compact: `test_sharding_ir_equivalence[qwen3_next-tp-only]`
(modeling_id strips the `modeling_` prefix and `.py` suffix). Failure
localization is per-file with one grep.

Non-IR-marked modeling files pass as a no-op identity: `apply_sharding_hints`
iterates the graph, finds no `torch.ops.auto_deploy.all_reduce` markers and
no hint kwargs, leaves the graph untouched -- sharded == unsharded by
construction. So the 18 legacy files trivially pass; the 19 IR-marked
files exercise the full equivalence path. A hypothetical future regression
on any IR port fails immediately, with the modeling file path in the test id.

Cost: ~10-15 min on the H100-4_GPUs-AutoDeploy-1 stage at `tp-only` (2 ranks,
tiny configs). The full matrix (4 dist configs × 37 files) remains available
for explicit per-file debugging.

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
@greg-kwasniewski1

Copy link
Copy Markdown
Collaborator Author

/bot run --extra-stage "DGX_B200-4_GPUs-AutoDeploy-1, DGX_H100-4_GPUs-AutoDeploy-1" --disable-fail-fast --post-merge

Resolves conflict in examples/auto_deploy/model_registry/models.yaml.

Main commented out 10 of 11 large-model registry entries (DeepSeek-R1,
DeepSeek-Coder-V2, Qwen3-VL-8B, Qwen2-VL-72B, CodeLlama-70b,
Llama-3.2-90B-Vision, gpt-oss-120b, Llama-4-{Scout,Maverick},
Nemotron-Super-120B-{BF16-BF16KV,A12B}) with documented failure reasons
(OOM / timeout / IndexError NVIDIA#14681 / AttributeError / DistStoreError /
CC "Function Not Found"). Only DeepSeek-R1-0528 stays active.

Take main's version verbatim. Rationale:

- Main's gating reflects current runtime reality. Re-enabling entries
  that demonstrably fail in CI would regress everyone.
- Two entries (DeepSeek-Coder-V2, CodeLlama-70b) had `enable_sharder_ir.yaml`
  added by this PR; main's commented-out blocks drop that. The opt-in is
  moot while the entries are disabled, and NVIDIA#14786 deletes ALL 93
  `enable_sharder_ir.yaml` references anyway (the auto-detect dispatcher
  makes them redundant), so preserving them here would be churn that gets
  reverted.
- The single active entry (DeepSeek-R1-0528) is identical on both sides.

No other files conflict; rest of the merge auto-resolved.

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
@greg-kwasniewski1

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #52573 [ run ] triggered by Bot. Commit: 4c56fe8 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #52573 [ run ] completed with state SUCCESS. Commit: 4c56fe8
/LLM/main/L0_MergeRequest_PR pipeline #41855 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@greg-kwasniewski1

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #52589 [ run ] triggered by Bot. Commit: 4c56fe8 Link to invocation

…r gate

Auto-discovery added in this PR parametrizes test_sharding_ir_equivalence
over every modeling_*.py. Of 17 failures, 5 fail in spec_from_modeling_file
(config class not discoverable / no *ForCausalLM registered), ~7 fail in
build_ir_model with tiny config (Padding_idx vs num_embeddings, int vs
list intermediate_size, etc.), and ~3 are legacy files with non-IR
auto_deploy ops where strip_sharding_hints schema-strips their hint kwargs
and spuriously mutates gm_sharded.

Two minimal edits handle all three:

1. Parent-process pre-flight: spec_from_modeling_file + build_ir_model
   on CPU before spawn. Convert config-resolution RuntimeError into
   pytest.skip (Cat A); convert
   TypeError/AttributeError/KeyError/ValueError/AssertionError from
   tiny-config instantiation into pytest.skip (Cat C). Per-rank GPU
   instantiation in worker stays authoritative.

2. Worker IR-marker gate after torch_export_to_gm: if no
   torch.ops.auto_deploy.all_reduce nodes, return early. gm_sharded stays
   an identity copy of gm_unsharded, comparison passes trivially. Matches
   conftest docstring: "Legacy (non-IR-marked) modeling files pass as a
   no-op identity (apply_sharding_hints finds no markers and leaves the
   graph unchanged, so sharded == unsharded by construction)".

_has_ir_markers is the in-test equivalent of the follow-up PR's
has_sharding_ir_markers; when that PR lands the auto-detect default
sharding pipeline, this gate becomes the same predicate that routes
legacy files to detect_sharding.

Local verification on 5xH100, world_size=2 tp-only:
  - 13 ported files: 13 PASSED, 0 FAILED.
  - 17 previously-failing: 5 PASSED, 12 SKIPPED, 0 FAILED.

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
@greg-kwasniewski1

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #52593 [ run ] triggered by Bot. Commit: b40ae73 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #52589 [ run ] completed with state ABORTED. Commit: 4c56fe8

Link to invocation

greg-kwasniewski1 added a commit to nv-auto-deploy/TensorRT-LLM that referenced this pull request Jun 7, 2026
…etect

Pre-resolves the NVIDIA#14778 dependency. Conflict resolution:

- examples/auto_deploy/model_registry/models.yaml: keep this PR's
  HEAD side. NVIDIA#14786 makes sharding IR the default + drops
  enable_sharder_ir.yaml opt-in references; NVIDIA#14778's per-entry
  opt-ins are obsoleted by this PR.

- tests/unittest/auto_deploy/multigpu/transformations/library/conftest.py:
  combine both PRs:
  * NVIDIA#14778's _discover_modeling_files() helper + pytest_generate_tests
    (auto-discovery + matrix parametrize) -- needed for the multigpu CI
    coverage on every modeling file.
  * NVIDIA#14786's sharding_ir_eagle_draft fixture -- on-demand Eagle draft
    test target, distinct from the auto-discovered file matrix.
  Drop NVIDIA#14786's stale sharding_ir_dist_config @pytest.fixture (now
  superseded by pytest_generate_tests parametrize on the same name).
  Restore `import pytest` lost by the import-block auto-merge.

Verified: pytest --collect-only collects 39 tests cleanly on the
merged conftest.

Signed-off-by: greg-kwasniewski1 <213329731+greg-kwasniewski1@users.noreply.github.com>
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #52593 [ run ] completed with state FAILURE. Commit: b40ae73
/LLM/main/L0_MergeRequest_PR pipeline #41875 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@greg-kwasniewski1

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #52752 [ run ] triggered by Bot. Commit: 9907a17 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #52752 [ run ] completed with state SUCCESS. Commit: 9907a17
/LLM/main/L0_MergeRequest_PR pipeline #42014 completed with status: 'SUCCESS'

CI Report

Link to invocation

@bmarimuthu-nv bmarimuthu-nv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks @greg-kwasniewski1 !

@greg-kwasniewski1
greg-kwasniewski1 merged commit 884520c into NVIDIA:main Jun 9, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature Request] Make sharding IR the AutoDeploy default; port remaining text-only custom models

3 participants