-
Notifications
You must be signed in to change notification settings - Fork 14
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
Enable Gemm (local) to be used with MatrixRef #969
Conversation
This looks good to me for the current use cases. I see now what the main difficulty would be with relaxing constraints on the input matrices: ETI. I don't know what the best way around this is. Inheritance works, but if possible I'd rather not go there. We might have to try out and see how bad the compile times would be from exposing the implementations again to allow arbitrary instantiations. |
e14576c
to
3389fb4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add tests with submatrices.
GemmConfig{blas::Op::NoTrans, blas::Op::NoTrans, 21, 21, 21, 3, 3, 3}, | ||
GemmConfig{blas::Op::NoTrans, blas::Op::NoTrans, 12, 20, 11, 3, 4, 5}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add other test cases. E.g.:
- One of the matrices has a single incomplete tile
- a couple of other test with a full matrix
9f36f8b
to
fec1876
Compare
fec1876
to
8235e1e
Compare
cscs-ci run |
cscs-ci run |
cscs-ci run |
Quickly tested ROCm image, which was super slow. I had a look about bindings and they seemed ok. Anyway, I did not investigate any further about slowness, and I went on by runnning just That's enough for what concerns this PR. 🟢 |
cscs-ci run |
This PR partially address #915 (just local variant)
gemm
(local) implementation working with MatrixRef (only, at the moment) with related tests for both full and sub-matrix test-casesscal
tile extensionlocal_matrix
andmultipliable
assert + introduction ofsame_process_grid
subValues
andmixValues
)MatrixBase
string representation also print information aboutsource_rank_index
andoffset
TODO
multipliable
assertion (separate it from algorithm details)scal
workaround of usinggemm
with nullptr works there too)Note:
GeneralSub
was intended to work on submatrices, while now thesub-matrix
concept is hidden byMatrixRef
. For this reason, the new gemm helper might just be considered a full general multiplication, and it might be moved inmultiplication::general::General
(or something like that).