Skip to content

Conversation

@GiovaGa
Copy link
Collaborator

@GiovaGa GiovaGa commented Nov 12, 2025

Resolves #400

@anyzelman
Copy link
Member

The MR fixes it for reference and reference_omp, but I thought you mentioned all other backends also run into this issue @GiovaGa ?

@anyzelman anyzelman added the bug Something isn't working label Nov 24, 2025
@anyzelman anyzelman added this to the v0.8 milestone Nov 24, 2025
@GiovaGa
Copy link
Collaborator Author

GiovaGa commented Nov 25, 2025

You are definitely right. I have now fixed also for the nonblocking backend.
The other backends call the same internal function of the reference backend, so this should do it for them

@anyzelman anyzelman force-pushed the 400-dense_output_vector_not_checked_mxv branch from 778c24f to e4c0a49 Compare December 23, 2025 02:34
anyzelman
anyzelman previously approved these changes Dec 23, 2025
@anyzelman
Copy link
Member

Running CI, running all unit & smoke tests with LPF. Looks ready to merge if these are both OK. Concept release notes:

Prior to this MR, calling mxv or vxm with a dense descriptor while the input/output vector was not dense, would not yield ILLEGAL for all supported backends. This MR fixes that, and also ensures that ILLEGAL is returned when one of the vector masks is non-empty (size larger than 0) and sparse. Furthermore, this MR adds a unit tests to guard against regressions.

Thanks to @GiovaGa for spotting the bug and providing the fixes for the reference, reference_omp, and nonblocking backends!

Copy link
Collaborator Author

@GiovaGa GiovaGa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems good to me.
My only observation is that it may make sense to add an assert in exec_tests to guarantee that indeed at least one vector is not dense, as going quickly through the test, this doesn't seem obvious (and the function exec_tests does not specify such precondition)

@GiovaGa
Copy link
Collaborator Author

GiovaGa commented Jan 6, 2026

Right now, the test fails when running with 16 processes (and only in that case)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

grb::mxv<dense> with sparse output returns grb::SUCCESS

3 participants