You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[ET-VK] Move save_cache from Runtime dtor to model destroy (#7002)
Pull Request resolved: pytorch/executorch#6974
## Issue
`Runtime` is a local static variable. Hence we'd expect the Runtime dtor to be called on program exit. But on Android devices it's not being invoked. This behavior is different than that seen 6 months ago (D57085281). It's unclear what changed.
This means the cache is not saved due to the following chain never being invoked.
`~Runtime()` > `~Adapter()` > `~ComputePipelineCache()` > `save_cache()`.
## Solution
Move cache saving to `VulkanBackend.cpp`'s model destroy. This makes sense since the cache is tied to the model and not the runtime.
## Resources
https://medium.com/@martin00001313/mastering-static-objects-in-c-initialization-destruction-and-best-practices-760b17734195
ghstack-source-id: 254701488
@exported-using-ghexport
Differential Revision: [D66179917](https://our.internmc.facebook.com/intern/diff/D66179917/)
---------
Co-authored-by: jorgep31415 <[email protected]>
0 commit comments