3.5-D Blocking Optimization for Stencil Computations on Modern CPUs and GPUs
Authors:
- Anthony NguyenANAnthony Nguyen
- Nadathur SatishNSNadathur Satish
- Jatin ChhuganiJCJatin Chhugani
- Changkyu KimCKChangkyu Kim
- Pradeep DubeyPDPradeep Dubey
Top Cited Papers
- 1 November 2010
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 21674329,p. 1-13
Abstract
Stencil computation sweeps over a spatial grid over multiple time steps to perform nearest-neighbor computations. The bandwidth-to-compute requirement for a large class of stencil kernels is very high, and their performance is bound by the available memory bandwidth. Since memory bandwidth grows slower than compute, the performance of stencil kernels will not scale with increasing compute density. We present a novel 3.5D-blocking algorithm that performs 2.5D-spatial and temporal blocking of the input grid into on-chip memory for both CPUs and GPUs. The resultant algorithm is amenable to both thread- level and data-level parallelism, and scales near-linearly with the SIMD width and multiple-cores. Our performance numbers are faster or comparable to state-of-the-art-stencil implementations on CPUs and GPUs. Our implementation of 7-point-stencil is 1.5X-faster on CPUs, and 1.8X faster on GPUs for single- precision floating point inputs than previously reported numbers. For Lattice Boltzmann methods, the corresponding speedup number on CPUs is 2.1X.Keywords
This publication has 23 references indexed in Scilit:
- Optimization of a lattice Boltzmann computation on state-of-the-art multicore platformsJournal of Parallel and Distributed Computing, 2009
- 3D finite difference computation on GPUs using CUDA2009
- Optimization and Performance Modeling of Stencil Computations on Modern MicroprocessorsSIAM Review, 2009
- Efficient Temporal Blocking for Stencil Computations by Multicore-Aware Wavefront Parallelization2009
- Stencil computation optimization and auto-tuning on state-of-the-art multicore architectures2008
- Scientific Computing Kernels on the Cell ProcessorInternational Journal of Parallel Programming, 2007
- The memory behavior of cache oblivious stencil computationsThe Journal of Supercomputing, 2007
- Implicit and explicit optimizations for stencil computations2006
- Tiling Optimizations for 3D Scientific Computations2000
- Algorithms for scalable synchronization on shared-memory multiprocessorsACM Transactions on Computer Systems, 1991