We are finding that the savings of diff-based epilogues is based on application behavior.
Generally, diff epilogues are better for more realistic workloads, where GPU kernels change a small portion of overall device memory.
Full epilogues are better for kernel benchmarks (e.g., HeCBench).
The differences are quite stark: up to 2x storage space increase for pathological diff cases, and up to 2x storage space increase for pathological full-epilogue case.
We should have an auto mode to detect which mode yields space savings.
It seems easy to detect when a diff you're building will be larger than the prologue itself and fallback to full epilogue in these cases.
We are finding that the savings of diff-based epilogues is based on application behavior.
Generally, diff epilogues are better for more realistic workloads, where GPU kernels change a small portion of overall device memory.
Full epilogues are better for kernel benchmarks (e.g., HeCBench).
The differences are quite stark: up to 2x storage space increase for pathological diff cases, and up to 2x storage space increase for pathological full-epilogue case.
We should have an
automode to detect which mode yields space savings.It seems easy to detect when a diff you're building will be larger than the prologue itself and fallback to full epilogue in these cases.