Skip to content

Latest commit

 

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ET Kernel Profiler

ET-SoC-1 kernels and a host benchmarking app to profile memory bandwidth and compute performance on the Esperanto ET-SoC-1 chip.

Building

Requires CMake ≥ 3.20 and Ninja.

Preset Description Output Dir
device Standard (shire-level) kernels build/device/
device-minion Per-minion kernels (-DPER_MINION) build/device-minion/
host Host launcher kernel_bench build/host/

Configuring a preset sets its toolchain and mode. Default and per-minion builds produce identically-named ELFs distinguished only by their build directory.

cmake --preset device
cmake --build --preset device
cmake --build --preset device --target peak_read_kernel    # build one kernel

cmake --preset device-minion
cmake --build --preset device-minion --target peak_read_kernel

cmake --preset host
cmake --build --preset host
  • Kernels dropped into device/kernels/*.cpp are auto-detected and built as <name>.elf (no CMake reconfigure needed).
  • Override ET platform path (default /opt/et): cmake --preset device -DET_PLATFORM_PATH=/path

Running

kernel_bench auto-detects the decode mode (standard vs per-minion) from the ELF path.

./build/host/kernel_bench build/device/peak_read_kernel.elf          # standard
./build/host/kernel_bench build/device-minion/peak_read_kernel.elf   # per-minion

To amortize launch and measurement noise, kernel_bench repeatedly launches the kernel for a fixed ~1s wall-clock window and reports averaged stats over however many runs fit in that window.

Metrics

Results are written to results/*.csv. Default mode also prints console tables.

Default Mode

Metrics are aggregated per Compute Shire (0-31) and Memory Shire (0-7).

Metric Description
Cycles Compute Shire wall-clock time in cycles (set by the longest-running neighborhood).
Instructions Retired instructions (summed across all harts in the shire).
IPC Instructions ÷ Cycles.
L1_DMiss L1 D-cache misses (summed across all harts in the shire).
SC_Reads L2 read requests (summed across the 4 physical L2 banks).
SC_Writes L2 write requests (summed across the 4 physical L2 banks).
MS_Read_GBps DRAM read bandwidth (GB/s, derived from LPDDR4X read requests).
MS_Write_GBps DRAM write bandwidth (GB/s).
MS_Total_GBps DRAM total bandwidth = read + write (GB/s).

Per-Minion Mode (-DPER_MINION)

Metrics are tracked per individual minion core. L2 and DRAM metrics are disabled.

Metric Description
Cycles Exact wall-clock cycles. Each neighborhood has an independent clock domain, so this is the minion's true runtime.
Instructions Approximate: Hardware sums retired instructions across all 8 minions in a neighborhood, so this reports the neighborhood total ÷ 8.
L1_DMiss Approximate: Hardware sums L1 misses across the neighborhood, so this reports the neighborhood total ÷ 8.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages