81ce55571d
- 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>
56 lines
2.7 KiB
YAML
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
|