-
Notifications
You must be signed in to change notification settings - Fork 15
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
Start migrating to Intel oneMKL #1073
Conversation
(currently legacy mkl is able to detect correctly also oneMKL)
it would be possible to rely on spack for this, but for the moment we opted for keeping both logic. in the future we might change it.
cscs-ci run |
- add legacy option for mkl - make openmp dependent to both mkl and mkl_legacy - export mkl_legacy option in cmake module
64a1967
to
35287cc
Compare
cscs-ci run |
Codecov ReportAll modified and coverable lines are covered by tests ✅
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## master #1073 +/- ##
=======================================
Coverage 94.06% 94.06%
=======================================
Files 148 148
Lines 9199 9199
Branches 1164 1164
=======================================
Hits 8653 8653
Misses 323 323
Partials 223 223 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor nitpicks. Thanks for doing this!
they act as a guard to not end up in the official package
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved modulo @rasolca's comments and one space too many.
cscs-ci run |
older versions are considered not compatible
Fixes #878
Close #626
This PR starts with introducing logic for using Intel OneAPI MKL (or oneMKL), which now provides an official CMake Config file. From discussions with @rasolca, for the moment, we opted for keeping also the "legacy" custom module.
DLAF_WITH_MKL
triggers the new logic using official oneMKL CMake config file;DLAF_WITH_MKL_LEGACY
triggers the "legacy" logic which uses our custom CMake module.note: currently,
DLAF_WITH_MKL_LEGACY
seems to work fine also for oneAPI MKL installation.Spack
The spack package has been updated the same way. The logic could be simplified by fully relying on spack (have a look here) and just use the "link-line" logic as any other BLAS/LAPACK library would do. This would require a change, since DLAF_WITH_MKL is used not just for linking purpose but also for implementation details like
mkl_set_num_threads
. Anyway, this is not needed now and we might evaluate in the future (e.g. when MKL legacy branch will be dropped).note:
intel-parallel-studio
is not supported (to my knowledge it has been deprecated too and merged into intel-oneapi)CI
In the CI nothing has changed yet. It still installs
intel-mkl
as external package, and then spack uses it. The package should™️ deal correctly with it by usingDLAF_WITH_MKL_LEGACY
. Switching tointel-oneapi-mkl
is outside the objectives of this PR (I will open an issue to track this and decide what to dosee #1074).TODO