| 英文术语 | 中文 | 大白话解释 |
|---|---|---|
| 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 execution | LLVM 执行验证 | 用 LLVM 工具链实际执行生成的 C 代码,验证调度候选的功能正确性。 |
| Vitis HLS | Vitis HLS 综合工具 | Xilinx/AMD 官方的高层次综合工具,吃进 C 代码产出可布线的硬件。 |
| exhaustive-lite baseline | 简化穷举基线 | 去掉明显不合理组合后的「全搜索」参照物,用来衡量剪枝损失了多少性能。 |
| Allo | Allo 编程系统 | 面向调度(scheduling-oriented)的 HLS 编程系统,把调度暴露为一等对象,一个内核可生成多种硬件实现。 |
| front-end pruning layer | 前端剪枝层 | 在昂贵综合之前先过滤掉低质量候选——PATTERNDSE 给自己的定位。 |
🎧 音频在文末,可先听一遍原文再读;每个英文句都配了逐句翻译。
关键词 Keywords:High-Level Synthesis 高层次综合 | Design Space Exploration 设计空间探索 | FPGA | Computation Patterns 计算模式 | Allo
先盲听一遍→再看对照稿→再听一遍。目标是听出每个数字(140、29、4.83x、12.0x)和术语(schedule decisions、computation patterns、Vitis HLS、exhaustive-lite baseline)。