P48 - ProtoX: A First Look
DescriptionStencil operation is a key component in the numerical solution of partial differential equations. Developers tend to use different libraries that provide these operations for them. One such library is Proto. It is a C++ based domain specific library designed to provide an intuitive interface that optimizes the designing and scheduling of an algorithm aimed at solving various partial differential equations numerically. The high level of abstractions used in Proto can be fused together to improve its current performance. However, abstraction fusion cannot be performed easily by a compiler. In order to overcome this shortcoming we present ProtoX, a code generation framework for stencil operation based on Proto and uses SPIRAL as its backend. SPIRAL is a GAP based code generation system that focuses on generating highly optimized target code in C/C++. We demonstrate the construction of ProtoX by considering two examples, the 2D Poisson problem and the Euler equations that appear in the study of gas dynamics. Some of the code generated for these two problem specifications is shown along with the initial speedup result.
TimeTuesday, June 2710:20 - 10:21 CEST