Skip to content

build single-file shared libraries for imkl so it can be used as FlexiBLAS backend via $FLEXIBLAS_LIBRARY_PATH#2694

Merged
boegel merged 7 commits intoeasybuilders:developfrom
ComputeCanada:imkl-flexiblas
Mar 28, 2022
Merged

build single-file shared libraries for imkl so it can be used as FlexiBLAS backend via $FLEXIBLAS_LIBRARY_PATH#2694
boegel merged 7 commits intoeasybuilders:developfrom
ComputeCanada:imkl-flexiblas

Conversation

@bartoldeman
Copy link
Copy Markdown
Contributor

By building FlexiBLAS compatible libraries and pointing FLEXIBLAS_LIBRARY_PATH to them on the imkl side and creating a configuration file on the FlexiBLAS side, FlexiBLAS no longer needs imkl as a (build)dependency.

A configuration file gives the library names that can be found
if the imkl module sets FLEXIBLAS_LIBRARY_PATH.
This way it no longer needs to be a (build)dependency.
@bartoldeman
Copy link
Copy Markdown
Contributor Author

Notes:

  1. The same technique can be applied to BLIS or OpenBLAS as well, by using their libraries directly as backend:
    Compile all backends without auto-detection mpimd-csc/flexiblas#13 (comment)
  2. An alternative is to use an imkl-FlexiBLAS module, instead of including it directly into imkl but this looks simpler.
  3. The imkl/BLIS/OpenBLAS modules could in principle set the environment variable FLEXIBLAS=imkl (etc.) as well, so loading the module would activate the backend. So far we haven't done that but have we considered it?

easybuilders/easybuild-easyconfigs#14332

@boegel boegel added this to the next release (4.5.4?) milestone Mar 16, 2022
@bartoldeman
Copy link
Copy Markdown
Contributor Author

Test report by @bartoldeman

Overview of tested easyconfigs (in order)

  • SUCCESS imkl-2020.1.217-iimpi-2020a.eb
  • SUCCESS imkl-2022.0.1.eb
  • SUCCESS imkl-2021.4.0.eb
  • SUCCESS imkl-2021.2.0-gompi-2021a.eb
  • SUCCESS imkl-2021.2.0-iimpi-2021a.eb

Build succeeded for 5 out of 5 (5 easyconfigs in total)
build-node.computecanada.ca - Linux CentOS Linux 7.9.2009, x86_64, Intel Xeon Processor (Skylake, IBRS), Python 3.7.7
See https://gist.github.com/3d0cf2851a1af49913e800a350653f51 for a full test report.

@boegel
Copy link
Copy Markdown
Member

boegel commented Mar 28, 2022

Test report by @boegel

Overview of tested easyconfigs (in order)

  • SUCCESS FlexiBLAS-3.0.4-GCC-10.3.0.eb
  • SUCCESS FlexiBLAS-3.0.4-GCC-11.2.0.eb
  • SUCCESS imkl-2019.5.281-gompi-2019b.eb
  • SUCCESS imkl-2019.5.281-gompic-2019b.eb
  • SUCCESS imkl-2019.5.281-iompi-2019b.eb
  • SUCCESS imkl-2020.1.217-iimpi-2020a.eb
  • SUCCESS imkl-2020.4.304-gompi-2020b.eb
  • SUCCESS imkl-2020.4.304-iimpi-2020b.eb
  • SUCCESS imkl-2021.2.0-gompi-2021a.eb
  • SUCCESS imkl-2021.2.0-iimpi-2021a.eb
  • SUCCESS imkl-2021.3.0-gompi-2021a.eb
  • SUCCESS imkl-2021.4.0.eb

Build succeeded for 12 out of 12 (12 easyconfigs in total)
node3112.skitty.os - Linux CentOS Linux 7.9.2009, x86_64, Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz, Python 3.6.8
See https://gist.github.com/7a60b2e2f515b20417f9ad3e3c79e8e0 for a full test report.

@boegel
Copy link
Copy Markdown
Member

boegel commented Mar 28, 2022

Test report by @boegel

Overview of tested easyconfigs (in order)

  • SUCCESS FlexiBLAS-3.0.4-GCC-10.3.0.eb
  • SUCCESS FlexiBLAS-3.0.4-GCC-11.2.0.eb
  • SUCCESS imkl-2019.5.281-gompi-2019b.eb
  • SUCCESS imkl-2019.5.281-gompic-2019b.eb
  • SUCCESS imkl-2019.5.281-iompi-2019b.eb
  • SUCCESS imkl-2020.1.217-iimpi-2020a.eb
  • SUCCESS imkl-2020.4.304-gompi-2020b.eb
  • SUCCESS imkl-2020.4.304-iimpi-2020b.eb
  • SUCCESS imkl-2021.2.0-gompi-2021a.eb
  • SUCCESS imkl-2021.2.0-iimpi-2021a.eb
  • SUCCESS imkl-2021.3.0-gompi-2021a.eb
  • SUCCESS imkl-2021.4.0.eb

Build succeeded for 12 out of 12 (12 easyconfigs in total)
node3575.doduo.os - Linux RHEL 8.4, x86_64, AMD EPYC 7552 48-Core Processor (zen2), Python 3.6.8
See https://gist.github.com/4c0dfa123456ef27d094749cc06b1c74 for a full test report.

@boegel boegel changed the title Allow using MKL from FlexiBLAS via FLEXIBLAS_LIBRARY_PATH build single-file shared libraries for imkl so it can be used as FlexiBLAS backend via $FLEXIBLAS_LIBRARY_PATH Mar 28, 2022
Copy link
Copy Markdown
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@boegel boegel merged commit 636a48f into easybuilders:develop Mar 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants