You can follow the performance of Eigen along its development there:
- Skylake-AVX512, clang7.0
- Haswell-FMA, Apple's clang
- Haswell-FMA, GCC6
- SandyBridge-AVX, GCC5
- SandBridge-AVX, clang3.8
Run those tests on your own computer
Generating those graph for your own computer and compiler flags is fairly easy. From Eigen's sources, make a copy of
script/eigen_monitor_perf.sh to some location, adjust the different variables to match your setup, update the
ssh lines if you want to upload the graph to your own server (or comment them if you don't want to share your results), and then run the script. That's all. The charts are generated in
When running those benchmarks, make sure to disable turbo-boost and, on Linux, to enable the performance cpu governor.
If you re-run the script, only new changesets will be updated. To reduce system noise, you can re-run the script multiple times with the
-up command-line option to enforce the recomputation of the benchmarks: each measure will be replaced by the best of the old and new run.
You can also update a subset of the revisions by passing the
-s rev1 rev2 rev3 ... command-line option (the two options are exclusive).
- You can adjust the matrix/vector sizes by editing the files
- You can add/remove changesets by editing the
- You can run the benchmarks manually with:
CXX=... CXX_FLAGS="..." $EIGEN_SOURCE_PATH/bench/perf_monitoring/run.sh test_name
where test_name must be replaced by one of the tests present in
bench/perf_monitoring/*.cpp. You can also pass the
-s rev1 rev2 ... options to this script.