Difference between revisions of "Performance monitoring"

From Eigen
Jump to: navigation, search
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
You can follow the performance of Eigen over coding time there:  
+
[[Category:Developer]]
 +
You can follow the performance of Eigen along its development there:  
  
 +
* [http://eigen.tuxfamily.org/perf_monitoring/XeonW2155/index.html Skylake-AVX512, clang7.0]
 
* [http://eigen.tuxfamily.org/perf_monitoring/ggaelmacbook26/index.html Haswell-FMA, Apple's clang]
 
* [http://eigen.tuxfamily.org/perf_monitoring/ggaelmacbook26/index.html Haswell-FMA, Apple's clang]
 +
* [http://eigen.tuxfamily.org/perf_monitoring/ggaelmacbook26_gcc/index.html Haswell-FMA, GCC6]
 
* [http://eigen.tuxfamily.org/perf_monitoring/ggaelcactus34/index.html SandyBridge-AVX, GCC5]
 
* [http://eigen.tuxfamily.org/perf_monitoring/ggaelcactus34/index.html SandyBridge-AVX, GCC5]
 +
* [http://eigen.tuxfamily.org/perf_monitoring/ggaelcactus34_clang38/index.html 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 <code>script/eigen_monitor_perf.sh</code> to some location, adjust the different variables to match your setup, update the <code>rsync</code> and <code>ssh</code> 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 <code>$EIGEN_SOURCE_PATH/bench/perf_monitoring/$PREFIX/</code>.
 +
 +
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 <code>-up</code> 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 <code>-s rev1 rev2 rev3 ...</code> command-line option (the two options are exclusive).
 +
 +
== Customization ==
 +
 +
* You can adjust the matrix/vector sizes by editing the files <code>*_settings.txt</code>.
 +
* You can add/remove changesets by editing the <code>changesets.txt</code> file.
 +
* 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 <code>bench/perf_monitoring/*.cpp</code>. You can also pass the <code>-up</code> or <code>-s rev1 rev2 ...</code> options to this script.

Latest revision as of 08:54, 18 January 2019

You can follow the performance of Eigen along its development there:


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 rsync and 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 $EIGEN_SOURCE_PATH/bench/perf_monitoring/$PREFIX/.

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).

Customization

  • You can adjust the matrix/vector sizes by editing the files *_settings.txt.
  • You can add/remove changesets by editing the changesets.txt file.
  • 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 -up or -s rev1 rev2 ... options to this script.