Files
SmartEdgeAI/scripts/run_one.sh
Carlos Gutierrez 1154b97cb0 updating
2025-10-05 00:47:14 -04:00

49 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
set -eu
. "$(dirname "$0")/env.sh"
if [ $# -lt 5 ]; then
echo "Usage: $0 <workload:{tinyml_kws|sensor_fusion|aes_ccm|attention_kernel}> <core:{big|little|hybrid}> <dvfs:{high|low}> <drowsy:{0|1}> <l2:{512kB|1MB}> [mem=16GB]"
exit 1
fi
W=$1; CORE=$2; DV=$3; DROWSY=$4; L2=$5; MEM=${6:-16GB}
TAG="${W}_${CORE}_${DV}_l2${L2}_d${DROWSY}"
OUTDIR="$OUT_DATA/$TAG"
mkdir -p "$OUTDIR"
echo "[run_one] $TAG mem=$MEM -> $OUTDIR"
# Map core types to baremetal.py CPU types
if [ "$CORE" = "big" ]; then
CPU_TYPE="o3" # Using o3 as closest to O3CPU
elif [ "$CORE" = "little" ]; then
CPU_TYPE="atomic" # Using atomic as closest to TimingSimpleCPU
else
CPU_TYPE="o3" # Default for hybrid
fi
# Map DVFS to CPU frequency (simplified)
if [ "$DV" = "high" ]; then
CPU_FREQ="2GHz"
else
CPU_FREQ="1GHz"
fi
"$GEM5_BIN" "$CFG" \
--kernel="$RUN/$W" \
--workload=ArmBaremetal \
--cpu="$CPU_TYPE" \
--cpu-freq="$CPU_FREQ" \
--mem-type=DDR3_1600_8x8 \
--mem-size="$MEM" \
> "$LOG_DATA/${TAG}.stdout.log" \
2> "$LOG_DATA/${TAG}.stderr.log"
# mirror to repo
rsync -a --delete "$OUTDIR/" "$OUT_IOT/$TAG/"
rsync -a "$LOG_DATA/${TAG}."* "$LOG_IOT/" 2>/dev/null || true
echo "[run_one] DONE"