DELTA: Dynamically Optimizing GPU Memory beyond Tensor Recomputation