LLM-Vectorizer: LLM-based Verified Loop Vectorizer

2024年06月07日
  • 简介
    本文评估了大型语言模型(LLMs)生成向量化(单指令多数据)代码的潜力,以提高在大数据数组上操作的高性能计算应用程序的性能。尽管自动向量化已经研究了数十年,编译器经常错过向量化代码的机会。另一方面,手动编写使用编译器内部函数的向量化代码仍然是一项复杂、容易出错的任务,需要深入了解特定的架构和编译器。 本文提出了一种基于有限状态机多代理的方法,利用LLMs和基于测试的反馈来生成向量化代码。我们的研究结果表明,LLMs能够生成高性能的向量化代码,与Intel Compiler、GCC和Clang等最先进的编译器相比,运行时加速比范围从1.1倍到9.4倍不等。 为了验证向量化代码的正确性,我们使用Alive2,这是一个用于LLVM IR的领先有界翻译验证工具。我们描述了一些特定领域的技术,以提高Alive2在我们的基准数据集上的可扩展性。总体而言,我们的方法能够验证TSVC基准数据集中38.2%的向量化正确性。
  • 图表
  • 解决问题
    使用大型语言模型生成向量化代码
  • 关键思路
    使用大型语言模型和测试反馈生成向量化代码的有限状态机多代理方法
  • 其它亮点
    LLMs能够生成高性能向量化代码,能够提高运行速度1.1x至9.4x;使用Alive2验证向量化代码的正确性,能够验证38.2%的向量化结果;实验数据集为TSVC benchmark dataset。
  • 相关研究
    最近的相关研究包括基于机器学习的编译器优化和自动向量化,如DeepTune和Halide等。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论