Multicore-optimized wavefront diamond blocking for optimizing stencil updates
arXiv:1410.3060 · doi:10.1137/140991133
Abstract
The importance of stencil-based algorithms in computational science has focused attention on optimized parallel implementations for multilevel cache-based processors. Temporal blocking schemes leverage the large bandwidth and low latency of caches to accelerate stencil updates and approach theoretical peak performance. A key ingredient is the reduction of data traffic across slow data paths, especially the main memory interface. In this work we combine the ideas of multi-core wavefront temporal blocking and diamond tiling to arrive at stencil update schemes that show large reductions in memory pressure compared to existing approaches. The resulting schemes show performance advantages in bandwidth-starved situations, which are exacerbated by the high bytes per lattice update case of variable coefficients. Our thread groups concept provides a controllable trade-off between concurrency and memory usage, shifting the pressure between the memory interface and the CPU. We present performance results on a contemporary Intel processor.
References in corpus (1)
Cited by in corpus (8)
- Loop Tiling in Large-Scale Stencil Codes at Run-time with OPS
- A Versatile Software Systolic Execution Model for GPU Memory-Bound Kernels
- Level-based Blocking for Sparse Matrices: Sparse Matrix-Power-Vector Multiplication
- Revisiting Temporal Blocking Stencil Optimizations
- PERKS: a Locality-Optimized Execution Model for Iterative Memory-bound GPU Applications
- Accelerating solutions of one-dimensional unsteady PDEs with GPU-based swept time-space decomposition
- The swept rule for breaking the latency barrier in time advancing two-dimensional PDEs
- Designing a 3D Parallel Memory-Aware Lattice Boltzmann Algorithm on Manycore Systems