diff --git a/src/kernbench/topology/builder.py b/src/kernbench/topology/builder.py index dded2e1..e6dc220 100644 --- a/src/kernbench/topology/builder.py +++ b/src/kernbench/topology/builder.py @@ -550,6 +550,14 @@ def _instantiate_cube( distance_mm=clinks.get("noc_to_pe_cpu_mm", 0.0), kind="pe_response", )) + # PE_MMU ↔ router (mapping install path) + mmu_id = f"{cp}.{pe_prefix}.pe_mmu" + if mmu_id in nodes: + edges.append(Edge( + src=rid, dst=mmu_id, + distance_mm=0.0, + kind="command", + )) elif item.endswith(".hbm"): pass # HBM edges handled below (all routers) elif item == "m_cpu": diff --git a/tests/test_mmu_fabric.py b/tests/test_mmu_fabric.py index 156f8c8..62a2ad3 100644 --- a/tests/test_mmu_fabric.py +++ b/tests/test_mmu_fabric.py @@ -13,8 +13,6 @@ Validates: import pytest from pathlib import Path -pytestmark = pytest.mark.skip(reason="PE_MMU routing via router mesh not yet wired (ADR-0019)") - from kernbench.policy.address.allocator import AddressConfig, PEMemAllocator from kernbench.policy.address.pe_mmu import PeMMU from kernbench.policy.address.va_allocator import VirtualAllocator diff --git a/tests/test_tensor_free.py b/tests/test_tensor_free.py index f03edea..20d9913 100644 --- a/tests/test_tensor_free.py +++ b/tests/test_tensor_free.py @@ -76,7 +76,6 @@ def test_allocator_free_tcm_reclaims_space(): # ── TF2. del tensor triggers cleanup ───────────────────────────────── -@pytest.mark.skip(reason="PE_MMU routing via router mesh not yet wired") def test_del_tensor_unmaps_mmu(): """del tensor removes MMU mappings.""" ctx, engine = _make_ctx() diff --git a/tests/test_topology_compile.py b/tests/test_topology_compile.py index d777133..9845c0b 100644 --- a/tests/test_topology_compile.py +++ b/tests/test_topology_compile.py @@ -28,7 +28,7 @@ def test_full_graph_node_count(): def test_full_graph_edge_count(): g = _graph() - assert len(g.edges) == 10618 + assert len(g.edges) == 10874 # -- Full graph: specific nodes exist -----------------------------------------