Rice Computer Science: <title>Rice Computer Science-Colloquia
[RiceCS]
DEPARTMENT
RESEARCHACADEMICS
PEOPLENEWS
[Rice]
Rice Computer Science
  SEARCH:
  
Rice University
Department of Computer Science
presents

Olav Beckmann
Imperial College, London

Dynamic Code Generation in C++ as a Foundation for Domain-Specific Optimisation

Abstract

The TaskGraph Library is a C++ library for dynamic code generation, which combines specialisation with dependence analysis and restructuring optimisation. A TaskGraph represents a fragment of code which is constructed and manipulated at run-time, then compiled, dynamically linked and executed. The TaskGraph Library is implemented purely in C++, using macros and operator overloading to define a simplified, C-like sub-language that is used for initialising TaskGraphs. The internal representation used for representing generated code is SUIF-1, and the TaskGraph library implements an API for calling SUIF's code-restructuring passes on the generated code.

We view the TaskGraph Library as a research tool for facilitating domain-specific runtime optimisations in scientific code. One key distinction of this approach is its combination of runtime code specialisation and restructuring optimisation.

We have implemented the following sample applications to evaluate our ideas:

  • Runtime specialisation of a generic image filtering application to a specific convolution matrix.
  • Runtime loop interchange and tiling of matrix multiply.
  • A prototype implementation of runtime tiling of dense stencil loops.
  • Runtime unrolling of loops over Morton-order matrices. We are currently planning to use the TaskGraph library as a tool for implementing and evaluating domain-specific optimisation "components" for scientific programs. We are particularly interested in exploring this idea in the context of stencils.

    Joint work with Paul H J Kelly.

    Tuesday, Sept. 30 at 3:00 p.m. in DH 1070

    About Olav Beckmann

    Olav Beckmann is a Research Associate in the Department of Computing at Imperial College London. He is a member of the Software Performance Optimisation Research Group led by Paul Kelly.

--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---