3.5-D Blocking Optimization for Stencil Computations on Modern CPUs and GPUs
Throughput Computing Lab, Intel Corporation
International Conference for High Performance Computing, Networking, Storage and Analysis (SC), 2010
@inproceedings{nguyen20103,
title={3.5-D Blocking Optimization for Stencil Computations on Modern CPUs and GPUs},
author={Nguyen, A. and Satish, N. and Chhugani, J. and Kim, C. and Dubey, P.},
booktitle={Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis},
pages={1–13},
year={2010},
organization={IEEE Computer Society}
}
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.
July 18, 2011 by hgpu