范围就是一切:将 LLMs 转化为 HPC 代码
通过开发针对特定领域的较小语言模型,我们质疑现有的语言模型选择,构建了一个针对高性能计算(HPC)领域的 MonoCoder 模型,它在非 HPC 和 HPC 任务中实现了类似甚至更好的性能,并在高性能和并行代码生成中取得出色结果。
Dec, 2023
近期,语言模型(尤其是大型语言模型)在深度学习领域引发了一场革命。本文提出了将这些模型技术应用于高性能计算任务的观点,并强调了现有思想在此领域中如何改进和适应。
Feb, 2024
通过 Meta Large Language Model Compiler (LLM Compiler) 提供的编译器优化用户界面,可以更好地理解中间表示 (IR)、汇编语言和优化技术。该模型经过数百亿个 LLVM-IR 和汇编代码令牌的训练,并在指令微调中提高了对编译器行为的理解。LLM Compiler 旨在为学术研究人员和行业从业者在编译器优化方面提供可扩展、具有成本效益的基础。
Jun, 2024
通过引入强化学习的方法,将代码 LMM 的输出与性能对齐,提高生成代码的期望加速比,并在一组基准任务中展示了 0.9 至 1.6 倍的串行代码速度提升和 1.9 至 4.5 倍的 OpenMP 代码速度提升。
Apr, 2024
LLMs 和基于学习的转译器在自动代码转换任务中取得了显著的性能提升,但当前仍存在一些准确性问题和资源限制。本研究发现,大部分失败源于对源程序的理解不足、在转换中缺少清晰的 I/O 类型指令以及源程序与目标程序之间的差异被忽略。鉴于以上研究结果,我们提出了 UniTrans,一个适用于多种 LLMs 的统一代码转换框架,通过生成测试用例、自动增强转换并验证正确性的执行过程,进一步修复转换错误。在 Python、Java 和 C++ 之间的六个转换数据集上进行了大量实验,三个最近的 LLMs 通过 UniTrans 实现了大幅度的改进。
Apr, 2024
OMPGPT 是一个新型的、精心设计的模型,旨在利用语言模型的先天优势进行 OpenMP 预定义指令生成,同时采用 NLP 领域的提示工程技术,通过链式 OMP 提升其效果。在广泛的评估中,我们发现 OMPGPT 在 OpenMP 任务中胜过现有的大型语言模型,并且体积明显更小,更加符合 HPC 环境的硬件限制。我们认为 OMPGPT 是一座重要的桥梁,连接了语言模型的优势与 HPC 任务的特定需求。OMPGPT 的成功为计算效率和效果提供了可靠的基础,并且表明其潜在的适用性和可调整性可以延伸到更广泛的 HPC 任务范畴,从而在计算效率和效果领域开辟了新的道路。
Jan, 2024
本文研究了使用大型语言模型(LLM)在低资源和领域特定编程语言中进行编码的可行性,该类编程语言通常缺乏有效的 LLM 处理所需的数据量。本研究侧重于开源软件 gretl 的计量脚本语言 hansl,并采用基于 GPT-3.5 的专有 LLM。我们的研究发现,LLM 在编写、理解、改进和文档化 gretl 代码方面是一个有用的工具,包括为函数生成描述性文档字符串和为抽象和文档不完整的计量代码提供精确解释。尽管 LLM 展示了 docstring 到代码转换能力的潜力,我们也确定了一些限制,如无法改进某些代码部分和编写准确的单元测试。本研究是利用 LLM 的能力来促进低资源编程语言的软件开发并最终降低其采用门槛的一步。
Jul, 2023
该论文通过比较分析两种先进的大型语言模型(GPT-4.0 和 CodeLlama-70B)与传统优化编译器在代码优化方面的能力和局限性,以及引入了一套挑战性的优化模式基准和用于评估生成代码性能和正确性的自动机制,发现虽然大型语言模型有超越当前优化编译器的潜力,但在大型代码上常常生成不正确的代码,需要自动化验证方法,其中 CodeLlama-70B 在两种大型语言模型中表现最佳,最大加速能达到 2.1 倍,而 CETUS 在优化编译器中表现最佳,最大加速能达到 1.9 倍。同时,两种提示方法(思考链和指令提示)没有显著差异。
Jun, 2024
通过将两个不同的大型语言模型融合到一个统一的框架中,我们的研究展示了 SolMover 的先驱性方法,它能够理解编码原则并将此理解应用于将智能合约从 Solidity 转化为资源有限的 Move 语言。通过实证实验,我们的研究结果表明 SolMover 大大提升了性能,并且在缺乏规划能力的第二个语言模型中具备编码专长,使其在代码质量方面取得了优异的成果。同时,我们的分析突出了在 SolMover 框架之外,我们所采用的错误缓解策略在提升代码质量方面的效力。
Mar, 2024