Abstracting Vector Architectures in Library Generators: Case Study Convolution Filters
Abstracting Vector Architectures in Library Generators: Case Study Convolution Filters
复制标题
库生成器中的抽象向量架构:案例研究卷积滤波器
DOI:
--
复制
发表时间:
2014
期刊:
影响因子:
--
通讯作者:
Markus Püschel
中科院分区:
文献类型:
--
作者:
A. Stojanov;Georg Ofenbeck;Tiark Rompf;Markus Püschel
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.