| --- |
| title: "CoreMark Benchmark" |
| --- |
| |
| ## Building CoreMark |
| |
| To build CoreMark under meson: |
| |
| ```sh |
| cd "${REPO_TOP}" |
| ./meson_init.sh |
| ninja -C build-out sw/device/benchmarks/coremark/coremark_export_${DEVICE} |
| ``` |
| |
| Where ${DEVICE} is one of 'sim_verilator' or 'fpga_nexysvideo' |
| |
| This will give you a .bin and .elf file (suitable for either spiflash or |
| giving directly to `--meminit` for Verilator) which can be found in |
| `build-bin/sw/device/fpga/benchmarks/coremark` |
| |
| ## CoreMark Options |
| |
| The meson build script alters ITERATIONS (specifying how many iterations |
| CoreMark does) depending on whether it is a sim-verilator or an fpga build. 1 |
| iteration is used for sim-verilator, 100 for fpga. |
| |
| The meson script is hardcoded to give PERFORMANCE_RUN with |
| TOTAL_DATA_SIZE=2000. These are settings required for reportable CoreMark |
| figures. If you wish to use other options please alter |
| `sw/device/benchmarks/coremark/meson.build` appropriately. See the CoreMark |
| README in `sw/vendor/eembc_coremark/README.md` for further information on the |
| possibilities. |