HLSRewriter:利用大语言模型(LLMs)高效重构和优化C/C++代码,以实现高级合成
《ACM Transactions on Design Automation of Electronic Systems》:HLSRewriter: Efficient Refactoring and Optimization of C/C++ Code with LLMs for High-Level Synthesis
【字体:
大
中
小
】
时间:2025年11月08日
来源:ACM Transactions on Design Automation of Electronic Systems
编辑推荐:
HLSRewriter框架通过LLM与修复库结合,解决HLS代码自动重构中的幻觉问题,采用RAG和流水线分解策略优化硬件性能,比特宽调整器提升精度,实验表明效果优于传统方法。
摘要
在高层次综合(HLS)中,将标准的C/C++代码重构为与其兼容的HLS版本(HLS-C)仍然需要大量的人工工作。尽管已经引入了各种程序脚本来自动化这一过程,但生成的代码中仍包含许多与HLS不兼容的问题,这些问题需要由开发人员手动进行重构和优化。由于大型语言模型(LLMs)具有自动化代码生成的能力,它们也可以用于HLS的自动代码重构和优化。然而,由于LLMs的训练数据有限,且在同时考虑硬件和软件需求时,使用LLMs进行HLS重构时可能会出现“幻觉”现象,从而导致合成失败。为了解决这些挑战,我们提出了HLSRewriter,这是一个基于LLM的代码重构和优化框架,它以常规的C/C++代码作为输入,并自动生成相应的优化后的HLS-C代码以用于硬件合成,且所需的人工干预最少。为了减少LLMs的“幻觉”现象,采用了一种逐步推理过程来分析和检测与HLS不兼容的错误。之后,通过扫描HLS工具手册高效地创建了一个包含参考模板的修复库,并结合检索增强生成(RAG)范式来指导LLMs进行正确的重构。此外,还引入了一种基于流水线的分解策略,逐步将复杂的循环结构分解为更小的任务,在延迟和面积之间实现平衡,从而实现高效的流水线处理和并行执行。为了进一步提高硬件效率,该框架还包含了一个位宽调整模块,用于优化浮点变量的精度。此外,还引入了基于LLM的HLS优化策略,在HLS-C代码中添加/调整硬件指令,从而提升最终合成硬件的性能。实验结果表明,与传统的代码重构和优化方法以及直接应用LLMs相比,所提出的基于LLM的框架在24个实际任务中实现了更高的重构通过率和更优的硬件性能。代码的源代码可在此链接获取:https://github.com/code-source1/catapult。
生物通微信公众号
生物通新浪微博
今日动态 |
人才市场 |
新技术专栏 |
中国科学人 |
云展台 |
BioHot |
云讲堂直播 |
会展中心 |
特价专栏 |
技术快讯 |
免费试用
版权所有 生物通
Copyright© eBiotrade.com, All Rights Reserved
联系信箱:
粤ICP备09063491号