摘要
arXiv:2410.15625v2 宣布类型: 替换交叉
摘要:现代科学研究越来越依赖高性能计算进行复杂建模和仿真。提高并行程序性能的关键挑战之一是以高效方式将任务分配给处理器并将数据分配给内存,这是一个由复杂低级系统代码(称为映射器)规定的流程。开发高性能映射器需要几天的手动调优,这为缺乏系统专业知识的学科科学家设下了显著的障碍。我们提出了一种框架,该框架通过生成优化自动开发映射器,并利用超出标量性能指标的更丰富的反馈。我们的方法包括Agent-System Interface,其中包括一种领域特定语言(DSL),用于抽象掉系统代码中的低级复杂性并定义结构化的搜索空间,以及AutoGuide,这是一种机制,可将原始执行输出解释为可采取的动作反馈。与仅依赖标量反馈的传统强化学习方法(如OpenTuner)不同,我们的方法在更少的迭代中就能找到更优的映射器。在仅10次迭代后,即使经过1000次迭代,它也比OpenTuner表现出色,实现了3.8倍的速度提升。我们的方法在九个基准测试上找到的映射器比专家编写的映射器在速度上最多提升1.34倍,同时将调优时间从几天缩短到几分钟。