easybuild-easyblocks icon indicating copy to clipboard operation
easybuild-easyblocks copied to clipboard

add support for iterative build of OpenBLAS with 64-bit integers

Open jfgrimm opened this issue 2 years ago • 6 comments

(created using eb --new-pr)

jfgrimm avatar Jun 23 '22 10:06 jfgrimm

I don't think adding _ilp64 suffix to the actual symbols is a good thing. Most codes I know of that does use ilp64 blas just assumes that the symbols are the same as usual. I know I never did that when compiling it with 64bit integers way back and the codes that relied on it worked just fine that way

akesandgren avatar Jun 23 '22 10:06 akesandgren

@akesandgren good point, I've switched back to using LIBNAMESUFFIX

jfgrimm avatar Jun 23 '22 10:06 jfgrimm

I agree it's simpler not to suffix the symbols, but otoh, numpy suggests using them to avoid clashes (https://numpy.org/devdocs/user/building.html#bit-blas-and-lapack), and SciPy says they actually need both (https://scipy.github.io/devdocs/dev/contributor/building.html#reference-for-build-options)...

Could we build all three variants?

migueldiascosta avatar Jun 23 '22 11:06 migueldiascosta

@migueldiascosta so, two 64bit iterations: one iteration with INTERFACE64=1 SYMBOLSUFFIX=64_ and one with INTERFACE64=1 LIBNAMESUFFIX=ilp64 ?

jfgrimm avatar Jun 23 '22 11:06 jfgrimm

overriding the symbols is SYMBOLSUFFIX= (empty), I think

(edit: noticed now that I misread the above, so nevermind)

migueldiascosta avatar Jun 23 '22 11:06 migueldiascosta

Conflict resolution needed.

Also, I think we should try to get both the plain 32bit int and the 64_ symbol suffix functions into the same libopenblas.(a|so) library in case that isn't already part of this change.

akesandgren avatar Oct 24 '22 09:10 akesandgren