On Mon, Oct 22, 2018 at 07:58:38PM +0200, Bastian Blank wrote: > On Mon, Oct 22, 2018 at 07:55:10PM +0200, Sébastien Villemot wrote: > > 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 > > types. > > So you could also to a proper library transition and drop the support > for 32-bit indicies completely?
Completely dropping 32-bit-index version of BLAS/LAPACK for 64-bit architectures is a long way to go. We can keep 32-bit-index version and 64-bit-index version at the same time for a while and see if the 32-bit-version is really droppable. This reminds me two points about wheter the 32-bit-index version is droppable. As far as I know, Debian (will) have these BLAS[1] providers: (1) bin:libblas3 from src:lapack (2) bin:libatlas3-base from src:atlas (3) bin:libopenblas-base from src:openblas (4) bin:libblis1 from src:blis [WIP] (5) bin:libmkl-rt from src:intel-mkl [non-free] (6) bin:libnvblas9.1 from src:nvidia-cuda-toolkit [non-free] [2] * I confirm these providers support 64-bit index in the API. (2) (3) (4) (5) @Sebastien could you please confirm the status of 64-bit-index support in lapack, i.e. (1) ? * Provider (6) will become a tragedy when Debian no longer provide 32-bit-index version of BLAS... nvBLAS is a quite special BLAS implementation. NVIDIA calls it a "drop in" BLAS library but in fact it only implemented several level-3 BLAS routines. When a program calls a BLAS function that doesn't exist in nvBLAS, nvBLAS will pass the call into another BLAS implementation which is defined in a configuration file given by the user. That means, nvBLAS should call a library which uses index in the same width. And nvblas.h suggests that this library only supports 32-bit index. 60 /* GEMM */ 61 void sgemm_ (const char *transa, const char *transb, const int *m, const int *n, const int *k, 62 const float *alpha, const float *a, const int *lda, const float *b, const int *ldb, 63 const float *beta, float *c, const int *ldc); nvBLAS blocks the removal of 32-bit-index version of BLAS... [1] Not mentioning LAPACK here. [2] It has not been added to the update-alternatives system yet.