[发明专利]网格应用程序在众核体系结构上的性能优化框架及方法有效
申请号: | 201810470400.7 | 申请日: | 2018-05-16 |
公开(公告)号: | CN108710488B | 公开(公告)日: | 2022-04-05 |
发明(设计)人: | 张治国;刘谨喻;苏志荣 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F8/41 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 林丽明 |
地址: | 510275 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 网格 应用程序 体系结构 性能 优化 框架 方法 | ||
本发明提供一种网格应用程序在众核体系结构上的性能优化框架,包括应用领域描述层、编程模型层、硬件体系结构层、转换器;(1)应用领域描述层的用户使用应用领域描述,在只考虑领域编程的情况下,写出解决领域问题的程序;(2)转换器将用户程序进行转换,转换为基于编程环境组合的编程模型层的代码;(3)编程模型层的代码使用对应编程环境的编译器进行编译,并与对应动态库进行链接,最后生成硬件体系结构层可运行的代码;(4)通过性能模型与效率模型之间的映射关系,对转换后的编程模型层的程序手动进行优化调整,甚至通过转换器,进行自动的迭代优化调整。
技术领域
本发明涉及计算机技术领域,更具体地,涉及一种网格应用程序在众核体系结构上的性能优化框架及方法。
背景技术
基于网格(mesh)的大规模数值模拟计算在现代科学发展中发挥着越来越重要的作用,例如航空航天飞行器的空气动力学研究,舰船螺旋桨空化研巧等。在这种计算中,求解外形复杂,需要的求解精度高,网格规模巨大可以达到上亿甚至百亿量级,这导致了该应用领域需要极强的计算能力。而现在日益成熟的众核体系结构是典型的大规模并行化运算单元。要很好发挥其并行运算能力,需要面向这种体系结构的性能优化应用编程,但这对应用领域编程人员及计算系统的要求很高,使编程很难真正提高效率。
斯坦福大学的Liszt针对求解非结构化网格偏微分方程(PDE)的问题,实现了一个领域特定语言(DSL)。该语言是嵌入Scala中的,Liszt在Scala编译器中加入了一个自己的翻译器。用户写出的一个Liszt应用程序会被Scala编译器和翻译器共同处理,生成一个中间层的代码。然后这个中间层的代码再由Liszt编译器编译,为多个平台生成本地代码。它支持的平台包括GPU,多核CPU以及集群。
牛津大学实现了一个自动转换框架OP2。它给出了基于mesh结构的CFD应用领域的描述,并能将使用描述写出的程序自动转换为不同环境的可运行代码。转换支持的环境包括OpenMP,MPI,CUDA。OP2针对C语言,实现了若干的库函数,并把库函数的API,以及使用规范提供给用户。用户使用它的描述写出程序后,OP2的转换器会把用户的源代码进行转换,针对需要映射的不同运行环境生成不同的改动后的代码。接着这些代码会使用对应体系结构传统的编译器(如gcc,nvcc)编译,以及与对应的库链接(如OpenMP,CUDA,MPI等),从而使得程序可以在不同的体系结构上运行。
上述的两种技术虽然实现了某些特定运行环境上的转换,但是转换后的目标程序针对的只是通用的运行环境,例如CUDA,OpenMP。通过将程序向这些编程环境的转换,使得程序可以在某些众核体系结构上运行,达到了隔离应用领域编程的目的,但它们至少在下面两个方面缺乏深入的考虑,在实际具体应用中很难做到良好的性能优化。
在转换过程中没有讨论如何针对具体的目标体系结构上的结构特点进行进一步的性能优化。例如当目标体系结构是众核系统时,这些转换方式就没有专门考虑向量化处理单元宽度、缓冲的大小、存储器的延迟及带宽、硬件线程的数量等因素。这种面向编程环境的转换使得程序虽然能运行于众核体系结构上,但当实际运行于某个具体的众核体系结构上时,不能很好地适配该体系结构。例如转换后的程序包含的向量化运算中,会一次向量化处理4个64bit的双精度浮点数。当其运行于某个向量化处理单元宽度是256bit的众核体系结构上时,程序能充分利用向量化单元,但当其运行于某个向量化处理单元宽度是512bit的众核体系结构上时,就没有充分利用其向量化单元,使得效率提升没有做到最优。
第二,它们缺少对性能优化的整体性考虑,缺少模型化的指导。在它们转换的中间层是编程环境,没有对程序运行时的参数(例如调用线程的数量,线程间的数据传输量等)进行描述的性能模型。而在众核体系结构方面也没有描述其系统参数的效率模型。这使得它们对转换后的程序很难再高效地针对硬件体系结构做进一步的优化。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810470400.7/2.html,转载请声明来源钻瓜专利网。