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号