CoreMark includes 3 major algorithms looking at core characteristics:
1. List manipulation – pointers and data access through pointers.
2. Matrix manipulation – serial data access and potentially using ILP.
3. Simple state machine – FSM that excercises the branch unit in the pipeline.
The source code for each of those is in a single file. The other files take care of setting up the data for the benchmark, measuring the time, and spitting out a report with the results.
The platform specific code is in a special folder, and there are several sample ports for self hosted platforms using gcc – linux, linux64, cygwin and simple.
Check the documentation for more info, and check back next week for some interesting analysis…