没有合适的资源?快使用搜索试试~ 我知道了~
海报:使用Transformer学习在共享内存环境中进行并行化雷reemha@bgu.ac.il内盖夫本-古里安大学计算机科学系物理系科学计算中心核研究中心尤瓦尔·品特uvp@cs.bgu.ac.il内盖夫本-古里安大学计算机科学系以色列GalOrengaloren@cs.technion.ac.il以色列理工学院计算机系科学计算中心,核研究中心摘要在过去的几年里,世界已经转向多核和多核共享内存架构。因此,越来越需要通过向应用程序引入共享内存并行化方案(如OpenMP)来利用这些体系结构。然而,由于并行共享内存管理中普遍存在的缺陷,将OpenMP工作共享循环结构引入代码,特别是遗留代码是具有挑战性的。 为了促进此任务的性能,多年来已经创建了许多源到源(S2S)编译器,其任务是将OpenMP指令自动插入代码中。除了对输入格式的鲁棒性有限之外,这些编译器在定位可并行化代码和生成适当的指令方面仍然没有达到令人满意的覆盖率和精度。在这项工作中,我们建议利用机器学习技术的最新进展 , 特 别 是在 自 然 语 言 处 理 ( NLP ) , 建 议 需 要 一 个OpenMP工作共享循环直接和数据共享属性子句-并发编程的构建块。 我们为这些任务训练了几个名为PragFormer的Transformer模型,并表明它们在对并行for指令的总体需求进行分类以及引入私有和减少子句方面都优于经过严格训练的基线和自动源到源(S2S)并行化编译器。在未来,我们的语料库可以用于其他任务,直到生成整个OpenMP指令。我 们 项 目 的 源 代 码 和 数 据 库 可 以 在 GitHub1 和HuggingFace2上访问。1https://github.com/Scientific-Computing-Lab-NRCN/PragFormer2https://huggingface.co/spaces/Pragformer/PragFormer-demo允许制作部分或全部本作品的数字或硬拷贝供个人或课堂使用,无需付费,前提是复制品不以营利或商业利益为目的制作或分发,并且复制品在第一页上带有此通知和完整的引用必须尊重本作品第三方组件的版权对于所有其他用途,请联系所有者/作者。PPoPP'23,2023年2月25日,加拿大魁北克省蒙特利尔©2023版权归所有者/作者所有。ACM ISBN979-8-4007-0015-6/23/02。https://doi.org/10.1145/3572848.3582565关键词:机器学习,并发计算方法1引言自从Dennard的扩展结束[ 10 ],世界转向共享内存架构,其中多个处理器(核心)共享相同的内存地址空间。因此,开发人员需要调整他们的应用程序,以包括适当的并行化方案,从而充分利用这种架构并提高性能。例如,实现这些并行化方案的最全面的API是OpenMP API [7,9]。 OpenMP API由一组编译器指令(prag-mas)、库例程和环境变量组成,允许在共享内存环境中并行(多线程)执行程序。引入OpenMP工作共享循环结构,即使对于并行编程专业人员来说,并发也不是一件容易的任务,因为它需要理解和领会变量之间的依赖关系以及管理并行共享内存中的其他普遍陷阱[1]。为了促进引入并行工作共享循环构造的性能(参见[7]第11.5节),多年来已经创建了许多S2S并行编译器,其任务是将这些构造自动插入到代码中。尽管如此,在[12,14,15]中显示,S2 S编译器有许多陷阱,例如与人类专家相比,产生次优指令;降低性能;对其输入的鲁棒性有限;有时根本无法插入指令。由于最近在代码语言处理(CLP)[6,8]中基于复杂转换器的体系结构的成功,新的有用产品或代码顾问已经出现,这些产品可以实现长,复杂和相关的代码建议(通过代码完成或代码生成)。 这些顾问,如Github的Copilot 3[ 2 ],使用基于NLP的模型,通过在IDE中动态建议预测代码来提高开发人员的生产力。然而,这些顾问并不试图通过建议并行化方案来3https://github.com/features/copilot数据库-Open-OMP提取物指令标签评价更新解析pycparser测试提取代码段预训练存储库火车代码代表性分类PragFormer预处理PPOPP因此,基于NLP模型创建类似的代码顾问的可能性增加,这些模型试图通过建议OpenMP指令来提高代码的性能。创建这样的顾问的能力是可能的,因为可以将OpenMP和类似的并行化方案增量地引入到代码中(逐循环),即,指令可以在开发期间引入或引入到现有的生产(遗留)代码。在本文中,我们介绍了PragFormer(图1),这是一种基于transformer的方法,用于通过OpenMP促进代码并行化,展示了其在S2S系统上的改进性能,以及其复杂模型架构的必要性。该模型的任务是识别并行工作共享循环结构(为清楚起见,在for循环上的OpenMP指令)和识别数据共享属性子句,即,一个私人的或减少的条款。图1. 对并行工作共享循环构造和子句进行分类的工作流概述。PragFormer是我们提出的模型。2数据库为了训练模型,我们创建了一个代码片段数据库或语料库 , 我 们 称 之 为 Open-OMP 。 使用短语“OpenMP”查 询github.com,以提取相关信息。3个结果PragFormer标识可以从工作共享循环构造而不是指令中受益的位置(for -loops)。此外,这项工作的前提是,注释的积极标签是由人类专家产生的,因此标签与指令实现的最佳性能相对应。因此,PragFormer的评估是通过测量关于实际标签的正确预测的数量而不是通过性能来执行的。为了进行评估,在测试集上计算精度,召回率和F1分数[11]作为性能测量。将PragFormer的结果与新型S2S编译器ComPar [13]和具有逻辑回归分类器的统计训练的词袋 ( BoW ) [16] 模 型 进 行 比 较 表 2 的 第 一 行 显 示 了PragFormer、BoW和CompPar在指令分类任务上根据所有测量结果,PragFormer取得了最佳结果。表2中的第二行和第三行呈现了用于识别对私有和/或归约数据共享属性子句的需要的结果。 PragFormer对这两个子句都产生了出色的召回率和精确度,证明了在发现许多真实案例而不允许筛选许多错误预测之间的良好平衡。为了测试PragFormer的通用性,我们将其应用于Open-OMP中未出现的两个现有专用的OpenMP基准测试:PolyBench [4]和标准性能评估公司(SPEC-OMP)[5]。表 2 显 示 了 PolyBench 和 SPEC-OMP 上 PragFormer 和Compar的结果。PragFormer的结果与Open-OMP测试集的结果相当,甚至稍好。测试型号P R F1接入evant repositories,用C语言编写,最有可能包含并行工作共享循环结构。然后,只有在for循环段上定义的OpenMP指令作为正数据包含在数据库虽然负面数据示例取自文件中没有出现OpenMP指令的代码片段,但在其他地方确实存在此类指令,以排除由于不熟悉并行化方案的开发人员或使用不兼容硬件的开发人员而未注释符合指令的代码的情况下面的表1包含数据库的统计信息数额#行金额PolyPraG Former 0.950.950.95 零点九五代码段总数32,099<1017,836对比0.43 0.43 0.43 0.43OpenMP指令14,90611SPECPraG Former 0.830.840.82 0.83减少2,147私人5,568(a) 原始数据库上的OpenMP指令的统计信息。第51>100 435(b) 原始数据库中的代码段长度对比0.760.750.740.75个单位表2. PragFormer和计算系统在识别OpenMP指令需求的任务上的比较(前三行);私有子句识别表1. 与数据库相关的一般统计数据。fication;reduction clause identification; PolyBench和SPEC-OMP套件中对OpenMP指令的需求预成型机0.840.840.840.84指令BoW + Logistic 0.710.710.710.71对比0.510.560.360.5预成型机0.860.850.860.85私人BoW +物流0.790.780.780.79Compar0.560.510.400.56预成型机0.890.870.870.87减少BoW +物流0.780.780.770.78Compar0.920.520.460.79海报:使用TransformersPPOPP'23学习在共享内存环境中进行并行化,2012年10月10日至12日确认这项研究得到了以色列高等教育委员会(CHE)通过数据科学研究中心、以色列内盖夫本古里安大学、林恩和威廉·弗兰克尔计算机科学中心以及英特尔公司(oneAPI卓越中心计划)的支持。计算支持由NegevHPC项目提供[3]。引用[1] [n. d.]。自动分类与数据相关性https://web.archive.org/web/20140714111836/http://blitzpr og.org/posts/automatic-parallelism-and-data-dependency. [联机]。[2] [n. d.]。GitHub Copilot。https://github.com/features/copilot上下载。[联机]。[3] [n. d.]。NegevHPC项目。https://www.negevhpc.com上下载。[联机]。[4] [n. d.]。PolyBench基准。 https://web.cse.ohio-state.edu/~pouchet.2/software/polybench/。 [联机]。[5] [n. d.]。SPEC-HPG。https://www.spec.org/order.html上下载。[联机]。[6] Moritz Beller , Hongyu Li , Vivek Nair , VijayaraghavanMurali , ImadAhmad , Jürgen Cito , Drew Carlson , AriAye,and Wes Dyer.2022年。学习如何预测Meta生产中的性能退化。arXiv预印本arXiv:2208.04351(2022)。[7] OpenMP架构审查委员会。2021年 OpenMP应用程序编程接口版本5.2。独立出版。[8] MarkChen,Jerry Tworek,Heewoo Jun,Qiming Yuan,HenriquePondede Oliveira Pinto , Jared Kaplan , Harri Edwards , YuriBurda,NicholasJoseph,Greg Brockman,et al. 2021.评估在代码上训练的大型语言模型。arXiv预印本arXiv:2107.03374(2021)。[9] 莱昂纳多·达古姆和拉梅什·梅农1998年OpenMP:用于共享内存编程的行业标准API IEEE计算科学与工程5,1(1998),46-55.[10] Robert H Dennard ,Fritz H Gaenslen,V Leo Rideout,ErnestBassous,and Andre R LeBlanc.一九七四年具有极小物理尺寸的离子 注 入 MOSFET 的 设 计 IEEEJournal of Solid-State Circuits 9 , 5(1974),256-268.[11] 西里尔·古特和埃里克·高西尔。2005年精确度,召回率和F分数的概率解释,对评估的影响。在欧洲信息检索会议上。斯普林格,345[12] 他们是哈雷尔,伊丹·莫塞里,哈雷尔·莱文,李-奥尔·阿隆,马坦·鲁萨诺夫斯基和加尔·奥伦。2020年。用于科学共享内存多核和加速多处理的源到源并行编译器:分析、缺陷、增强和潜力。国际并行编程杂志48,1(2020),1-31。[13] Idan Mosseri,Lee-or Alon,Reem2020 年。CompPar:用于自动OpenMP S2S并行化的优化多编译器。在OpenMP:现代系统上的便携式多级并行-第16届OpenMP国际研讨会,IWOMP 2020,美国德克萨斯州奥斯汀,2020年9月22日至24日,会议记录(计算机科学讲义,卷。12295),Kent F. 布罗尼斯·米尔费尔德 de Supinski,LarsKoesterke,and Jannis Klinkenberg(Eds.).斯普林格,247-262。https://doi.org/10.1007/978-3-030-58144-2_16[14] S Prema,R Jehadeesan,and BK Panigrahi.2017年。识别NAS并行 基 准 测 试 自 动 并 行 化 中 的 缺 陷在 并 行 计 算 技 术(PARCOMPTECH),2017年全国会议上。IEEE,1[15] SPrema , RupeshNasre , RJehadeesan , andBKPanigrahi.2019年。 流行的自动并行化框架研究。 并发和计算:实践和经验31,17(2019),e5168。[16] 张 茵 , 容 瑾 , 周 志 华 。 2010. 理 解 词 袋 模 型 : 一 个 统 计 框 架 。International Journal of MachineLearning and Cybernetics 1 , 1(2010),43-52.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功