-
Notifications
You must be signed in to change notification settings - Fork 97
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
#0: Hoist SubDeviceManager/Lock-Step Allocator to MeshDevice #16878
Conversation
1f34d17
to
92a2dd9
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.
Clang-Tidy
found issue(s) with the introduced code (1/1)
92a2dd9
to
d91d8e5
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.
Some high level questions for now. In general, I think it is worth exploring a better "allocator" abstraction that is independent of details of mesh / single device / sub device.
5968a64
to
2f3c743
Compare
89a2fd9
to
a04ce94
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.
Sub-Device related changes look okay to me. Cleanup of how we want to expose these apis/interfaces instead of having a bunch of wrapping fns is a different discussion/issue from this pr.
a04ce94
to
6558bf9
Compare
6558bf9
to
86d6a3b
Compare
|
||
void initialize(); | ||
std::unique_ptr<SubDeviceManagerTracker> sub_device_manager_tracker_; | ||
std::unique_ptr<WorkExecutor> work_executor_; |
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.
Hmm, isn't this new?
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.
I mentioned this yesterday... This is being added to provide implementations for IDevice
interface for executor methods like push_work
. Right now I'm defaulting executor to work in synchronous mode. This was added so that Buffer::create -> calls push_work -> requires executor methods on MeshDevice
.
Separate discussion needs to be had about removing this from IDevice
interface but my goal is to unify the APIs, as-is and to do so incrementally to prepare for TT-NN integration.
Ticket
Link to Github Issue
Problem description
As part of the TT-Mesh scope of work, we want to natively virtualize the devices in the mesh. Part of this virtualization process involves deferring to a single set of allocators (global, per-subdevice) at the MeshDevice level, instead of issuing repeated allocations on each of the per-device allocators.
What's changed
SubDeviceManagerTracker
to the MeshDevice level.Checklist