摘要
高性能计算(HPC)应用程序大多基于标准函数库和编译制导语句进行编写,这种做法可以有效提升高性能计算应用的可编程性和可移植性。相比传统优化方法中针对单个函数库进行优化,本文的研究将优化注意力放到不同函数库调用之间,提出了一种用于高性能函数库的领域特定语言及编译器,实现了对原始C代码的源代码到源代码优化,解决了因为胶水代码而产生的高性能计算程序性能可移植性欠佳的问题。实验结果表明,在真实应用中,使用支持该领域特定语言的编译器,在通用处理器硬件架构上,可以取得相比原始版本最高4.89倍的优化加速;而在实验性的异构高峰值加速器架构上,可以取得最高8.21倍的优化加速。
High-performance computing(HPC) applications are mostly written based on standard function libraries and compiler pragmas, which can improve the programmability and portability of high-performance computing applications. Compared to the traditional optimization method for the optimization of a single function library, the research in this work puts the optimization attention between different function library calls, and proposes a domain-specific language and compiler. The source to source code optimization of original C code solves the problem of poor performance portability of high performance computing programs due to glue code. Experiment results show that in real-world applications, using a compiler that supports the domain-specific language in the field, on the general-purpose processor hardware architecture, an optimization acceleration of up to 4.89 times compared to the original version can be achieved;while in an experimental heterogeneous high-peak accelerator architecture on top, it can be achieved an optimization acceleration of up to 8.21 times.
作者
李韦
文渊博
孙广中
陈云霁
Li Wei;Wen Yuanbo;Sun Guangzhong;Chen Yunji(University of Science and Technology of China,School of Computer Science and Technology,Hefei 230026;State Key Laboratory of Computer Architecture of Computer Architecture,Institute of Computing Technology,Chinese Academy of Sciences,Beijing 100190;Cambricon Tech.Ltd,Shanghai 201203)
出处
《高技术通讯》
EI
CAS
北大核心
2020年第2期141-149,共9页
Chinese High Technology Letters
基金
国家重点研发计划(2017YFA0700900,2017YFA0700902,2017YFA0700901,2017YFB1003101)
国家自然科学基金(61432016,61532016,61672491,61602441,61602446,61732002,61702478,61732020)
北京市自然科学基金(JQ18013)
973计划(2015CB358800)
“核心电子器件、高端通用芯片及基础软件产品”科技重大专项(2018ZX01031102)
中国科学院青年创新促进会优秀会员项目(CX2150110004)
中国科学院科技成果转移转化重点专项(KFJ-HGZX-013)
中国科学院战略性先导科技专项(B类)(XDB32050200)资助项目。