Re: RFC: Naming convention for ILP64 variant of BLAS/LAPACK
- Date: Tue, 23 Oct 2018 14:17:50 +0000
- From: Mo Zhou <lumin@xxxxxxxxxx>
- Subject: Re: RFC: Naming convention for ILP64 variant of BLAS/LAPACK
Two in the audience are object to the "-ilp64" naming convention.
Then how about this?
bin:libblas64-base (filename=libblas64.so.3, SONAME=libblas64.so.3,
* Unlike Fedora or Julia upstream, we don't mangle symbol names.
On Mon, Oct 22, 2018 at 07:55:10PM +0200, Sébastien Villemot wrote:
> Le lundi 22 octobre 2018 à 18:38 +0100, Simon McVittie a écrit :
> > On Mon, 22 Oct 2018 at 18:17:32 +0100, Ben Hutchings wrote:
> > > On Mon, 2018-10-22 at 15:07 +0000, Mo Zhou wrote:
> > > > Here are some references:
> > > >
> > > > 1. https://software.intel.com/en-us/mkl-linux-developer-guide-using-the-ilp64-interface-vs-lp64-interface
> > > >
> > > > The Intel MKL ILP64 libraries use the 64-bit integer type (necessary
> > > > for indexing large arrays, with more than 231-1 elements), whereas
> > > > the LP64 libraries index arrays with the 32-bit integer type.
> > >
> > > [...]
> > >
> > > The correct C types for indexing arrays are ptrdiff_t and size_t.
> > > These are already 64-bit in LP64 ABIs. So this seems like a workaround
> > > for code using the wrong types.
> > Do BLAS/LAPACK really mean ILP64, or do they really mean "ABI with large
> > array indexes"?
> The latter. This is why I think that "ILP64" is a misnomer, and should
> not be used for labeling the newly introduced libraries.
> The ambiguity arises from the fact that some BLAS/LAPACK
> implementations are written in Fortran, and use the default integer
> type for array indexes. Hence the solution is to compile them with
> -fdefault-integer-8. But this does not mean that this code is really
> ILP64, because it's not C and hence it does not uses the C ABI. Only
> integers exposed through the BLAS/LAPACK ABI are affected (most of them
> are array indices, the remaining others are return codes).
> For BLAS/LAPACK implementations implemented in C, like OpenBLAS, they
> will be compiled using LP64, and not ILP64. Only integers exposed
> through the interface will be affected, through the use of appropriate
> ⢀⣴⠾⠻⢶⣦⠀ Sébastien Villemot
> ⣾⠁⢠⠒⠀⣿⡁ Debian Developer
> ⢿⡄⠘⠷⠚⠋⠀ http://sebastien.villemot.name
> ⠈⠳⣄⠀⠀⠀⠀ http://www.debian.org