- 简介将计算任务分配给处理器并将数据分配给内存对于最大化并行编程性能至关重要。这些映射决策是通过开发专门的低级系统代码(称为映射器)来管理的,这些代码由性能工程师精心设计。每个映射器都针对特定的应用程序进行定制,并针对底层机器架构进行了优化,这一过程需要专家花费数天的时间进行调整和优化。尽管系统研究取得了进展,但由于需要做出数百万个决策以找到最优解并生成解决方案代码,自动生成功能映射器仍然是一个挑战。我们提出了一种利用基于大型语言模型(LLM)优化器的新方法来设计映射器。在不到十分钟的时间内,我们的方法能够自动生成超越人类专家设计的科学应用映射器,最高可实现1.34倍的加速。对于并行矩阵乘法算法,我们的映射器可以达到专家设计解决方案的1.31倍速度。为了实现这一点,我们通过引入一种领域特定语言(DSL)简化了低级代码生成的复杂性,该语言抽象了低级系统编程细节,并为LLM定义了一个结构化的搜索空间。为了最大化应用程序性能,我们使用LLM优化器改进了一个生成映射器代码的代理系统。因此,这种方法显著减轻了性能工程师的工作负担,同时在各种应用程序中实现了显著的性能提升。最后,我们的结果证明了基于LLM的优化在系统设计中的有效性,并表明其在解决其他复杂系统挑战方面的潜力。
- 图表
- 解决问题论文试图解决在并行编程中自动创建高性能映射器(mappers)的问题,这是一个长期以来由于其复杂性而难以自动化的挑战。这个问题并非全新,但现有的解决方案通常需要专家手动优化,耗时且效率低下。
- 关键思路论文的关键思路是利用大型语言模型(LLM)作为优化器,通过引入一个领域特定语言(DSL)来简化低级代码生成的复杂性,并定义一个结构化的搜索空间供LLM探索。这种方法能够在短时间内自动生成超越人类专家设计的映射器,显著提高了性能。
- 其它亮点论文展示了该方法在科学应用和并行矩阵乘法算法中的有效性,分别实现了高达1.34倍和1.31倍的加速。此外,该方法显著减少了性能工程师的工作量,同时提供了显著的性能提升。论文还提供了开源代码,便于其他研究人员复现和进一步研究。未来的研究可以探索将这种方法应用于其他复杂的系统设计问题。
- 近期在这个领域的一些相关研究包括: - 'Automated Tuning of Parallel Programs Using Machine Learning' (2021) - 'Optimizing Parallel Applications with Deep Reinforcement Learning' (2020) - 'A Domain-Specific Language for High-Performance Parallel Programming' (2019) 这些研究都尝试通过不同的方法来自动化并行程序的优化,但本论文通过引入LLM和DSL结合的方法,提供了一个新的视角和更有效的解决方案。
沙发等你来抢
去评论
评论
沙发等你来抢