Skip to content

can we improve support for 8 byte integers in linear algebra libraries? #737

Description

@migueldiascosta

For MKL, the i8 toolchainoption selects the ilp64 variants of the libraries [1, 2]

We can easily make OpenBLAS also build a library with 8 byte integers with e.g. buildopts = ['', 'INTERFACE64=1'] in the easyconfigs, and a small change in the easyblock to pass this option to testopts and installopts, and eventually rename and check libraries.

(FlexiBLAS also supports this, with INTEGER8=ON, and in that case adds the 64 suffix to the command and library names)

There is also the option of adding a suffix to the symbol names (e.g., SYMBOLSUFFIX=64_ in OpenBLAS), but in that case the behaviour would be different to MKL and the application would need to be aware of that (e.g. [3, 4])

I think this will also be useful in order to build Julia from source, at least with the same defaults as upstream

But we do need to choose a convention for the library names and eventually symbol suffixes and stick to it

thoughts?

[1] https://github.com/easybuilders/easybuild-framework/blob/712f9d293235d19f34d0aeb109a0837ae03129dd/easybuild/toolchains/linalg/intelmkl.py#L136
[2] https://github.com/easybuilders/easybuild-framework/blob/b64c4969b28bd11c29bfabed82ee1a1a4b22d327/easybuild/toolchains/fft/intelfftw.py#L58)
[3] https://numpy.org/devdocs/user/building.html#bit-blas-and-lapack
[4] https://scipy.github.io/devdocs/building/#reference-for-build-options

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions