Files
kernbench2/components.yaml
T
ywkang 81ce55571d Rename impl names: add builtin. prefix for clear provenance
- components.yaml: all builtin impls use builtin.xxx naming
- topology.yaml: all impl references updated to builtin.xxx
- builder.py: hardcoded ucie impl → builtin.ucie
- Tests: all impl string references updated

Convention: builtin.<name> for built-in, custom.<name> for user-defined.
382 tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 00:16:24 -07:00

56 lines
2.7 KiB
YAML

# Component implementation registry.
# Maps impl names (used in topology.yaml) to Python class paths.
# Format: impl_name: module.path:ClassName
#
# Naming convention:
# builtin.<name> — built-in implementations
# custom.<name> — user-defined implementations
#
# ── Adding custom components ──────────────────────────────────────────
#
# 1. Create your implementation in:
# src/kernbench/components/custom/<your_component>.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_<your_component>.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