Finite Element Integration with Quadrature on the GPU
Department of Computational and Applied Mathematics, Rice University, Houston, TX
arXiv:1607.04245 [cs.MS], (14 Jul 2016)
@article{knepley2016finite,
title={Finite Element Integration with Quadrature on the GPU},
author={Knepley, Matthew G. and Rupp, Karl and Terrel, Andy R.},
year={2016},
month={jul},
archivePrefix={"arXiv"},
primaryClass={cs.MS}
}
We present a novel, quadrature-based finite element integration method for low-order elements on GPUs, using a pattern we call thread transposition to avoid reductions while vectorizing aggressively. On the NVIDIA GTX580, which has a nominal single precision peak flop rate of 1.5 TF/s and a memory bandwidth of 192 GB/s, we achieve close to 300 GF/s for element integration on first-order discretization of the Laplacian operator with variable coefficients in two dimensions, and over 400 GF/s in three dimensions. From our performance model we find that this corresponds to 90% of our measured achievable bandwidth peak of 310 GF/s. Further experimental results also match the predicted performance when used with double precision (120 GF/s in two dimensions, 150 GF/s in three dimensions). Results obtained for the linear elasticity equations (220 GF/s and 70 GF/s in two dimensions, 180 GF/s and 60 GF/s in three dimensions) also demonstrate the applicability of our method to vector-valued partial differential equations.
July 16, 2016 by hgpu