一句话:提出 Diospyros,用符号求值与等价饱和为 DSP 小型线性代数内核自动搜索高效向量化与数据布局。
面向数字信号处理器(DSP)的应用常依赖小型线性代数内核的高效实现。现有时量编译器虽能从大型内核中提取性能,却难以自动发明小型内核优化所需的复杂数据搬移,DSP 工程师往往只能手工编写与调优。本文提出 Diospyros,一种基于搜索的编译器:它结合符号求值与等价饱和,在结构不规则的计算上自动搜索向量化方案与数据布局。评估表明,Diospyros 编译得到的内核平均比现有 DSP 库实现快 3.1 倍,能够与专家手工调优代码相竞争,并可为完整 DSP 应用带来端到端加速。
Applications targeting digital signal processors (DSPs) benefit from fast implementations of small linear algebra kernels. While existing auto-vectorizing compilers are effective at extracting performance from large kernels, they struggle to invent the complex data movements necessary to optimize small kernels. To get the best performance, DSP engineers must hand-write and tune specialized small kernels for a wide spectrum of applications and architectures. We present Diospyros, a search-based compiler that automatically finds efficient vectorizations and data layouts for small linear algebra kernels. Diospyros combines symbolic evaluation and equality saturation to vectorize computations with irregular structure. We show that a collection of Diospyros-compiled kernels outperform implementations from existing DSP libraries by 3.1× on average, that Diospyros can generate kernels that are competitive with expert-tuned code, and that optimizing these small kernels offers end-to-end speedup for a DSP application.
DOI 原文 ·
@inproceedings{paperbot6097,
title = {Vectorization for digital signal processors via equality saturation},
author = {Alexa VanHattum and Rachit Nigam and Vincent T. Lee and James Bornholt and Adrian Sampson},
booktitle = {ASPLOS},
year = {2021},
doi = {10.1145/3445814.3446707}
}