Introduce `ParamsBindList` to prevent needing to pass `shared_ptr` to bind parameter UBOs (#3150)
Summary: Pull Request resolved: https://github.com/pytorch/executorch/pull/3150 ## Context In keeping with the below changeset in this stack, this diff introduces the `ParamsBindList` structure to avoid storing shared pointers to `api::UniformParamsBuffer` objects in `ExecuteNode` and `PrepackNode`. The idea is to store the binding information of each UPB instead of taking ownership of the UPB itself. There isn't really a need for `ExecuteNode` and `PrepackNode` to take ownership since `ComputeGraph` provides a guarantee that the UPBs will be in scope at the time of binding. With this change, all `shared_ptr` members can be eliminated from `vTensor`, further reducing heap allocations and pointer chasing. In the future I will change `prepack_nodes_` and `execute_nodes_` to store `PrepackNode` and `ExecuteNode` instances directly instead of storing unique pointers to them. ghstack-source-id: 223225899 exported-using-ghexport Reviewed By: jorgep31415 Differential Revision: D56357188 fbshipit-source-id: 5f4d1be900711753aa2cc035c044fe71f93d555b
S
Stephen Jia committed
db17853ca45f40f56eb7e93b378f119c66862b2b
Parent: bf5093a
Committed by Facebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
on 4/19/2024, 7:37:39 PM