|Authors||J. D. Trotter, J. Langguth and X. Cai|
|Title||Automated Code Generation for GPU-Based Finite Element Computations in FEniCS|
|Project(s)||Meeting Exascale Computing with Source-to-Source Compilers|
|Year of Publication||2021|
|Place Published||SIAM Conference on Computational Science and Engineering (CSE21)|
Developing high-performance finite element codes normally requires hand-crafting and fine tuning of computational kernels, which is not an easy task to carry out for each and every problem. Automated code generation has proved to be a highly productive alternative for frameworks like FEniCS, where a compiler is used to automatically generate suitable kernels from high-level mathematical descriptions of finite element problems. This strategy has so far enabled users to develop and run a variety of high-performance finite element solvers on clusters of multicore CPUs. We have recently enhanced FEniCS with GPU acceleration by enabling its internal compiler to generate CUDA kernels that are needed to offload finite element calculations to GPUs, particularly the assembly of linear systems. This poster presents the results of GPU-accelerating FEniCS and explores performance characteristics of auto-generated CUDA kernels and GPU-based assembly of linear systems for finite element methods.