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

ENH: add support for ILP64 OpenBLAS (without symbol suffix) #15114

Merged
merged 7 commits into from Dec 15, 2019

Conversation

charris
Copy link
Member

@charris charris commented Dec 15, 2019

Backport of #15069.

Generalize the ILP64 BLAS/LAPACK symbol name handling to deal with
arbitrary prefix/suffix.

The build-time behavior is changed so that HAVE_BLAS_ILP64 and
BLAS_SYMBOL_SUFFIX/PREFIX defines are added to compile options
as appropriate.

Mainly to make autodetection of BLAS/LAPACK easier for downstream
numpy.distutils users, add get_info aliases 'blas_ilp64_opt',
'blas_ilp64_plain_opt', and 'blas64__opt' for any/no/""&"64_"
prefix&suffix, and the same for lapack. (Due to the way system_info
works, each also gets a separate class.)

In addition to openblas64_ which has a fixed suffix, add the (by default
suffixless) openblas_ilp64, which correspond to the two most likely cases to
be present.

Moreover: add ilp64 blas support to *_dot, *_vdot, *_matmul, which
were missed in the previous pass (sorry...)

Similar thing could be easily done for other BLAS libraries in
system_info.py. Users can also set CFLAGS="-DHAVE_BLAS_ILP64"
to turn the 64-bit ABI on for any BLAS/LAPACK (however, I'd not advertise
that as the "public" way to turn this stuff on).

Generalize the ILP64 BLAS/LAPACK symbol name handling to deal with
arbitrary prefix/suffix.

The build-time behavior is changed so that HAVE_BLAS_ILP64 and
BLAS_SYMBOL_SUFFIX/PREFIX defines are added to compile options
as appropriate.

Mainly to make autodetection of BLAS/LAPACK easier for downstream
numpy.distutils users, add get_info aliases 'blas_ilp64_opt',
'blas_ilp64_plain_opt', and 'blas64__opt' for any/no/""&"64_"
prefix&suffix, and the same for lapack. (Due to the way system_info
works, each also gets a separate class.)

In addition to openblas64_ which has a fixed suffix, add the (by default
suffixless) openblas_ilp64, which correspond to the most likely cases to
be present.
Revise the BLAS name mangling to support the general scheme.
Changing these to support ILP64 blas was missed in numpygh-15012
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.

None yet

2 participants