Presentation
A Shared Compilation Stack for HPC Stencil DSLs
Presenter
DescriptionDomain Specific Languages can massively improve computational science
productivity and also provide high performance. High-level DSLs capture
abstractions that the DSL compiler can exploit
to target current- and next-generation supercomputers.
Consequently, there have been many DSL projects, notably in finite-difference stencil
computations - but implementations fail to share code and fail to harness combined developer effort.
A large portion of their code base is dedicated to reasoning about generic HPC concepts, such as generation of directives for shared-memory parallelism, message-passing communications for distributed-memory parallelism, vectorization, arithmetic (factorization, sub-expression elimination), and loop optimizations (blocking, fusion, fission). These general-purpose optimizations are often combined with domain-specific ones to maximize performance.
This talk presents joint work spanning three stencil DSL projects, which aims to realize this lost potential - in Devito, Psyclone, and the Open Earth Compiler. We present a) how we tailor the widely adopted MLIR compiler framework to support optimizations suitable for FD-stencil computations and generate HPC-ready code running on multi-node CPUs and single-node GPUs, and b) how, for example, in Devito, we can leverage these HPC-enabling contributed abstractions in MLIR and achieve better or on-par performance by building on MLIR dialects and transformations that are shared across all three projects.
productivity and also provide high performance. High-level DSLs capture
abstractions that the DSL compiler can exploit
to target current- and next-generation supercomputers.
Consequently, there have been many DSL projects, notably in finite-difference stencil
computations - but implementations fail to share code and fail to harness combined developer effort.
A large portion of their code base is dedicated to reasoning about generic HPC concepts, such as generation of directives for shared-memory parallelism, message-passing communications for distributed-memory parallelism, vectorization, arithmetic (factorization, sub-expression elimination), and loop optimizations (blocking, fusion, fission). These general-purpose optimizations are often combined with domain-specific ones to maximize performance.
This talk presents joint work spanning three stencil DSL projects, which aims to realize this lost potential - in Devito, Psyclone, and the Open Earth Compiler. We present a) how we tailor the widely adopted MLIR compiler framework to support optimizations suitable for FD-stencil computations and generate HPC-ready code running on multi-node CPUs and single-node GPUs, and b) how, for example, in Devito, we can leverage these HPC-enabling contributed abstractions in MLIR and achieve better or on-par performance by building on MLIR dialects and transformations that are shared across all three projects.
TimeWednesday, June 511:30 - 12:00 CEST
LocationHG F 3
Event Type
Minisymposium
Computational Methods and Applied Mathematics