ProtoX: A First Look
Het Mankad, Sanil Rao, Brian Van Straalen, Phillip Colella, Franz, Franchetti

TL;DR
ProtoX introduces a novel code generation framework that combines Proto and SPIRAL to optimize stencil and pointwise operations in PDE solutions, enabling abstraction fusion and improved performance across CPU, multi-core CPU, and GPU.
Contribution
This paper presents ProtoX, integrating SPIRAL as a backend to Proto, allowing for advanced abstraction fusion and optimized code generation for PDE-related computations.
Findings
Generated code for CPU, multi-core CPU, and GPU.
Performance improvements demonstrated on CPU.
Enables abstraction fusion difficult for traditional compilers.
Abstract
We present a first look at ProtoX, a code generation framework for stencil and pointwise operations that occur frequently in the numerical solution of partial differential equations. ProtoX has Proto as its library frontend and SPIRAL as the backend. Proto is a C++ based domain specific library which optimizes the algorithms used to compute the numerical solution of partial differential equations. Meanwhile, SPIRAL is a code generation system that focuses on generating highly optimized target code. Although the current design layout of Proto and its high level of abstractions provide a user friendly set up, there is still a room for improving it's performance by applying various techniques either at a compiler level or at an algorithmic level. Hence, in this paper we propose adding SPIRAL as the library backend for Proto enabling abstraction fusion, which is usually difficult to perform…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Numerical Methods and Algorithms · Distributed and Parallel Computing Systems
