-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Moving to Eigen #5
Comments
I had a version a bit more advanced than the one in the benchmark_eigen, that I rebased on the current jrl-umi3218/sch-core/master here: Be aware that the shared_tests must also be updated. I didn't push on https://github.com/jrl-umi3218/sch-shared-tests, so you'll have to pull it manually (or import the commit into this repo). Please note that one all the eigen-related optimizations may not have been added in the commit francois-keith/sch-core@ccf05008f2a759, and that one of the unit test is failing because of a precision issue. (Edit: correct markdown) |
To ease the test/development of this branch I've pushed a eigen3 branch on both sch-core and sch-shared-tests. example 2 is failing on eigen3 but I'm not sure why (when I run the test itself I don't get any errors) For the moment, the difference in performance is significant. This is what I get on my machine for sch-core master branch:
And on the eigen3 branch
Both were built using |
See also, the travis build on eigen3 branch (with a more explicit error on example2): https://travis-ci.org/jrl-umi3218/sch-core/builds/114952762 And the latest master build: https://travis-ci.org/jrl-umi3218/sch-core/builds/94802666 This exhibits similar performance differences. |
A quick comparison with valgrind/perf may help pinpoint which matrix operation leads to such differences. |
After running further tests, the difference in performance mainly comes down to differences in IO performance for Eigen and sch own matrix type. See this simple benchmark. I disable the OUTPUT_FILE feature by default in shared-tests since the files are not used for the tests and I get comparable results on my machine for both branches. Finer tests are required to know estimate the performance impact (if any). @bchretien also evoked the idea of checking sch-core code for FPE, this might give more information to go one way or the other |
I've cleaned up the eigen3 branch quite a bit.
|
The subject of SCH's port to Eigen was raised yesterday, so here's an issue to keep track of any related information (cc @francois-keith ). IIRC, this was not investigated much more because of a possible impact on performance (the
benchmark_eigen
branch is still available).The text was updated successfully, but these errors were encountered: