首页> 外文期刊>International Journal of High Performance Computing Applications >Managing code transformations for better performance portability
【24h】

Managing code transformations for better performance portability

机译:管理代码转换以提高性能可移植性

获取原文
获取原文并翻译 | 示例
           

摘要

Code optimization is an intricate task that is getting more complex as computing systems evolve. Managing the program optimization process, including the implementation and evaluation of code variants, is tedious, inefficient, and errors are likely to be introduced in the process. Moreover, because each platform typically requires a different sequence of transformations to fully harness its computing power, the optimization process complexity grows as new platforms are adopted. To address these issues, systems and frameworks have been proposed to automate the code optimization process. They, however, have not been widely adopted and are primarily used by experts with deep knowledge about underlying architecture and compiler intricacies. This article describes the requirements that we believe necessary for making automatic performance tuning more broadly used, especially in complex, long-lived high-performance computing applications. Besides discussing limitations of current systems and strategies to overcome these, we describe the design of a system that is able to semi-automatically generate efficient platform-specific code. In the proposed system, the code optimization is programmer-guided, separately from application code, on an external file in what we call optimization programming. The language to program the optimization process is able to represent complex collections of transformations and, as a result, generate efficient platform-specific code. A database manages different optimized versions of code regions, providing a pragmatic approach to performance portability, and the framework itself has separate components, allowing the optimized code to be used on systems without installing all of the modules required for the code generation. We present experiments on two different platforms to illustrate the generation of efficient platform-specific code that performs comparable to hand-optimized, vendor-provided code.
机译:代码优化是一项复杂的任务,随着计算系统的发展,它变得越来越复杂。管理程序优化过程(包括代码变体的实现和评估)非常繁琐,效率低下,并且可能会在过程中引入错误。此外,由于每个平台通常需要不同的转换顺序来充分利用其计算能力,因此,采用新平台时,优化过程的复杂性会增加。为了解决这些问题,已经提出了用于使代码优化过程自动化的系统和框架。但是,它们尚未得到广泛采用,并且主要由对底层体系结构和编译器复杂性有深入了解的专家使用。本文介绍了我们认为使自动性能调整得到更广泛使用的必要条件,尤其是在复杂,寿命长的高性能计算应用程序中。除了讨论当前系统的局限性和克服这些局限性的策略外,我们还将描述能够半自动生成高效的平台特定代码的系统的设计。在所提出的系统中,代码优化与应用程序代码分开是由程序员指导的,位于我们称为优化编程的外部文件上。对优化过程进行编程的语言能够表示转换的复杂集合,并因此生成高效的平台特定代码。数据库管理代码区域的不同优化版本,从而提供了一种实用的性能可移植性方法,并且框架本身具有独立的组件,从而可以在系统上使用优化的代码,而无需安装代码生成所需的所有模块。我们在两个不同的平台上进行实验,以说明如何生成高效的平台专用代码,这些代码的性能可与手工优化,供应商提供的代码相媲美。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号