lapack icon indicating copy to clipboard operation
lapack copied to clipboard

BLAS extensions C/ZSBMV in the EIG and LIN tests

Open martin-frbg opened this issue 7 years ago • 3 comments

In https://github.com/xianyi/OpenBLAS/issues/1689 the issue was raised that OpenBLAS provides its own implementations of the BLAS extensions CSBMV and ZSBMV, as these clash with local implementations in TESTING/EIG and TESTING/LIN when reference LAPACK is linked against OpenBLAS. I wonder if these local helper functions should be named like the "proper" BLAS functions when they are not actually available through the API ?

martin-frbg avatar Jul 19 '18 22:07 martin-frbg

Hi Martin, this is a good point. I am glad to learn that OpenBLAS added CSBMV and ZSBMV to the OpenBLAS library. I understand the problem that is caused when these functions are also present in TESTING/EIG and TESTING/LIN . ( Then one cannot run the LAPACK test suite with OpenBLAS. ) You propose that we rename the TESTING/xxx/CSBMV subroutines. This sounds good to me. Happy to leave the nice name to OpenBLAS, and take a less nice name for the LAPACK test suite at an ad-hoc place in the code. This makes a lots of sense. Will do. Cheers, Julien.

langou avatar Jul 19 '18 23:07 langou

After further reflection, it might make sense to move this functionality (CSBMV and ZSBMV) in the LAPACK library. Would that work for OpenBLAS? Or would that not fix the problem?

langou avatar Jul 19 '18 23:07 langou

Just moving it within LAPACK would probably not solve the "conflict", moving it to the BLAS section (where they probably "belong") certainly would - but would create new problems when your LAPACK is built with another BLAS (which is probably why these local implementations came to be in the first place). BTW these two extensions are not new in OpenBLAS, they were already present in the original GotoBLAS2 about ten years ago (which is what makes me so stubborn about removing/renaming on the OpenBLAS side). As I believe the implementations in TESTING/EIG are not exposed, the niceness or notoriety of their name is probably not so important. (You could probably just add an "L" to denote it as your local implementation, or include a numeric suffix and it would still be apparent from the name what the functionality is.) Note the priority of this is rather low - with one guy in 10+ years hitting that problem and not quietly making the appropriate change in his local copy.

martin-frbg avatar Jul 20 '18 06:07 martin-frbg