LIFT: LLM-Based Pragma Insertion for HLS via GNN Supervised Fine-Tuning

📄 arXiv: 2504.21187v1 📥 PDF

作者: Neha Prakriya, Zijian Ding, Yizhou Sun, Jason Cong

分类: cs.LG

发布日期: 2025-04-29


💡 一句话要点

LIFT:基于LLM和GNN监督微调的HLS编译pragma自动插入方法

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 高层次综合 HLS编译 大型语言模型 图神经网络 pragma插入 FPGA优化 代码生成

📋 核心要点

  1. FPGA在数据中心日益普及,但HLS工具生成高性能代码仍需专家手动插入优化pragma,过程繁琐。
  2. LIFT利用LLM生成pragma,并用GNN监督LLM训练,融合序列建模和代码结构语义理解。
  3. 实验表明,LIFT性能优于现有AutoDSE、HARP和GPT-4o,分别提升3.52倍、2.16倍和66倍。

📝 摘要(中文)

本文提出了一种基于大型语言模型(LLM)的HLS代码助手LIFT,用于自动生成C/C++设计中性能关键的pragma指令。LIFT通过图神经网络(GNN)紧密集成和监督LLM的训练过程,结合了LLM的序列建模能力与GNN对代码及其控制/数据依赖关系的结构和语义理解能力。实验结果表明,LIFT生成的优化设计相比于现有最先进的AutoDSE和HARP分别提升了3.52倍和2.16倍的性能,并且比GPT-4o提升了66倍。

🔬 方法详解

问题定义:论文旨在解决HLS(High-Level Synthesis)中,手动插入优化pragma以提升FPGA设计性能的难题。现有方法依赖专家知识,需要迭代尝试,耗时且效率低。AutoDSE等自动化方法在优化效果上仍有提升空间,无法充分利用代码的结构化信息。

核心思路:LIFT的核心思路是结合LLM的强大代码生成能力和GNN对代码结构化信息的理解能力,通过GNN监督LLM的训练过程,使LLM能够生成更有效的pragma指令。这种方法旨在弥补LLM在理解代码结构和依赖关系方面的不足,同时利用GNN的优势来指导LLM生成更符合HLS编译要求的pragma。

技术框架:LIFT的技术框架主要包含以下几个模块:1) C/C++代码输入;2) GNN模块,用于提取代码的结构化信息,例如控制流图和数据依赖图;3) LLM模块,用于生成pragma指令;4) 监督模块,利用GNN提取的信息监督LLM的训练过程,优化LLM的生成能力。整个流程是,首先GNN分析代码,提取特征,然后LLM基于这些特征生成pragma,最后GNN的分析结果用于评估和改进LLM生成的pragma。

关键创新:LIFT的关键创新在于将GNN与LLM紧密结合,并利用GNN的结构化信息来监督LLM的训练。与现有方法相比,LIFT不仅利用了LLM的代码生成能力,还充分考虑了代码的结构化信息,从而生成更有效的pragma指令。这种结合方式使得LIFT能够更好地理解代码的语义,并生成更符合HLS编译要求的优化指令。

关键设计:在关键设计方面,GNN的具体网络结构(例如使用的GNN层类型、层数等)以及GNN提取的特征类型(例如控制依赖、数据依赖等)是重要的参数。损失函数的设计也至关重要,需要能够有效地衡量LLM生成的pragma的质量,并利用GNN的信息来指导LLM的优化方向。此外,LLM的选择和微调策略也会影响最终的性能。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,LIFT在多个基准测试中显著优于现有方法。与AutoDSE相比,LIFT平均提升了3.52倍的性能;与HARP相比,LIFT平均提升了2.16倍的性能;与GPT-4o相比,LIFT平均提升了66倍的性能。这些数据表明LIFT在HLS编译优化方面具有显著优势。

🎯 应用场景

LIFT可应用于FPGA加速器设计、高性能计算、嵌入式系统等领域。通过自动插入优化pragma,LIFT能够显著提升HLS编译生成的FPGA设计的性能,降低开发时间和成本,加速FPGA在数据中心等领域的普及。未来,LIFT有望扩展到支持更多HLS工具和优化目标,进一步提升FPGA设计的自动化水平。

📄 摘要(原文)

FPGAs are increasingly adopted in datacenter environments for their reconfigurability and energy efficiency. High-Level Synthesis (HLS) tools have eased FPGA programming by raising the abstraction level from RTL to untimed C/C++, yet attaining high performance still demands expert knowledge and iterative manual insertion of optimization pragmas to modify the microarchitecture. To address this challenge, we propose LIFT, a large language model (LLM)-based coding assistant for HLS that automatically generates performance-critical pragmas given a C/C++ design. We fine-tune the LLM by tightly integrating and supervising the training process with a graph neural network (GNN), combining the sequential modeling capabilities of LLMs with the structural and semantic understanding of GNNs necessary for reasoning over code and its control/data dependencies. On average, LIFT produces designs that improve performance by 3.52x and 2.16x than prior state-of the art AutoDSE and HARP respectively, and 66x than GPT-4o.