-
Notifications
You must be signed in to change notification settings - Fork 96
Enable mixed precision dispatch in distributed matrix with ScalarCache, GenericDenseCache, and GenericVectorCache #1819
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
Conversation
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.
LGMT, just some minor remarks.
b0a8db4
to
d3bab40
Compare
@yhmtsai can you rebase again? |
d3bab40
to
77868e5
Compare
ad74383
to
fb83400
Compare
@MarcelKoch sure, it is done |
dafb3e6
to
e7178d5
Compare
f6a3abb
to
7e005ab
Compare
@MarcelKoch Because buffer is handled by distributed::Vector now, I add GenericVectorCache for that. |
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.
Are the changes to precision_dispatch.hpp
intentional?
Otherwise, LGTM.
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.
These changes look like they are reverting some previous commits. Is that actually wanted?
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.
No, it was the mistake during rebase
b88f705
to
0725db0
Compare
@@ -62,8 +62,6 @@ DEBUG: end copy | |||
DEBUG: begin copy | |||
DEBUG: end copy | |||
DEBUG: end copy(<typename>) | |||
DEBUG: begin dense::fill |
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.
because ScalarCache allocate the memory when it is first used with the type
"storage": 11476, | ||
"storage": 11452, |
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.
It is from DenseCache -> ScalarCache, we allocate the memory when using it.
It is 3 * sizeof(ValueType) because we use 3 processes for mpi
…distributed matrix mixed precision
Co-authored-by: Marcel Koch <marcel.koch@kit.edu>
the size difference is 3 * ValueType because we use 3 process for mpi
074b9b1
to
a60e3da
Compare
f4da7a9
to
71c3aea
Compare
|
This PR enables the mixed precision dispatch in distributed matrix.
Moreover, it adds the
ScalarCache
to handle the scalar with user-specified value but with different type (mainly for one scalar) and theGenericDenseCache
andGenericVectorCache
to reuse the workspace for Dense view with different value type for the communication buffer.Both them will prepare the data during the get not initialized.
Although it is based on the distributed rowGatherer now, it is not required.