-
Notifications
You must be signed in to change notification settings - Fork 1
The simulator for the Next-Generation Championship in Branch Prediction (CBP-NG)
License
AmpereComputing/cbp-ng
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
GCC: version 12 or later Clang: version 19 or later To compile the default predictor: ./compile cbp To compile a specific predictor: ./compile cbp -DPREDICTOR="gshare<>" To simulate one trace with 1M instructions of warmup and up to 40M instructions of measurement: ./cbp ./gcc_test_trace.gz test 1000000 40000000 or: ./run ./cbp ./gcc_test_trace.gz The simulation output per traces is: (1) trace name, (2) instructions, (3) branches, (4) conditional branches, (5) blocks, (6) extra cycles, (7) P1/P2 divergences, (8) P2 mispredictions, (9) P1 latency (cycles), (10) P2 latency (cycles), (11) dynamic energy per instruction (fJ) To simulate all "compress" traces: mkdir OUTDIR ./run_all ./cbp cbp6_traces/compress OUTDIR To simulate all traces: ./run_all ./cbp cbp6_traces OUTDIR To compute the number of mispredictions per instruction: ./ratio 2 8 OUTDIR To compute the average IPC, CPI, EPI, and other average metrics: ./predictor_metrics.py OUTDIR ==================================================================================== Reference TAGE-SC-L predictor (no timing, no energy): To compile: g++ -o reference -O3 reference.cpp -lz To run one trace: ./reference ./gcc_test_trace.gz test 1000000 40000000 or ./run ./reference ./gcc_test_trace.gz To simulate all traces: ./run_all ./reference cbp6_traces OUTDIR ====================================================================================
About
The simulator for the Next-Generation Championship in Branch Prediction (CBP-NG)