DLA-Future
DLA-Future copied to clipboard
blaspp and lapackpp are in our public API
Parameters such as blas::Op
, blas::Uplo
, blas::Side
, lapack::Norm
are present in our API. That makes them a required dependency even if a different LAPACK/BLAS back end is used. If we want other back ends without requiring blaspp/lapackpp, we might want to provide our own API for the aforementioned parameters.
You mean aliasing them to dlaf::Op, ..., to simplify the change of the backend?
Yes, essentially defining our own equivalents such that we disentangle the back-ends from the public API.
In principles, I completely agree with this, I did your same thought when we started using them.
It is something we quickly talked about at the beginning of the project with @rasolca, and I remember that there was also discussion about using other wrappers (or writing new ones).
Here is the link to the blas proposal for reference: wg21.link/p1673. We should potentially move to use the tag types: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p1673r12.html#tag-classes-linalg.tags.