MOD2IR: High-Performance Code Generation for a Biophysically Detailed Neuronal Simulation DSL
Advances in computational capabilities and large volumes of experimental data have established computer simulations of brain tissue models as an important pillar in modern neuroscience. Alongside, a variety of domain specific languages (DSLs) have been developed to succinctly express properties of these models, ensure their portability to different platforms, and provide an abstraction that allows scientists to work in their comfort zone of mathematical equations, delegating concerns about performance optimizations to downstream compilers. One of the popular DSLs in modern neuroscience is the NEURON MODeling Language (NMODL). Until now, its compilation process has been split into first transpiling NMODL to C++ and then using a C++ toolchain to emit the efficient machine code. This approach has several drawbacks including the reliance on different programming models to target heterogeneous hardware, maintainability of multiple compiler back-ends and the lack of flexibility to use the domain information for C++ code optimization. To overcome these limitations, we present MOD2IR, a new open-source code generation pipeline for NMODL. MOD2IR leverages the LLVM toolchain to target multiple CPU and GPU hardware platforms. Generating LLVM IR allows the vector extensions of modern CPU architectures to be targeted directly, producing optimized SIMD code. Additionally, this gives MOD2IR significant potential for further optimizations based on the domain information available when LLVM IR code is generated. We present experiments showing that MOD2IR is able to produce on-par execution performance using a single compiler back-end implementation compared to code generated via state-of-the-art C++ compilers, and can even surpass them by up to 1.26$\times$. Moreover, MOD2IR supports JIT-execution of NMODL, yielding both efficient code and an on-the-fly execution workflow.
Sun 26 FebDisplayed time zone: Eastern Time (US & Canada) change
10:20 - 11:20 | Domain Specific LanguagesResearch Papers at St. Laurent 3 Chair(s): Martin Kong The Ohio State University | ||
10:20 20mTalk | Building a Compiled Query Engine in Python Research Papers DOI | ||
10:40 20mTalk | Codon: A Compiler for High-Performance Pythonic Applications and DSLs Research Papers Ariya Shajii Exaloop, Gabriel Ramirez Massachusetts Institute of Technology, Haris Smajlović University of Victoria, Jessica Ray Massachusetts Institute of Technology, Bonnie Berger Massachusetts Institute of Technology, Saman Amarasinghe Massachusetts Institute of Technology, Ibrahim Numanagić University of Victoria DOI | ||
11:00 20mTalk | MOD2IR: High-Performance Code Generation for a Biophysically Detailed Neuronal Simulation DSL Research Papers George Mitenkov Imperial College London, Ioannis Magkanaris EPFL, Omar Awile EPFL, Pramod Kumbhar EPFL, Felix Schürmann EPFL, Alastair F. Donaldson Imperial College London DOI |