AgRefactor:面向HLS兼容性与性能的自演进智能工作流

arXiv cs.AI 论文

摘要

AgRefactor是一个基于LLM的多智能体工作流,用于将软件重构为HLS兼容程序,具备自演进记忆系统和自动化重构工具,在真实世界基准测试中实现了显著加速。

arXiv:2606.30949v1 公告类型:新 摘要:高层次综合(HLS)提供了从概念到芯片的快速路径,但由于语言支持的限制以及软件与硬件编程实践之间的差距,将真实世界软件转换为可综合的HLS代码仍然具有挑战性。现有的自动化和基于LLM的重构方法部分解决了这个问题,但它们通常缺乏灵活性、难以扩展且计算成本高昂。我们引入了AgRefactor,一个基于LLM的多智能体工作流,用于将软件重构为HLS兼容程序。AgRefactor集成了一个自演进记忆系统,该系统跨任务积累和检索事实性与策略性知识,从而提高了对未见程序的鲁棒性和效率。为了降低成本和增强可扩展性,它整合了自动化重构工具,使智能体能够在LLM驱动的重写与高效的基于工具的转换之间取得平衡。在11个具有挑战性的真实世界基准测试中的9个上(这些基准测试的长度比先前工作中研究的最复杂案例长5-10倍),AgRefactor的性能优于或等同于最先进的自动化重构工具以及基于相同框架构建的强LLM基线。进一步的智能体性能优化在SoTA编译指示调优工具上实现了6.51倍的几何平均加速,并在资源增加不到20%的情况下,相对于优化的开源设计实现了1.20倍的加速。AgRefactor完全自动化且已开源。
查看原文
查看缓存全文

缓存时间: 2026/07/01 05:36

# AgRefactor: 面向 HLS 兼容性与性能的自进化智能体工作流
来源: https://arxiv.org/html/2606.30949

###### 摘要

高层次综合 (HLS) 提供了一条从概念到芯片的快速路径,但由于受限的语言支持以及软件与硬件编程实践之间的差距,将现实世界的软件转换为可综合的 HLS 代码仍然充满挑战。现有的自动化和基于 LLM 的重构方法在一定程度上解决了这个问题,但它们往往缺乏灵活性、难以扩展,并且计算成本高昂。我们提出 AgRefactor,一种基于 LLM 的多智能体工作流,用于将软件重构为 HLS 兼容程序。AgRefactor 包含一个自进化的记忆系统,该系统能够在不同任务间积累和检索事实性与策略性知识,从而提高在未见程序上的鲁棒性和效率。为了降低成本并增强可扩展性,它集成了自动化重构工具,使智能体能够在 LLM 驱动的重写与高效的基于工具的转换之间取得平衡。在 11 个具有挑战性的现实世界基准测试中的 9 个上——这些基准的长度是先前研究中最复杂案例的 5−10 倍——AgRefactor 优于或匹配了最先进的自动化重构工具以及构建在同一框架骨干上的强大 LLM 基线。进一步的智能体性能优化在几何平均加速比上比最先进的pragma 调优工具实现了 6.51× 的加速,比优化后的开源设计实现了 1.20× 的加速,而额外资源消耗不到 20%。AgRefactor 是完全自动化且开源的。

## I. 引言

高层次综合 (HLS) [9, 8, 31, 4, 32, 20, 5] 旨在通过将抽象级别从寄存器传输级 (RTL) 设计提升到基于 C/C++ 的 HLS 设计,来简化将设计概念转化为芯片实现的过程。实际的 HLS 设计流程从一个繁琐的步骤开始:将软件仓库重构为 HLS 兼容程序 [12, 33, 7]。据一项高能物理领域的实际加速项目报告 [28],这一准备性的重构阶段需要领域专家花费 *数天* 才能生成一个可用于进一步优化的初始 HLS 兼容程序。这凸显了需要更多自动化来减轻这一劳动密集型任务的需求。

为了解决这些困难,自动化重构方法 [12, 33] 在将软件程序转换为 HLS 可综合代码方面显示出了前景。这些方法通常结合了软件工程技术(如动态不变量分析),并依赖固定模板来重写不可综合的构架。大语言模型 (LLM) 在软件工程领域不断增强的能力,促使了近期利用 LLM 进行 HLS 重构的研究 [29, 7]。这些方法通常采用一个智能体工作流,识别不可综合的构架,并根据编译器反馈进行迭代重构。HLSRewriter [29] 引入了检索增强生成 (RAG) 来存储事实性知识和重写模板,而 C2HLSC [7] 则首先提取每个函数,并利用自动测试台生成进行内核级重写。

表 I: AgRefactor 在降低开销的同时,实现了比当前最先进方法更好的重构性能。
| 方法 | 通用性 | 可扩展性 | 成本 |
| :--- | :--- | :--- | :--- |
| 基于规则 [12] | ✗ 差 | ✓ 好 | ✓ 好 |
| 基于 LLM [29] | ◐ 中等 | ◐ 中等 | ✗ 差 |
| **AgRefactor** | **✓ 好** | **✓ 好** | **◐ 中等** |

现有方法在 HLS 重构中面临三个关键挑战:通用性、可扩展性和成本。为了缓解这些挑战,我们提出 AgRefactor,一种基于 LLM 的多智能体工作流,能够将现实世界的软件程序重构为 HLS 兼容程序。为了解决通用性问题,我们开发了一个自进化工作流,配备专门的智能体记忆系统。当智能体与不同的任务(程序)和 HLS 工具交互时,事实性和策略性知识会被自动提取和检索。随着系统从过去的经验中积累知识,AgRefactor 在应用于未见过的软件程序时展现出更高的效率和鲁棒性。与手工设计的 RAG 方法不同,我们的记忆系统能适应模型特定的失败和成功模式,提供有针对性的知识检索,从而提高重构的准确性和效率。相对于通用的智能体记忆系统 [14, 18, 11, 27, 26, 30],我们创建了专门的知识格式、专用的交互模式和一种新颖的距离度量,所有这些都旨在该任务上实现卓越的性能。

为了缓解可扩展性和成本的挑战,我们利用了 LLM 智能体的工具调用能力。具体来说,我们为 AgRefactor 配备了 HeteroRefactor [12](在图表中简称为 HeteroRF),这是最先进的 (SoTA) 自动化开源 HLS 重构工具。自然地,对于可以由工具完全处理的程序,我们避免了调用 LLM 的计算开销。此外,我们的框架允许 LLM 智能体在代码生成和工具调用之间取得平衡:它们专注于移除或重写 HeteroRefactor 不支持的软件构架,同时将剩余的工作委托给该工具。因此,我们的工具增强型智能体工作流结合了基于 LLM 的代码重写的灵活性与自动化重构的可扩展性和低成本。

虽然最近的基于搜索的方法(如 AlphaEvolve [16])利用标量反馈(例如,延迟)来驱动代码变异,但 AgRefactor 则为智能体提供了来自原始 EDA 日志和调度报告的更丰富信息。这种能力使智能体能够精确定位特定的关键路径瓶颈。此外,我们集成了一个多工具环境,使智能体能够从已有的人类知识中启动,而不是进行盲目的变异。

我们的贡献总结如下:

1. 我们设计并实现了 AgRefactor,一种能够将现实世界软件重构为可综合、高性能 HLS 代码的智能体工作流。与仅关注正确性和 pragma 插入的现有方法不同,我们明确地处理结构重构,这对硬件性能影响最大。
2. 我们提出了一种专门针对此任务的自进化智能体记忆系统。通过在不同任务间持续积累和检索事实性与策略性知识,我们的工作流增强了基础 LLM 在 HLS 重构中的鲁棒性,同时最小化了人工干预。
3. 我们将自动化重构工具集成到我们的智能体框架中,创建了一个由 LLM 智能体和算法后端驱动的混合流水线。这种集成显著降低了计算成本,并提高了 LLM 驱动的 HLS 重构的可扩展性。

在多样化的现实世界案例上的评估显示,在 11 个基准测试中的 9 个上,AgRefactor 优于或匹配了最先进的自动化重构工具和强大的 LLM 基线。我们的优化智能体在几何平均加速比上比最先进的 pragma 调优工具 AutoDSE [22] 实现了 6.51× 的加速,并且比高度优化的开源 HLS 设计实现了 1.2× 的加速,同时额外资源消耗低于 20%。

## II. 动机

参见图 1:现有方法的局限性激发了我们工作流的设计。(1) 自动化重构的通用性差。最先进的自动化重构无法处理外部库和复杂结构体数据类型。(2) 基于 LLM 的工作流需要手动构建 RAG 系统,并且受 LLM 内在随机性的影响,导致输出方差大。此外,纯 LLM 重构会产生显著的成本。相比之下,AgRefactor 通过一个由智能体记忆系统(第三节-A)驱动的工具增强型自进化工作流来解决这些挑战。

表 II:包含复杂现实世界示例的综合基准套件。我们的基准涵盖了来自图像/视频编解码器、密码学和计算基因组学的现实世界程序。
| 类别 | 名称 | 代码行数 |
| :--- | :--- | :--- |
| leetcode [13] | maxSlidingWindow, delNodes, wordBreak, getSkyline, canDistribute, criticalConnections, smallestRange, solveSudoku, removeInvalidParentheses, swimInWater | 21-67 |
| HLSRewriter [29] | regUpdate, reverseKGroup, trap, FibSubseq, knn, rotateGrid, maxPoints, long, qrd_compute, forward, dfs, aes_encrypt | 10-115 |
| C2HLSC [7] | Frequency, CumulativeSums, Overlapping, quicksort, present80_encryptBlock, sha256_update, des_crypt | 11-221 |
| HeteroRF [12] | dfs, mergesort, linkedlist, ahocorasick, strassen | 65-304 |
| libsodium [10] | blake2b_compress, chacha20_stream, argon2_fill_segment | 126-370 |
| minimap2 [15] | mm_chain_dp_orig | 473 |
| libjpeg-turbo [23] | encode_one_block, median_cut, select_colors, fill_inverse_cmap, idct_generic | 279-754 |
| av1 [2] | av1_apply_temporal_filter, av1_compound_type_rd | 407-1266 |

在本节中,我们通过评估现有方法在一个综合基准上的表现并突出其局限性,来激发我们工作流的设计。现有方法通常在一小组手动构建的测试用例上进行评估——通常是那些它们框架能轻松解决的案例。为了更彻底地检验最先进方法的局限性,我们在一个扩展的现实世界基准集上评估它们,其中包括多个独立文件,代码行数高达 1000 行。我们的基准套件的详细信息见表 II 和第三节-D。由于现有工作流并非完全开源,且专门针对 Catapult HLS 工具定制,我们尽最大努力复现它们的方法。

图 2 总结了结果。尽管 HeteroRefactor 和 HLSRewriter 在其各自的基准上表现良好,但它们在许多更大的基准上失败了,例如 libjpeg-turbo。除了处理外部库(如 STL 容器,例如 "std::set" 和 "std::map")的已知局限性外,HeteroRefactor 在处理常见指针操作时也展现出局限性。特别是,它无法正确处理嵌套指针算术(A→B→C)。

最先进的 LLM 工作流,即使由 GPT-5 支持,在现实世界仓库上取得的成功也有限(图 2)。主要挑战有三个:(1) 现实世界程序包含标准知识库中缺失的不兼容实现,(2) 当无效模式跨越长程序中的多个位置时,重构会失败,(3) 与自动化工具相比,迭代错误反馈使得 LLM 速度慢且计算成本高。此外,我们的分析揭示,LLM 经常误用不受支持的 C++ 特性(例如,lambda 函数),或者错误地向硬件接口暴露内部结构体。

由于 LLM 会犯随机错误,通过手动提示工程设计来预见这些错误需要不切实际的工作量。相反,健壮的重构需要一个任务特定的计划来恰当地分解过程。为此,我们提出一个自进化的智能体工作流,它能够自动从不同的任务中积累事实性和策略性知识,并在新程序上检索这些知识来指导智能体。

由于原始的 HLSRewriter 目标是 Catapult HLS 工具链,并且其关键组件(RAG 知识库和标识符提示)未开源,因此忠实的复现是不可行的。因此,我们构建了一个强大的基线,它将 HLSRewriter 方法适配到我们自己的框架上,详见第四节-A。

参见图 2:不同工作流的一次性重构成功率总结。我们将 HLSRewriter 的方法适配到我们的框架上作为受控消融(详见第四节-A)。每个基线用 45 个内核进行测试。"现实世界程序"类别包括来自现实世界软件仓库的合并文件以及 "strassen" 内核,而 "简单内核" 涵盖了表 II 中列出的其余基准。所有基于 LLM 的工作流均使用 "GPT-5-mini"。现有方法在重构现实世界基准方面表现不足。

## III. 方法论

### III-A 框架

参见图 3:AgRefactor 概览。给定一个 C/C++ 程序和一个用户指定的顶层函数,框架通过识别、规划、重构和修复阶段自动生成一个可综合的 HLS 实现,同时持续更新长期记忆库。一旦重构完成,可综合代码及其测试台将被转发给性能优化智能体。该智能体处于一个可访问评估和代码转换工具的 CLI 环境中,利用其内部基于树的工作记忆来系统地探索、应用和跟踪各种代码优化策略,以获得最佳性能。

图 3 显示了 AgRefactor 的整体工作流。用户提供一个 C/C++ 程序并指定一个顶层函数;从那时起,框架完全自动化。

流水线从测试生成器开始,它在重构之前创建测试和接口假设(例如,数组大小和函数签名),因为测试台必须调用重构后的顶层函数。这些假设作为高层约束传播到所有后续阶段。接下来,一个两阶段的诊断和规划流水线识别不可综合的构架:特定类别的标识符并行运行,项目组织者合并并去重它们的发现,规划者产生一个完整的重构计划,并由策略性和事实性记忆(第三节-B)强化。然后,重构工作者应用这个计划,并通过综合和模拟进行验证。如果出现错误,分析器-修复器对将迭代更新代码或测试台,直到两个阶段都成功或达到重试限制。每次

相似文章

AHD Agent:用于自动启发式设计的代理强化学习

arXiv cs.AI

本文介绍了 AHD Agent,这是一个利用代理强化学习(Agentic Reinforcement Learning)的框架,使大型语言模型(LLMs)能够通过动态交互求解环境,自主地为组合优化问题设计启发式方法。