MIRGE is a computational approach for scientific computing based on NumPy-like array computation, but using lazy evaluation to recast computation as data-flow graphs, where nodes represent immutable, multi-dimensional arrays. Evaluation of an array expression is deferred until its value is needed, at which point a pipeline is invoked that transforms high-level array expressions into lower-level intermediate representations (IR) and finally into executable code, through a multi-stage process. Domain-specific transformations, such as metadata-driven optimizations, GPU-parallelization strategies, and loop fusion techniques, improve performance and memory efficiency. MIRGE employs "array contexts" to abstract the interface between array expressions and heterogeneous execution environments (for example, lazy evaluation via OpenCL, or eager evaluation via NumPy or CuPy). The framework thus enables performance portability as well as separation of concerns between application logic, low-level implementation, and optimizations. By enabling scientific expressivity while facilitating performance tuning, MIRGE offers a robust, extensible platform for both computational research and scientific application development. This paper provides an overview of MIRGE. We further describe an application of MIRGE called MIRGE-Com, for supersonic combusting flows in a discontinuous Galerkin finite-element setting. We demonstrate its capabilities as a solver and highlight its performance characteristics on large-scale GPU hardware.


翻译:MIRGE是一种基于类NumPy数组计算但采用惰性求值的科学计算方法,它将计算重构为数据流图,其中节点表示不可变的多维数组。数组表达式的求值会延迟到需要其值时进行,此时会调用一个流水线,通过多阶段过程将高级数组表达式转换为低级中间表示,最终生成可执行代码。领域特定的转换,例如元数据驱动的优化、GPU并行化策略和循环融合技术,提高了性能和内存效率。MIRGE采用“数组上下文”来抽象数组表达式与异构执行环境之间的接口(例如,通过OpenCL进行惰性求值,或通过NumPy或CuPy进行即时求值)。因此,该框架实现了性能可移植性,并分离了应用逻辑、底层实现和优化之间的关注点。MIRGE在支持科学表达性的同时便于性能调优,为计算研究和科学应用开发提供了一个稳健、可扩展的平台。本文概述了MIRGE。我们进一步描述了MIRGE的一个应用——MIRGE-Com,用于在间断伽辽金有限元框架下模拟超声速燃烧流动。我们展示了其作为求解器的能力,并重点介绍了其在大规模GPU硬件上的性能特征。

0
下载
关闭预览

相关内容

【CVPR2025】CoLLM:面向组合图像检索的大语言模型
【CVPR2021】CausalVAE: 引入因果结构的解耦表示学习
专知会员服务
37+阅读 · 2021年3月28日
【NeurIPS2019】图变换网络:Graph Transformer Network
NAACL 2019 | 一种考虑缓和KL消失的简单VAE训练方法
PaperWeekly
20+阅读 · 2019年4月24日
Seq2seq强化,Pointer Network简介
机器学习算法与Python学习
15+阅读 · 2018年12月8日
国家自然科学基金
0+阅读 · 2017年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
10+阅读 · 2014年12月31日
VIP会员
相关资讯
【NeurIPS2019】图变换网络:Graph Transformer Network
NAACL 2019 | 一种考虑缓和KL消失的简单VAE训练方法
PaperWeekly
20+阅读 · 2019年4月24日
Seq2seq强化,Pointer Network简介
机器学习算法与Python学习
15+阅读 · 2018年12月8日
相关基金
国家自然科学基金
0+阅读 · 2017年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
10+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员