Experiment to determine if a prediction is inserted into the BTB and IBP the first time it is seen.
Replace <experiment_core> and <experiment_march> according to the Microarchitectures table. The output is stored in out.
Warning
The ansible playbooks modify the system without requesting confirmation (ex. GRUB config, install packages, ..).
ansible-playbook ../../ansible/run.yaml -e host=<hostname> -e experiment=exp-ibp-insertion \
-e experiment_core=<experiment_core>export experiment_core=<experiment_core>
export OUT_DIR=./out/manual
# build
make clean
make
# save metadata
mkdir -p "$OUT_DIR"
cat > "$OUT_DIR/metadata.json" <<EOF
{
"hostname": "manual",
"experiment_core": $experiment_core
}
EOF
# run
make run CORE=$experiment_core | tee "$OUT_DIR/run.out"python3 analyze.pyThe results are printed to the console.
We ran this experiment on the Intel performance (P-Cores), Cypress Cove and Skylake cores. For 'Random History' we expect many hits on the BTB (>90%) and very few on the IBP (<1%). For 'Matching History' we expect few hits on the BTB (<10%) and many hits on the IBP (>90%).