SemCache: Semantics-Aware Caching for Efficient GPU Offloading