ChatHLS: Towards Systematic Design Automation and Optimization for High-Level Synthesis
Idea
ChatHLS 把从 C/C++ 或自然语言生成 HLS-C、优化 directives 和修复综合错误组织成多 agent 闭环,并训练 HLSTuner 与 HLSFixer 两个专门模型。核心改变是让优化显式关联 directives 与实际 QoR,让修复先解释工具错误再产生精确修改指令,而不只学习代码到代码映射。
Research Problem
通用代码 LLM 对可综合语法、PIPELINE/UNROLL/ARRAY_PARTITION 的语义及相互影响缺乏知识;传统 DSE 又受组合空间和分钟至小时级综合开销限制。已有 RAG 可能检索到仅部分匹配的错误,简单微调通常不能同时处理 HLS 兼容性、指令冲突和特定资源约束下的性能优化。
Insight
HLS 工具的错误日志和 QoR 报告是比语言自评更具体的监督来源。将诊断与代码修改分工,可以让修复围绕可定位的原因展开;将 directives 变化、硬件并行性与延迟/资源变化写成 reasoning,则为优化提供结构化依据。持续收集未覆盖错误又能扩展诊断数据的覆盖范围。
Method
- 生成 agent 结合检索的 HLS 知识得到初始 HLS-C;HLSTuner 接收代码、loop/array metadata 和初始 QoR,输出指令类型、factor、目标位置与插入计划,再由 insertion agent 执行并依据新 QoR 迭代调整并行度。
- 用 NSGA-II 搜索得到不同 directive 配置及实测 QoR,由教师模型生成优化 CoT,形成 4,804 条优化样本训练 Qwen-2.5-Coder-14B-Instruct,使模型学习资源消耗与性能变化的关联。
- HLSFixer 解析 simulation/synthesis 日志,分析 agent 输出错误位置、原因和修改动作,修复 agent 执行后对 golden results 复测;失败时启用多个诊断候选与 judge,综合日志一致性和修改范围选择建议。
- VODA 将新错误整理为 BugRAG error slices,并检索这些错误向正确设计注入可验证 bug;用 10,878 条 buggy code 做 SFT、3,716 个偏好对做 DPO,偏好构造强调利用错误日志。最终以 CSIM、CSYN、COSIM 验证功能和综合可行性,并评估优化 QoR。
Sources & Reading Scope
阅读依据:官方 PDF 正文。核读页码按 PDF 页序计数,可能与 proceedings 页码不同。
p. 1 · p. 3 · p. 4 · p. 5 · p. 6
核读章节:3.1 ChatHLS Architecture & Workflow · 3.2 HLSTuner · 3.3 HLSFixer · 3.4 Verification-Oriented Data Augmentation · 4.1 Dataset Construction & LLM Training · 4.2 Benchmarks & Metrics
核读各 agent、训练数据、DPO 构造及 HLS 工具验证流程。正文称 QoR-aware reasoning 捕获 causal relationship,笔记按训练样本中的变化关联描述;通过指定 testbench 的仿真与协同仿真是论文的正确性标准,不扩展成任意输入的形式化等价证明。