Abstracting Vector Architectures in Library Generators: Case Study Convolution Filters

Abstracting Vector Architectures in Library Generators: Case Study Convolution Filters
复制标题

库生成器中的抽象向量架构:案例研究卷积滤波器

DOI:
--
复制
发表时间:
2014
期刊:
ARRAY@PLDI
影响因子:
--
通讯作者:
Markus Püschel
Markus Püschel
中科院分区:
--
文献类型:
--
作者:
A. Stojanov;Georg Ofenbeck;Tiark Rompf;Markus Püschel

文献摘要

被引文献

相似文献

我们提出了fgen,一个用于高性能卷积运算(有限脉冲响应滤波器)的程序生成器。生成器使用内部数学DSL来实现高抽象级别的结构优化。我们使用fgen作为测试平台来演示如何在基于DSL的生成器中为现代SIMD向量架构提供模块化和可扩展的支持。具体地说,我们展示了如何将分段和泛型编程与类型类相结合,以便在将DSL表达式映射到具有显式向量内部函数的C代码时,对数据类型(实数或复杂)和目标体系结构(例如,SSE或AVX)进行抽象。基准测试表明,生成的代码与商业库具有很强的竞争力。
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.