[ET-VK] Move `save_cache` from Runtime dtor to model destroy (#7002)
Pull Request resolved: https://github.com/pytorch/executorch/pull/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 <jorgepineda140@gmail.com>
P
pytorchbot committed
792ef43fc67a76f892d8a1e89ac438cac59e5d90
Parent: 0dc25e5
Committed by GitHub <noreply@github.com>
on 11/21/2024, 4:19:27 AM