Title :
Model-Driven SIMD Code Generation for a Multi-resolution Tensor Kernel
Author :
Stock, Kevin ; Henretty, Tom ; Murugandi, Iyyappa ; Sadayappan, P. ; Harrison, Robert
Abstract :
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.
Keywords :
parallel processing; tensors; C-based implementation; MADNESS quantum chemistry application; model-driven SIMD code generation; model-driven code generator; model-driven compile-time code generator; multiresolution tensor kernel; optimal loop permutation; short-vector SIMD architecture; short-vector SIMD code; splat operation; tensor contraction expression; vector-code synthesizer; Arrays; Generators; Indexes; Kernel; Registers; Tensile stress;
Conference_Titel :
Parallel & Distributed Processing Symposium (IPDPS), 2011 IEEE International
Conference_Location :
Anchorage, AK
Print_ISBN :
978-1-61284-372-8
Electronic_ISBN :
1530-2075
DOI :
10.1109/IPDPS.2011.101