Model-Driven SIMD Code Generation for a Multi-resolution Tensor Kernel

Kevin Stock, Tom Henretty, Iyyappa Thirunavukkarasu Murugandi, Ponnuswamy Sadayappan, Robert J. Harrison · 2011

In this paper, we describe a model-driven compile-time code generator that transforms a class of tensor contraction expressions into highly optimized short-vector SIMD code. We use as a case study a multi-resolution tensor kernel from the MADNESS quantum chemistry application. Performance of a C-based implementation is low, and because the dimensions of the tensors are small, performance using vendor optimized BLAS libraries is also sub optimal. We develop a model-driven code generator that determines the optimal loop permutation and placement of vector load/store, transpose, and splat operations in the generated code, enabling portable performance on short-vector SIMD architectures. Experimental results on an SSE-based platform demonstrate the efficiency of the vector-code synthesizer.

Read the paper · More papers on PaperTik