Tobias Grosser

PACT
Absinthe: Learning an Analytical Performance Model to Fuse and Tile Stencil Codes in One Shot

Tobias Gysi, Tobias Grosser, Torsten Hoefler, 2019

Expensive data movement makes the optimal target-specific selection of data-locality transformations essential. Loopfusion and tiling are the most important data-locality trans-formations. Their optimal selection is hard since good tilesize choices inherently depend on the fusion choices and vice versa. Existing approaches avoid this difficulty by optimizing independent analytical models or by reverting to heuristics. Absinthe formulates the first unified linear optimization problem to derive single shot fusion and tile size decisions for stencil codes. At the core of our optimization problem, we place a learned analytic performance model that captures the characteristics ofthe target system. The tuned application kernels demonstrate excellent performance within 10% of exhaustively auto-tuned versions and up to 74% faster than the results of independent optimization with max fusion heuristic and Absinthe tile size selection. While the full search space is non-linear, bounding it to relevant solutions enables the efficient exploration of the exponential search space using linear solvers. As a result, the tuning of our application kernels takes less than one minute. Our approach thus establishes the foundations for next-generation compilers, which exploit empirical information to guide target-specific code transformations.

Publisher Paper