-
Notifications
You must be signed in to change notification settings - Fork 802
[SYCL][Matrix spec] keep deletion of assign op and copy ctor but change signature of joint_matrix_mad #11007
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
Merged
Merged
Changes from 1 commit
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Why do we need to say that the copy constructor and assignment operator don't copy the matrix content? How would the application even be able to tell whether the matrix content was copied? Isn't the content of the matrix hidden behind this abstract
joint_matrixtype?I'm thinking now that we could replace
joint_matrix_copywith an assignment operator that allows the user to copy from a matrix with differentUseandT(type). That way, matrix copy operations will always be done via the assignment operator. That seems clearer than having both an assignment operator and ajoint_matrix_copyfunction.Uh oh!
There was an error while loading. Please reload this page.
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.
@gmlueck, if we have the assignment op do the actual data copy,
= joint_matrix_madthat uses assignment op would do extra unnecessary copy of the data (llvm/sycl/include/sycl/ext/oneapi/matrix/matrix-unified.hpp
Line 418 in faec54c
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 seems like neither
joint_matrix_copynor the assignment operator should copy anything to/from memory. The only memory operations arejoint_matrix_loadandjoint_matrix_store. It seems like bothjoint_matrix_copyand the assignment operator should both just copy some "handle" that represents the register(s) that hold the matrix content?In your implementation today, what is the difference between the implementation of
joint_matrix_copyand the copy operator?Here's another way to think about it. Consider a code snippet like this:
I think a user would expect the matrix
m2to still contain the data loaded fromptr1after the end of that code snippet. Isn't this the same semantic asjoint_matrix_copy?