Skip to main content
skill CX Codex

nemo-mbridge-perf-hierarchical-context-parallel — Claude Code skill

Configures hierarchical context parallelism in Megatron-Bridge. Useful for scaling long-sequence model training when context length exceeds KV head counts.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add NVIDIA/skills --skill nemo-mbridge-perf-hierarchical-context-parallel -a claude-code
Open on GitHub

What nemo-mbridge-perf-hierarchical-context-parallel does

The skill provides an operational guide for configuring nested context-parallel process groups with cp_comm_type="a2a+p2p" and hierarchical_context_parallel_sizes. It maps arguments directly to Megatron-Core validation assertions and initialization routines.

Constraints are strict. Transformer Engine must be version 1.12.0 or newer. Megatron-Bridge only routes hierarchical groups through MPU process groups; setting use_decentralized_pg=True silently falls back to flat context parallelism without building nested groups.

The guide includes a 4-GPU smoke test command and log verification rules. A working setup outputs HIERARCHICAL_CONTEXT_PARALLEL_GROUPS during initialization; seeing only CONTEXT_PARALLEL_GROUP means the nested configuration did not activate.

What it helps with

  • configure nested a2a+p2p context-parallel groups in Megatron-Bridge
  • scale context parallelism beyond available KV heads
  • identify silent gradient failures caused by misconfigured CP
  • verify process group initialization in multi-GPU training logs

Example prompts for the agent

  • Configure hierarchical context parallelism in Megatron-Bridge for a 4-GPU run.
  • Check my distributed training config for errors with cp_comm_type set to a2a+p2p.
  • How do I verify in logs that hierarchical context parallel groups were created?

How to install nemo-mbridge-perf-hierarchical-context-parallel

1Skills CLI (Vercel)

npx skills add NVIDIA/skills --skill nemo-mbridge-perf-hierarchical-context-parallel -a claude-code

2Manually: put the files in place

~/.claude/skills/nemo-mbridge-perf-hierarchical-context-parallel/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/nemo-mbridge-perf-hierarchical-context-parallel/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about nemo-mbridge-perf-hierarchical-context-parallel

How to install nemo-mbridge-perf-hierarchical-context-parallel in Claude Code?

Run npx skills add NVIDIA/skills --skill nemo-mbridge-perf-hierarchical-context-parallel -a claude-code.

What does nemo-mbridge-perf-hierarchical-context-parallel do?

It guides the configuration of nested context parallelism in Megatron-Bridge using combined all-to-all and peer-to-peer communication.

What are the core requirements to run hierarchical CP?

You need Transformer Engine 1.12.0 or higher and use_decentralized_pg=False. The product of hierarchical_context_parallel_sizes must match context_parallel_size.

Source text

SKILL.md · Apache-2.0
---
name: nemo-mbridge-perf-hierarchical-context-parallel
description: Operational guide for enabling hierarchical context parallelism in Megatron-Bridge, including config knobs, code anchors, pitfalls, and verification.
license: Apache-2.0
when_to_use: Scaling context parallelism beyond KV heads, or investigating a commit that changed CP config and caused OOM or a regression; 'hierarchical_context_parallel_sizes', 'a2a+p2p', 'hierarchical CP', 'CP beyond KV heads', 'multi-level CP'.
---

# Hierarchical Context Parallel Skill

This skill covers hierarchical context parallelism: nested context-parallel process
groups used by `cp_comm_type="a2a+p2p"` and configured with
`hierarchical_context_parallel_sizes`.

For what hierarchical CP is, when to use it, and the decision tree
(`a2a+p2p` vs pure `a2a` vs `p2p`), see:

- @docs/training/hierarchical-context-parallel.md
- @skills/nemo-mbridge-perf-hierarchical-context-parallel/card.yaml

## Enablement

Minimal Bridge override:

```python
cfg.model.context_parallel_size = 4
cfg.model.cp_comm_type = "a2a+p2p"
cfg.model.hierarchical_context_parallel_sizes = [2, 2]
cfg.dist.use_decentralized_pg = False
```

Required constraints:

- `prod(hierarchical_context_parallel_sizes) == context_parallel_size`
- `seq_length % (2 * context_parallel_size) == 0`
- Transformer Engine `>= 1.12.0`

## Code Anchors

Upstream config and validation:

```45:54:3rdparty/Megatron-LM/megatron/core/model_parallel_config.py
context_parallel_size: int = 1
"""Splits network input along sequence dimension across GPU ranks."""

hierarchical_context_parallel_sizes: Optional[list[int]] = None
"""Degrees of the hierarchical context parallelism. Users should provide a list to specify 
   the sizes for different levels. Taking the a2a+p2p cp comm type as example, it contains
   groups of two levels, so the first value of the list indicates the group size of the a2a
   communication type, and the second value indicates the group size of the p2p communication
   type.
"""
```

```428:433:3rdparty/Megatron-LM/megatron/training/arguments.py
if args.hierarchical_context_parallel_sizes:
    from numpy import prod
    assert args.context_parallel_size == prod(args.hierarchical_context_parallel_sizes)
if "a2a+p2p" in args.cp_comm_type:
    assert args.hierarchical_context_parallel_sizes is not None, \
    "--hierarchical-context-parallel-sizes must be set when a2a+p2p is used in cp comm"
```

Bridge MPU path:

```613:648:src/megatron/bridge/training/initialize.py
parallel_state.initialize_model_parallel(
    ...
    context_parallel_size=model_config.context_parallel_size,
    hierarchical_context_parallel_sizes=model_config.hierarchical_context_parallel_sizes,
    ...
)
...
return ProcessGroupCollection.use_mpu_process_groups()
```

Bridge decentralized-PG path:

```503:524:src/megatron/bridge/training/initialize.py
pg_collection = ProcessGroupCollection(
    ...
    cp=cp_pg,
    tp_cp=tp_cp_pg,
    hcp=None,
    ep=ep_pg,
    ...
)
```

## Implementation Map

The code anchors above show the config declarations and argument validation.

### Validation (MCore)

`TransformerConfig.__post_init__` enforces that `a2a+p2p` requires HCP sizes and the product matches CP.

### Process group creation

`parallel_state.initialize_model_parallel` creates hierarchical CP sub-groups
when HCP sizes are provided via `create_hierarchical_groups`. Bridge currently
gets those groups through the MPU-backed `ProcessGroupCollection`.

### TE integration

`TEDotProductAttention` passes the hierarchical groups to Transformer Engine
when `a2a+p2p` is used. Requires **Transformer Engine >= 1.12.0**.

## Pitfalls

1. **Bridge HCP is MPU-only today**: If `use_decentralized_pg=True`, Bridge initializes flat CP groups and leaves HCP unset.
2. **No checked-in Bridge recipe** currently exercises HCP directly.
3. **Single-GPU load helpers** clear `hierarchical_context_parallel_sizes`.
4. **Silent broken training on old stacks**: If you use `a2a+p2p` without setting `hierarchical_context_parallel_sizes`, MCore now asserts. Older versions would silently disable CP communication, so each rank attended only to its local chunk and produced artificially high throughput with broken gradients.
5. **Product must match**: `prod(hierarchical_context_parallel_sizes)` must exactly equal `context_parallel_size`. A mismatch triggers an assertion.
6. **Verify in logs**: Look for the process group initialization output. You should see `HIERARCHICAL_CONTEXT_PARALLEL_GROUPS` being created. If you only see `CONTEXT_PARALLEL_GROUP`, HCP is not active.

## Verification

No dedicated Bridge end-to-end test exists yet for HCP (see @skills/nemo-mbridge-perf-hierarchical-context-parallel/card.yaml
`follow_up_validation`). Use the existing unit tests and log inspection instead.

Run the decentralized-PG unit test to confirm the flat-CP behavior is preserved:

```bash
uv run python -m pytest tests/unit_tests/training/test_decentralized_pg.py -q
```

For a manual smoke check, launch a 4-GPU run with a small recipe and
`cp_comm_type=a2a+p2p` plus `hierarchical_context_parallel_sizes=[2,2]`:

```bash
CUDA_VISIBLE_DEVICES=0,1,2,3 uv run python -m torch.distributed.run --nproc_per_node=4 \
  scripts/training/run_recipe.py \
  --recipe llama32_1b_pretrain_config \
  model.context_parallel_size=4 \
  model.cp_comm_type=a2a+p2p \
  "model.hierarchical_context_parallel_sizes=[2,2]" \
  train.train_iters=2
```

Success criteria:

- Logs show `HIERARCHICAL_CONTEXT_PARALLEL_GROUPS` being created
- Training completes at least one step without error
- If you only see `CONTEXT_PARALLEL_GROUP`, HCP is not active

© NVIDIA · Apache-2.0 · NVIDIA/skills

Similar skills

Everything for AI and ML →

From the same set178

nemo-mbridge-perf-moe-dispatcher-selection Picks between alltoall, DeepEP and HybridEP for MoE token dispatch based on your hardware, EP degree and optimization stage. CX Codex +1 1,800installs nemo-mbridge-perf-megatron-fsdp Configures Megatron FSDP in Megatron-Bridge to replace standard DDP, helping resolve out-of-memory errors and verify training checkpoints. CX Codex +1 1,800installs nemo-rl-docs This skill hands your agent the documentation rules for NeMo-RL: keeping docs/index.md current and writing docstrings in Google style. Useful when you touch the docs. CX Codex +1 1,800installs nemo-mbridge-resiliency A skill covering resiliency setup in Megatron Bridge: fault tolerance, straggler detection, preemption and re-run state machine. CX Codex +1 1,800installs nemo-mbridge-perf-moe-hardware-configs A reference of MoE training starting configurations for H100, B200, GB200, and GB300. Use it when selecting a dispatcher, parallelism layout, or planning throughput checks. CX Codex +1 1,800installs nemo-mbridge-perf-moe-comm-overlap A skill for MoE expert-parallel communication overlap in Megatron Bridge: dispatch/combine, flex dispatcher backends, expert wgrad scheduling. CX Codex +1 1,800installs nemo-mbridge-perf-moe-long-context Guides context parallelism sizing and selective recompute for long-context MoE training in Megatron Bridge. CX Codex +1 1,800installs nemo-mbridge-perf-expert-parallel-overlap A skill for enabling and validating MoE expert-parallel communication overlap in Megatron-Bridge, covering alltoall and flex dispatchers with DeepEP and HybridEP. CX Codex +1 1,800installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor