> This page is for version 0.5.0 · 26.06.
> For other versions, use one of these documentation indexes:
> - Nightly (default): https://docs.nvidia.com/nemo/automodel/nightly/llms.txt
> - Latest: https://docs.nvidia.com/nemo/automodel/latest/llms.txt
> - 0.5.0 · 26.06: https://docs.nvidia.com/nemo/automodel/v0.5/llms.txt
> - 0.4.0 · 26.04: https://docs.nvidia.com/nemo/automodel/v0.4/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/automodel/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/automodel/_mcp/server.

# nemo_automodel.components.moe.uccl_ep

UCCL-EP integration for expert parallelism.

UCCL-EP ([https://github.com/uccl-project/uccl/tree/main/ep](https://github.com/uccl-project/uccl/tree/main/ep)) has the same
interface and functionality as DeepEP, and enables GPU-initiated communication
for MoE models across heterogeneous GPUs and NICs.

Vendored files (from [https://github.com/uccl-project/uccl/tree/main/ep/deep\_ep\_wrapper](https://github.com/uccl-project/uccl/tree/main/ep/deep_ep_wrapper)):
\_buffer.py  \<- deep\_ep\_wrapper/deep\_ep/buffer.py
\_utils.py   \<- deep\_ep\_wrapper/deep\_ep/utils.py

Usage:
Set dispatcher: uccl\_ep in the model backend config.

## Submodules

* **[`nemo_automodel.components.moe.uccl_ep._buffer`](/nemo-automodel/nemo_automodel/components/moe/uccl_ep/_buffer)**
* **[`nemo_automodel.components.moe.uccl_ep._utils`](/nemo-automodel/nemo_automodel/components/moe/uccl_ep/_utils)**
* **[`nemo_automodel.components.moe.uccl_ep.buffer`](/nemo-automodel/nemo_automodel/components/moe/uccl_ep/buffer)**

## Package Contents

### Classes

| Name                                                                     | Description                                       |
| ------------------------------------------------------------------------ | ------------------------------------------------- |
| [`UCCLBuffer`](#nemo_automodel-components-moe-uccl_ep-buffer-UCCLBuffer) | Buffer subclass that auto-detects intranode mode. |

### API

```python
class nemo_automodel.components.moe.uccl_ep.buffer.UCCLBuffer(
    group,
    num_nvl_bytes: int = 0,
    num_rdma_bytes: int = 0,
    low_latency_mode: bool = False,
    num_qps_per_rank: int = 24,
    allow_nvlink_for_low_latency_mode: bool = True,
    allow_mnnvl: bool = False,
    explicitly_destroy: bool = False,
    is_intranode: bool = False
)
```

**Bases:** [Buffer](/nemo-automodel/nemo_automodel/components/moe/uccl_ep/_buffer#nemo_automodel-components-moe-uccl_ep-_buffer-Buffer)

Buffer subclass that auto-detects intranode mode.

When all EP ranks fit on a single node (group\_size \<= LOCAL\_WORLD\_SIZE),
RDMA is disabled and only NVLink is used, avoiding RDMA MR registration
failures on single-node setups.