Loo.py:通过转换和替换规则从Fortran到性能
Loo.py: From Fortran to performance via transformation and substitution rules
摘要:
大量面向数字的代码是用遗留语言编写的。原则上,这些代码中的大部分可以很好地利用面向吞吐量的数据并行计算机体系结构。Loo.py是一个针对GPU和通用数据并行架构的基于转换的编程系统,它提供了一种用户控制的数组程序转换机制。这种转换功能不仅适用于专门为Loo.py编写的程序,还适用于从其他语言(如Fortran)导入的程序。通过允许用户对输入程序应用大量且不断增长的转换,它简化了在实现高性能、可移植性和可编程性之间的权衡。这些转换是在Python中表达和使用的,并且可以从各种设置中应用,包括其他语言中类似杂注的方式。
英文摘要:
A large amount of numerically-oriented code is written and is being written in legacy languages. Much of this code could, in principle, make good use of data-parallel throughput-oriented computer architectures. Loo.py, a transformation-based programming system targeted at GPUs and general data-parallel architectures, provides a mechanism for user-controlled transformation of array programs. This transformation capability is designed to not just apply to programs written specifically for Loo.py, but also those imported from other languages such as Fortran. It eases the trade-off between achieving high performance, portability, and programmability by allowing the user to apply a large and growing family of transformations to an input program. These transformations are expressed in and used from Python and may be applied from a variety of settings, including a pragma-like manner from other languages.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。