Skip to content
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

Enable MKL Sparse QR solver as alternative to SuiteSparse #726

Open
dyollb opened this issue Nov 30, 2021 · 5 comments
Open

Enable MKL Sparse QR solver as alternative to SuiteSparse #726

dyollb opened this issue Nov 30, 2021 · 5 comments
Assignees

Comments

@dyollb
Copy link

dyollb commented Nov 30, 2021

Building ceres on Windows and getting good performance is not very well supported, because there is no (maintained) way to build SuiteSparse.

Please support the MKL Sparse QR, described here: https://www.intel.com/content/www/us/en/developer/articles/technical/intel-mkl-sparse-qr-solver-multifrontal-sparse-qr-factorization-method-for-solving-a-sparse.html

The performance comparisons show that is outperforms SuiteSparseQR on a collection of benchmarks.
image

This may even be a benefit for other platforms where MKL is available.

@sergiud
Copy link
Contributor

sergiud commented Nov 30, 2021

While I support the proposal, I want to also make aware of my SuiteSparse fork with native CMake support which I maintain and continuously test on Visual Studio 2019 and and now 2022 among others.

@dyollb
Copy link
Author

dyollb commented Nov 30, 2021

Thanks. I was referring to the link provided in the ceres installation instructions : https://github.com/jlblancoc/suitesparse-metis-for-windows. That one hasn't been updated for a while.

Nevertheless, the MKL could be faster, so I still think it would be nice.

@sandwichmaker
Copy link
Contributor

@sergiud do you want to send me a patch to the documentation pointing to your fork of suitesparse?
Also @alexsmac may have some time to look at integrating intelmkl into ceres, so assigning the bug to him.

@sergiud
Copy link
Contributor

sergiud commented Nov 30, 2021

Preferably, the integration should be done by employing oneAPI (i.e., oneMKL) to avoid dependency on a specific backend available only for selected platforms. However, it seems that MKL SparseQR is not part of the oneAPI specification, is it?

@sandwichmaker I don't mind it. However, Ceres does not work out-of-the box with my fork and requires a minimal amount of patching to use the provided CMake import targets.

@sandwichmaker
Copy link
Contributor

I have not looked at the oneMKL API yet, its been changing a fair bit over the past two years. I will start another issue to discuss the cmake/suitesparse thing and move the discussion there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants