FEM@LLNL | Supercharging Programming Through Compiler Technology


Abstract

William Moses of the University of Illinois Urbana-Champaign presented β€œSupercharging Programming Through Compiler Technology.” The decline of Moore's law and an increasing reliance on computation has led to an explosion of specialized software packages and hardware architectures. While this diversity enables unprecedented flexibility, it also requires domain-experts to learn how to customize programs to efficiently leverage the latest platform-specific APIs and data structures, instead of working on their intended problem. Rather than forcing each user to bear this burden, he proposes building high-level abstractions within general-purpose compilers that enable fast, portable, and composable programs to be automatically generated. This talk demonstrates this approach through compilers that Moses built for two domains: automatic differentiation and parallelism. These domains are critical to both scientific computing and machine learning, forming the basis of neural network training, uncertainty quantification, and high-performance computing. For example, a researcher hoping to incorporate their climate simulation into a machine learning model must also provide a corresponding derivative simulation. The compiler, Enzyme, automatically generates these derivatives from existing computer programs, without modifying the original application. Moreover, operating within the compiler enables Enzyme to combine differentiation with program optimization, resulting in asymptotically and empirically faster code. Looking forward, this talk also touches on how this domain-agnostic compiler approach can be applied to new directions, including probabilistic programming.