晨光
暗夜
晨光
极光
Bilingual Paper Reading · 中英对照精读

模式引导的 FPGA 加速器设计空间探索(PATTERNDSE)

准大一 · 集成电路设计与集成系统 × FPGA 加速器 × 高层次综合 —— 芯片设计自动化精读材料
原文:arXiv:2607.15068 2026年7月16日发布 arXiv 预印本(cs.AR) 高层次综合 × 设计空间探索 × 计算模式 × Allo 附英文摘要朗读音频

一、论文档案

英文标题Pattern-Guided Design Space Exploration for FPGA Accelerator Design
中文标题模式引导的 FPGA 加速器设计空间探索
作者张家亮, 严伟曼, 邹越林(机构未在素材中标注)
发布时间2026年7月16日(v1)|分类:cs.AR(计算机体系结构)
一句话概括把数值内核的「计算模式」(逐元素、归约、矩阵乘、模板更新)当作向导,把 HLS 的调度搜索从 140 个候选剪枝到 29 个,还能找回与穷举基线相同的最优延迟——用结构知识给昂贵的综合工具当「前置过滤器」。
💡 为什么选这篇给你:① FPGA 加速器设计是「芯片设计自动化(EDA)」里最活跃的方向之一,而 HLS 是软件工程师进入硬件世界的桥;② 思路非常「第一性」——数值内核不是任意程序,它们反复出现几种固定计算模式,模式就能指导搜索;③ 数字很实在(140→29、4.83×、12.0×),方法完整可复现(LLVM 验证 + Vitis HLS 综合);④ 论文主动把自己定位成「前端剪枝层」,不抢饭碗、只干实事,这种工程定位值得学习。

二、核心术语表(先扫一遍再读正文)

英文术语中文大白话解释
high-level synthesis (HLS)高层次综合把 C/C++ 等高级语言直接「编译」成硬件电路描述的工具链,软件人写硬件的主要入口。
design space exploration (DSE)设计空间探索在大量「调度/架构参数组合」里找出最优实现的过程——组合爆炸,所以需要搜索策略。
schedule decisions调度决策流水线、展开、分块、重排序、缓冲等结构性选择,直接决定硬件快不快。
pipelining流水线让数据像工厂流水线一样连续流过计算单元,提高吞吐率。
unrolling循环展开把循环体复制多份并行执行——用更多面积换更高吞吐。
tiling分块把大数据切成一格格小块,让数据在片上缓存里反复复用,减少访问主存。
reordering / buffering重排序 / 缓冲调整运算与访存顺序、暂存中间数据,都是为了改善数据复用、压低内存瓶颈。
computation pattern计算模式数值内核中反复出现的计算「形状」:逐元素映射、归约、矩阵乘、模板更新等。
elementwise map逐元素映射输出的每个元素只依赖输入的对应位置元素,如向量加法 vecadd、axpy。
reduction归约把一组值合并成一个值,如点积 dot 的求和。
matrix-vector / matrix-matrix矩阵-向量 / 矩阵-矩阵运算如 matvec、gemm——复用模式与访存瓶颈和逐元素完全不同。
stencil-like update类模板更新每个输出点依赖邻近若干点,如雅可比迭代 jacobi2d——经典的空间局部性模式。
LLVM executionLLVM 执行验证用 LLVM 工具链实际执行生成的 C 代码,验证调度候选的功能正确性。
Vitis HLSVitis HLS 综合工具Xilinx/AMD 官方的高层次综合工具,吃进 C 代码产出可布线的硬件。
exhaustive-lite baseline简化穷举基线去掉明显不合理组合后的「全搜索」参照物,用来衡量剪枝损失了多少性能。
AlloAllo 编程系统面向调度(scheduling-oriented)的 HLS 编程系统,把调度暴露为一等对象,一个内核可生成多种硬件实现。
front-end pruning layer前端剪枝层在昂贵综合之前先过滤掉低质量候选——PATTERNDSE 给自己的定位。

三、摘要中英对照(精读核心)

🎧 音频在文末,可先听一遍原文再读;每个英文句都配了逐句翻译。

摘要 Abstract

EN · 原文
High-level synthesis (HLS) raises the abstraction level of FPGA accelerator design from hardware description languages to C/C++, but high-quality results still depend on schedule decisions such as pipelining, unrolling, tiling, reordering, and buffering.
CN · 翻译
高层次综合(HLS)把 FPGA 加速器设计的抽象层级从硬件描述语言提升到 C/C++,但高质量的结果仍取决于调度决策——如流水线、展开、分块、重排序和缓冲。
EN · 原文
These decisions create a combinatorial design space, while many numerical kernels exhibit recurring computation patterns that suggest different optimization strategies.
CN · 翻译
这些决策构成了一个组合爆炸的设计空间;而许多数值内核表现出反复出现的计算模式,暗示着不同的优化策略。
EN · 原文
This paper presents PATTERNDSE, a lightweight pattern-guided design space exploration (DSE) framework for FPGA kernels written in Allo, a scheduling-oriented HLS programming system.
CN · 翻译
本文提出 PATTERNDSE——一个轻量的模式引导设计空间探索(DSE)框架,面向用 Allo(面向调度的 HLS 编程系统)编写的 FPGA 内核。
EN · 原文
PATTERNDSE maps recurring computation patterns, including elementwise maps, reductions, matrix-vector operations, matrix-matrix operations, and stencil-like updates, to compact schedule spaces.
CN · 翻译
PATTERNDSE 把反复出现的计算模式——逐元素映射、归约、矩阵-向量运算、矩阵-矩阵运算、类模板更新——映射到紧凑的调度空间
EN · 原文
It then applies candidate schedules, validates functional correctness through LLVM execution, checks HLS C code generation, and uses a simple pattern-aware estimator to rank candidates before Vitis HLS synthesis.
CN · 翻译
随后它应用候选调度,通过 LLVM 执行验证功能正确性、检查 HLS C 代码生成,并在 Vitis HLS 综合前用简单的模式感知估计器给候选排序。
EN · 原文
We evaluate PATTERNDSE on six representative kernels: vecadd, axpy, dot, matvec, gemm, and jacobi2d.
CN · 翻译
我们在 6 个代表性内核上评估 PATTERNDSE:vecadd、axpy、dot、matvec、gemm 和 jacobi2d。
EN · 原文
Compared with an exhaustive-lite baseline, pattern-guided DSE reduces the number of HLS-evaluated candidates from 140 to 29, achieving a 4.83x overall search reduction and up to 12.0x reduction for individual kernels.
CN · 翻译
与简化穷举基线相比,模式引导的 DSE 把需要 HLS 评估的候选从 140 个降到 29 个,实现 4.83× 的整体搜索缩减、单个内核最高 12.0× 缩减。
EN · 原文
Across all evaluated kernels, PATTERNDSE recovers the same best valid Vitis HLS latency as the exhaustive-lite baseline, demonstrating that computation-pattern information can prune unproductive schedule combinations while preserving high-quality HLS outcomes.
CN · 翻译
在所有评估内核上,PATTERNDSE 都找回了与简化穷举基线相同的最优有效 Vitis HLS 延迟——证明计算模式信息能在剪除低效调度组合的同时保住高质量的 HLS 结果

关键词 Keywords:High-Level Synthesis 高层次综合 | Design Space Exploration 设计空间探索 | FPGA | Computation Patterns 计算模式 | Allo

四、引言精选(为什么这个问题重要)

① 背景:FPGA 为什么越来越重要

EN · 原文
The growing diversity of modern workloads has made data-intensive applications, including machine learning, video processing, graph analytics, genomics, and layout generation, increasingly important across cloud and edge platforms [29, 26, 34, 33]. Meanwhile, the slowdown of conventional processor scaling has increased the demand for domain-specific acceleration under tight power and area constraints [10]. Field-programmable gate arrays (FPGAs) address this need by combining post-fabrication flexibility with customized datapaths, fine-grained parallelism, and application-specific memory organization.
CN · 翻译
现代负载日益多样,机器学习、视频处理、图分析、基因组学、版图生成等数据密集型应用在云与边缘平台越来越重要。与此同时,传统处理器扩展放缓,在严苛的功耗与面积约束下对领域专用加速的需求上升。FPGA 以「出厂后可重构的灵活性 + 定制数据通路 + 细粒度并行 + 专用存储组织」回应了这一需求。

② 关键论断:HLS 优化本质上是「搜索问题」

EN · 原文
High-level synthesis (HLS) reduces the programming burden by compiling C/C++ or higher-level descriptions into hardware implementations. However, HLS optimization remains highly dependent on architectural and scheduling choices, including pipelining, unrolling, tiling, reordering, memory partitioning, and buffering. Since these choices interact combinatorially, HLS optimization is fundamentally a design space exploration (DSE) problem rather than a push-button compilation task [9, 25].
CN · 翻译
HLS 通过把 C/C++ 或更高级的描述编译成硬件实现来减轻编程负担。但 HLS 优化高度依赖架构与调度选择(流水线、展开、分块、重排序、存储划分、缓冲)。由于这些选择组合式地相互作用,HLS 优化本质上是一个设计空间探索(DSE)问题,而不是「一键编译」任务。

③ 本文的核心论点:计算结构可以指导搜索

EN · 原文
This paper argues that schedule exploration can be reduced and made more interpretable by exploiting computation structure. Numerical kernels are not arbitrary programs: elementwise maps, reductions, matrix-vector products, matrix-matrix products, and stencil-like updates exhibit different reuse patterns, dependency constraints, and memory bottlenecks.
CN · 翻译
本文主张:利用计算结构可以让调度探索更省、更可解释。数值内核不是任意程序——逐元素映射、归约、矩阵-向量积、矩阵-矩阵积和类模板更新,各自呈现出不同的数据复用模式、依赖约束和内存瓶颈

④ 定位:不抢工具的饭碗,只做「前端剪枝层」

EN · 原文
Rather than replacing vendor HLS tools, analytical models, or learning-based DSE methods, PatternDSE acts as a front-end pruning layer that forwards fewer and more relevant candidates to expensive synthesis.
CN · 翻译
PATTERNDSE 并不取代厂商 HLS 工具、解析模型或基于学习的 DSE 方法,而是充当前端剪枝层:把更少、更相关的候选交给昂贵的综合。
💡 这是全文最有味道的一句“Numerical kernels are not arbitrary programs…”——数值内核不是任意程序,它们有固定的「形状」。先承认结构,再谈优化;这与「先定义清楚问题,再选模型」是同一套思维。

五、论文贡献(3 个要点)

EN · 原文
1. Pattern-guided schedule-space pruning. We formulate pattern-guided schedule-space pruning as a practical HLS DSE layer for recurring numerical kernels.
CN · 翻译
1. 模式引导的调度空间剪枝。把「模式引导的调度空间剪枝」正式化为针对反复出现数值内核的实用 HLS DSE 层
EN · 原文
2. End-to-end workflow. We implement an end-to-end workflow that connects pattern-aware candidate generation, backend validation, estimator-based ranking, and Vitis HLS evaluation through the Allo scheduling interface.
CN · 翻译
2. 端到端工作流。通过 Allo 调度接口实现端到端工作流:模式感知候选生成 → 后端验证 → 基于估计器的排序 → Vitis HLS 评估,一气呵成。
EN · 原文
3. Six-kernel evaluation. We evaluate six kernels and show that PatternDSE reduces HLS-evaluated candidates from 140 to 29 while recovering the same best valid Vitis HLS latency found by the exhaustive-lite baseline.
CN · 翻译
3. 六个内核的评估。评估 6 个内核,证明 PATTERNDSE 把 HLS 评估候选从 140 降到 29,同时找回与简化穷举基线相同的最优有效延迟

六、结论中英对照

EN · 原文
This paper presented PatternDSE, a lightweight pattern-guided DSE framework for FPGA kernels written in Allo. PatternDSE uses computation structure to instantiate compact schedule spaces, validate candidate schedules, rank valid candidates, and evaluate selected designs through Vitis HLS. On six representative kernels, PatternDSE reduces the number of HLS-evaluated candidates from 140 to 29, achieving a 4.83×\times overall search reduction and up to 12.0×\times reduction for an individual kernel. At the same time, it recovers the same best valid Vitis HLS latency as the exhaustive-lite baseline for all evaluated kernels.
CN · 翻译
本文提出 PATTERNDSE——面向 Allo 编写的 FPGA 内核的轻量模式引导 DSE 框架。它利用计算结构实例化紧凑调度空间、验证候选调度、给有效候选排序,并通过 Vitis HLS 评估选中的设计。在 6 个代表性内核上,PATTERNDSE 把需要 HLS 评估的候选从 140 降到 29,实现 4.83× 整体搜索缩减、单内核最高 12.0×;同时,它在所有评估内核上都找回了与简化穷举基线相同的最优有效 Vitis HLS 延迟
EN · 原文
These results show that simple computation-pattern information can make HLS schedule exploration more efficient without sacrificing the best observed HLS outcome within the evaluated search bounds. Realizing this at scale will require shared benchmarks that evaluate DSE methods through executable synthesis rather than self-defined search bounds [14].
CN · 翻译
这些结果表明:简单的计算模式信息就能让 HLS 调度探索更高效,且在评估的搜索边界内不牺牲观测到的最优 HLS 结果。要把这件事做大,需要共享基准——通过可执行的综合来评估 DSE 方法,而不是各自自定义搜索边界。

七、编者解读:这篇论文到底讲了什么(大白话版)

  1. 问题:用 C 语言写 FPGA 加速器(HLS)很方便,但「流水线开几级、循环展开几份、数据怎么分块」这些调度参数组合起来数量爆炸。每个组合都要拿去跑一遍综合才知道好不好——又慢又贵。工程师其实是在「猜」哪个组合好。
  2. 洞察:数值内核不是随意的代码——向量加法、点积、矩阵乘、雅可比迭代各有各的「性格」:有的没依赖(逐元素)、有的要累加(归约)、有的疯狂复用数据(矩阵乘)。不同性格该试的调度组合完全不同。
  3. 做法:PATTERNDSE 先认出内核属于哪种「计算模式」,只在该模式真正值得试的小调度空间里生成候选;然后用 LLVM 跑一遍验证功能对不对、生成 HLS C 代码、用轻量估计器排序,最后才把少数几个候选送进昂贵的 Vitis HLS 综合。
  4. 结果:候选从 140 个砍到 29 个(整体搜索量减少 4.83×,单个内核最多 12.0×),但最终找到的最优延迟和「简化穷举」基线一模一样——剪掉的都是注定没用的组合,一个都不心疼。
  5. 最值钱的观点:别和厂商工具、分析模型、学习式 DSE 抢生意——做「前端剪枝层」,把更少更相关的候选交给昂贵的综合。工程系统的成功常常来自「把自己放在正确的环节」,而不是「全面替代」。
🎯 对保研的启示:这篇论文示范了「用领域结构压缩搜索空间」的通用科研范式——无论是 HLS 调度、编译器优化还是 AI 加速器设计,先找问题的「结构」,再用结构剪枝。复试时能讲清「结构从哪来、剪掉什么、损失如何验证(与穷举基线对比)」,就是一次漂亮的科研叙事。

八、给准大一的阅读路线图 & 延伸方向

📖 怎么读这篇论文(三遍法)

  1. 第一遍(10 分钟):只读摘要和术语表,回答三个问题——问题是什么?方法是什么?结果是什么?(答案:HLS 搜索太贵→用计算模式剪枝→140 到 29 且延迟不降。)
  2. 第二遍(20 分钟):读引言 + 结论,重点体会「数值内核不是任意程序」这个论点,以及结论里「需要共享基准」的坦诚边界。
  3. 第三遍(30 分钟):读方法文字部分(模式→调度空间映射、LLVM 验证、估计器排序),跳过公式与编号,只追主线:生成→验证→排序→综合。遇到不懂的术语回查术语表。

🚀 这个方向你能延伸做什么

九、英文摘要朗读(练听力用)

先盲听一遍→再看对照稿→再听一遍。目标是听出每个数字(140、29、4.83x、12.0x)和术语(schedule decisions、computation patterns、Vitis HLS、exhaustive-lite baseline)。