Abstracting Vector Architectures in Library Generators: Case Study Convolution Filters
The slides bellow are part of my talk given on ARRAY’14 workshop, collocated with PLDI’14 in Edinburgh, UK. The slides are an overview of the FGen project that deals with vector abstractions.
The project resulted with the publication of Abstracting Vector Architectures in Library Generators: Case Study Convolution Filters, having the following abstract:
We present FGen, a program generator for high performance convolution operations (finite-impulse-response filters). The generator uses an internal mathematical DSL to enable structural optimization at a high level of abstraction. We use FGen as a testbed to demonstrate how to provide modular and extensible support for modern SIMD vector architectures in a DSL-based generator. Specifically, we show how to combine staging and generic programming with type classes to abstract over both the data type (real or complex) and the target architecture (e.g., SSE or AVX) when mapping DSL expressions to C code with explicit vector intrinsics. Benchmarks shows that the generated code is highly competitive with commercial libraries.
Slides and results are available below:
For a more detailed overview either check out our paper, or the FGen project page.