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

drotg implementation is not up to date with the reference BLAS #4130

Open
vladimir-ch opened this issue Jul 7, 2023 · 3 comments
Open

drotg implementation is not up to date with the reference BLAS #4130

vladimir-ch opened this issue Jul 7, 2023 · 3 comments

Comments

@vladimir-ch
Copy link
Contributor

The Reference BLAS changed their DROTG implementation in Reference-LAPACK/lapack#527 to use a safe scaling. In Gonum we updated our implementation and tests accordingly in gonum/gonum#1623. Unfortunately, the updated tests with extreme values fail in our CBLAS interface package (gonum/netlib#92) where we use OpenBLAS as a reference. It would be nice if OpenBLAS used the same implementation with safe scaling as the reference BLAS.

@angsch
Copy link
Contributor

angsch commented Jul 7, 2023

The same problem will likely trigger for NRM2. As far as I am aware, the assembly implementations in OpenBLAS have not been updated. I think that changing all assembly implementations is a challenge, so one option may be to add an additional symbol, one for the netlib implementation and one for the old optimized implementation.

@martin-frbg
Copy link
Collaborator

Pretty much the only somewhat short-term solution I see is to update the "generic" reimplementations and "temporarily" use them for all architectures/cpus that have hand-crafted assembly now

@martin-frbg
Copy link
Collaborator

Small clarification - ?ROTG is easy as it is all done in trivial C code in the interface routine, no cpu-specific kernels involved. NRM2 will require a bit more work as there are around 50 assembly kernels in all (and still about 10 if only looking at the most important ones)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants