• DocumentCode
    3206467
  • Title

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

  • Author

    Stock, Kevin ; Henretty, Tom ; Murugandi, Iyyappa ; Sadayappan, P. ; Harrison, Robert

  • fYear
    2011
  • fDate
    16-20 May 2011
  • Firstpage
    1058
  • Lastpage
    1067
  • 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;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel & Distributed Processing Symposium (IPDPS), 2011 IEEE International
  • Conference_Location
    Anchorage, AK
  • ISSN
    1530-2075
  • Print_ISBN
    978-1-61284-372-8
  • Electronic_ISBN
    1530-2075
  • Type

    conf

  • DOI
    10.1109/IPDPS.2011.101
  • Filename
    6012913