# Component implementation registry. # Maps impl names (used in topology.yaml) to Python class paths. # Format: impl_name: module.path:ClassName # # Naming convention: # builtin. — built-in implementations # custom. — user-defined implementations # # ── Adding custom components ────────────────────────────────────────── # # 1. Create your implementation in: # src/kernbench/components/custom/.py # # Your class must inherit from ComponentBase (or PeEngineBase for PE engines). # # 2. Register it below under "Custom" with a unique impl name: # custom.my_pe_cpu: kernbench.components.custom.my_pe_cpu:MyPeCpuComponent # # 3. Reference it in topology.yaml: # pe_cpu: { kind: pe_cpu, impl: custom.my_pe_cpu, attrs: { ... } } # # 4. Add unit tests in: # tests/custom/test_.py # # External packages also work — use the full module path: # custom.fast_gemm: my_team.accel.fast_gemm:FastGemmComponent # ────────────────────────────────────────────────────────────────────── components: # Infrastructure builtin.forwarding: kernbench.components.builtin.forwarding:TransitComponent builtin.switch: kernbench.components.builtin.forwarding:TransitComponent builtin.noc: kernbench.components.builtin.forwarding:TransitComponent builtin.ucie: kernbench.components.builtin.forwarding:TransitComponent # IO / Host interface builtin.pcie_ep: kernbench.components.builtin.pcie_ep:PcieEpComponent builtin.io_cpu: kernbench.components.builtin.io_cpu:IoCpuComponent # Cube-level builtin.m_cpu: kernbench.components.builtin.m_cpu:MCpuComponent builtin.hbm_ctrl: kernbench.components.builtin.hbm_ctrl:HbmCtrlComponent builtin.sram: kernbench.components.builtin.sram:SramComponent # PE-level builtin.pe_cpu: kernbench.components.builtin.pe_cpu:PeCpuComponent builtin.pe_scheduler: kernbench.components.builtin.pe_scheduler:PeSchedulerComponent builtin.pe_dma: kernbench.components.builtin.pe_dma:PeDmaComponent builtin.pe_gemm: kernbench.components.builtin.pe_gemm:PeGemmComponent builtin.pe_math: kernbench.components.builtin.pe_math:PeMathComponent builtin.pe_fetch_store: kernbench.components.builtin.pe_fetch_store:PeFetchStoreComponent builtin.pe_mmu: kernbench.components.builtin.pe_mmu:PeMmuComponent builtin.pe_tcm: kernbench.components.builtin.pe_tcm:PeTcmComponent # Custom — add your implementations here