Skip to main navigation Skip to search Skip to main content

Model-driven SIMD code generation for a multi-resolution tensor kernel

  • Kevin Stock
  • , Tom Henretty
  • , Iyyappa Murugandi
  • , P. Sadayappan
  • , Robert Harrison
  • Ohio State University

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

12 Scopus citations

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.

Original languageEnglish
Title of host publicationProceedings - 25th IEEE International Parallel and Distributed Processing Symposium, IPDPS 2011
Pages1058-1067
Number of pages10
DOIs
StatePublished - 2011
Event25th IEEE International Parallel and Distributed Processing Symposium, IPDPS 2011 - Anchorage, AK, United States
Duration: May 16 2011May 20 2011

Publication series

NameProceedings - 25th IEEE International Parallel and Distributed Processing Symposium, IPDPS 2011

Conference

Conference25th IEEE International Parallel and Distributed Processing Symposium, IPDPS 2011
Country/TerritoryUnited States
CityAnchorage, AK
Period05/16/1105/20/11

Keywords

  • library generators
  • model-driven code optimization
  • tensor contraction
  • vectorization

Fingerprint

Dive into the research topics of 'Model-driven SIMD code generation for a multi-resolution tensor kernel'. Together they form a unique fingerprint.

Cite this