MuDP: multi-granularity data placement for uniform loops on SPM-DRAM architectures to minimize latency