引言
高层次综合(HLS)[1], [2] 的提出旨在通过将从寄存器传输级(RTL)设计提升到基于C/C++的HLS描述来提高设计生产力并减轻验证负担。它还使互连流水线能够自然地与行为综合集成,从而允许将计算与通信调度与布局联合考虑,以实现高效的多周期片上通信 [3],这对于在纳米级工艺中实现高频时钟设计至关重要,尤其是在多裸片芯粒设计中 [4], [5]。在HLS获得成功的商业应用之后,许多工作致力于使应用开发者能够更轻松地使用HLS构建高性能硬件 [6], [7], [8], [9], [10], [11]。
现有研究可归纳为几个类别。一个主要方向聚焦于领域特定的HLS编译器,结合自动调优和设计空间探索(DSE)工具。领域特定编译器要么为特定应用提供并优化架构模板 [9], [12], [13],要么提供更高级别的编程抽象 [7]。借助预定义的架构模板,用户只需指定工作负载和关键设计参数,完整方案通常通过给定约束下的数学公式求解自动生成。
与提供预定义模板的编译器不同,提供编程抽象的编译器并不直接产生端到端的硬件系统。相反,它们要求用户自行实现设计,尽管具有更清晰的语义和更好类型的领域特定语言(DSL),然后将其降低到HLS C/C++ [7], [14]。该社区已从早期针对单个核函数或特定设计模式的工作(如AutoSA [12]和SoDA [13])过渡到近年来致力于端到端系统的努力,如Allo [7]、StreamTensor [15]、StreamHLS [9]和Prometheus [11]。大多数现有领域特定编译器聚焦于深度学习工作负载,这些负载主要基于线性代数,可以使用多面体或基于循环/平铺的分析框架有效分析。一些工作也针对其他领域,如计算生物学 [16]和加密学 [17]。
与领域特定编译器为特定领域执行代码变换不同,大多数HLS DSE工具聚焦于有限范围的自动化HLS性能优化——通常仅为pragma调优。它们通常首先在可能的pragma配置上定义设计空间,然后使用无模型方法 [8], [18] 或基于模型的方法 [19], [20], [21] 来探索该空间。尽管在有限的解空间上运行,某些DSE工具展示了比领域特定编译器更好的泛化能力,因为它们可以支持任意HLS设计输入。
其他努力旨在为HLS设计的验证和实现提供高效基础设施。例如,TAPA [5] 框架集成了Autobridge [4] 和RapidStream [22],通过在实现阶段保留微架构洞察力,为多裸片FPGA提供更好的实现方案。Lightningsim [23] 则为HLS设计提供快速准确的延迟估计和死锁检测,避免了代价高昂的RTL仿真。所有这些工具都利用了HLS提供的高层抽象。
尽管现有商业HLS实践强调行为级抽象,仍有其他努力提供更细粒度的周期级行为控制 [24], [25], [26]。这些方法作为传统HLS编程模型的替代方案,强调确定性行为,通常以牺牲可编程性为代价。
随着基于大语言模型(LLM)的智能体出现,近期研究探索了其在芯片设计中的应用,包括HLS生成与优化 [27], [28], [29] 以及RTL设计、调试和验证 [30], [31], [32], [33], [34],尽管设计规模受到很大限制。随着Alpha-Evolve [35] 和其他测试时扩展方法展示了智能体无需额外训练即可自我提升的能力,将其应用于芯片设计变得日益充满希望。一个关键问题,也是本文旨在解决的问题,是:基于LLM的智能体如何充分利用现有研究的基础并发挥生成能力,在不妨碍性能的前提下真正提升应用开发者的生产力。
我们在这方面取得了令人鼓舞的进展,并探索了智能体驱动HLS设计的几个重要方向,特别是:(1) 用于软件到HLS重构的智能体(第4节),以及(2) 用于组合工具生成设计并进一步优化它们的智能体(第5节)。
表1总结了我们对智能体HLS设计的看法。通过使智能体能够与现有设计工具交互并改进它们,我们可以缓解当前HLS工作流中生产力和可编程性的限制,缩小自动化设计与人类专家设计之间的性能差距,并实现比针对特定应用领域的工具更好的泛化能力。
本文的组织结构如下。在第2节中,我们探讨一个常见问题"在智能体时代,HLS是否仍然需要?",因为现代LLM已具备直接生成RTL代码的能力。我们比较了LLM在利用HLS和RTL创建和优化芯片设计方面的能力,表明HLS仍然是构建跨多种应用的定制硅片的重要抽象层,并提供更优的RTL设计性能。基于这一观察,我们随后介绍了在智能体驱动的HLS芯片设计重构和优化方面的工作。在第3节中,我们回顾了使HLS智能体芯片设计具有独特机遇的现有工具。在第4节中,我们讨论基于智能体的HLS代码重构,在第5节中,我们介绍了基于智能体的芯片组合的最新进展。