-
Notifications
You must be signed in to change notification settings - Fork 7
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
Core coordinates prototype #266
Conversation
9a910ec
to
b160428
Compare
@pgkeller @eyonland @TT-billteng - - couldn't tag you in reviewers for some reason |
@pjanevskiTT feel free to just delete the V2 coords from this PR and continue working on this one, rather than creating a new PR. This would nicely keep all the conversation threads at the same place... |
In |
In |
bbd768b
to
3fb5a0b
Compare
@abhullar-tt @tt-vjovanovic I implemented translation between different DRAM coordinate systems for CoreCoord in 3fb5a0b. This is under assumption that harvesting mask is one bit per bank, I will follow up if something changes. When harvesting info is provided to SW, we will implement e2e support for this. For example on how clients (tt-metal, tt-lens) can interact with the translation you can take a look at |
7526902
to
5665a44
Compare
@broskoTT @abhullar-tt @pgkeller @tt-vjovanovic @tt-asaigal The PR is taking final shape in terms of how translation is going to be implemented. One more thing I need to do is confirm all translated coordinates on Blackhole and implement that, but that will just require overriding few functions, in a way that has already been done. Can you all review parts of the PR that you are interested in, I will continue resolving the original comment all of you have left or I will open issues if those comments are not specific for translations, rather for API/other changes |
821fd97
to
a2845b0
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.
Awesome that we will have this!
Sorry for leaving 32 comments, hopefully you'll also like the result in the end...
321811e
to
6b47f8b
Compare
467ad4a
to
2eb9088
Compare
Implement core coordinates translation
This PR is going to close #219 #243 #228 #212
As discussed, we are going to have
CoordSystem
enum, which is going to be used to determine the appropriate coordiante system of the coordinates that are used in the APIFor now, we support these 4 coordinate systems. For explanations on each coordinate system there is a pending PR to cleanup the docs properly, but understanding these coordinate systems should not be prerequisite to review this PR. It is just needed to understand that each core coordinate can be in multiple coordinate systems.
Note for reviews
Since we have
CoordinateManager
class here, in order to better understand the use of that class it might be useful to skim the PR #202. In general it is mostly used to support the translation between coordinate systems.The most useful parts of the PR to review are (in my opinion)
V1 coordinates
For V1 prototype, we have additional enum representing core type
which is used in the main struct
When using this, it is needed to set both the core type and coordinate system, in order for API to work properly.
V2 coordinates (not going to be implemented, it was used for discussion)
For V2 prototype, we would have one struct for each core type that is represented using enum in V1. In PR, structs are implemented for Tensix and DRAM cores, just to see the effects of having multiple core types
When using this it is needed to set just the coordinate system, core type comes from struct type.
API changes
API is provided inside tt_SiliconDevice class for both the V1 and V2 core coordinates. Focus was on providing API for reads/writes as the example. I think looking this from PR is the best way to explain it.
Main point to make here is that API is the same for all coordinate systems, which was one of the points that tt-metal folks made in the meeting. UMD can figure out how to properly program the TLBs and write to device for any coordinate system. In the PR we rely on translating everything to physical (NOC) coordinates
Pros/cons
All pros/cons are my view, feel free to comment on everything
V1
Pros
Cons
V2
Pros
Cons
Questions for reviewers
TODOs