Applying Temporal Blocking with a Directive-Based Approach
Author/Presenters
Event Type
Workshop

Compiler Analysis and Optimization
Compilers
Debugging
Parallel Programming Languages, Libraries, Models and Notations
Program Transformation
SIGHPC Workshop
TimeMonday, November 13th4pm - 4:30pm
Location710
DescriptionStencil kernels are important, iterative computation patterns heavily used in scientific simulations and other operations such as image processing. The performance of stencil kernels is usually bound by memory bandwidth, and the common method of overcoming this is to apply Temporal Blocking (TB) as a form of bandwidth reducing algorithm. However, applying TB to existing code incurs high programming cost due to real-life codes embodying complex loop structures, and moreover, multitudes of parameters and blocking schemes involved in TB complicating the tuning process. We propose an automated, directive-based compiler approach for TB by extending the polyhedral compilation in the Polly/LLVM framework, significantly reducing programming cost as well as being easily subject to auto-tuning. Evaluation of the performance of our generated stencil codes on Core i7 and Xeon Phi show that the auto-generated stencil kernels achieve performance that is close to and often on par with hand TB-converted and optimized codes.