Exocompilation for Productive Programming of Hardware Accelerators

High-performance kernel libraries are critical to exploiting accelerators and specialized instructions in many applications. Because compilers are difficult to extend to support diverse and rapidly-evolving hardware targets, and automatic optimization is often insufficient to guarantee state-of-the-...

Full description

Bibliographic Details
Main Author: Ikarashi, Yuka
Other Authors: Ragan-Kelley, Jonathan
Format: Thesis
Published: Massachusetts Institute of Technology 2022
Online Access:https://hdl.handle.net/1721.1/144822
_version_ 1826217066314596352
author Ikarashi, Yuka
author2 Ragan-Kelley, Jonathan
author_facet Ragan-Kelley, Jonathan
Ikarashi, Yuka
author_sort Ikarashi, Yuka
collection MIT
description High-performance kernel libraries are critical to exploiting accelerators and specialized instructions in many applications. Because compilers are difficult to extend to support diverse and rapidly-evolving hardware targets, and automatic optimization is often insufficient to guarantee state-of-the-art performance, these libraries are commonly still coded and optimized by hand, at great expense, in low-level C and assembly. To better support development of high-performance libraries for specialized hardware, we propose a new programming language, Exo, based on the principle of exocompilation: externalizing target-specific code generation support and optimization policies to user-level code. Exo allows custom hardware instructions, specialized memories, and accelerator configuration state to be defined in user libraries. It builds on the idea of user scheduling to externalize hardware mapping and optimization decisions. Schedules are defined as composable rewrites within the language, and we develop a set of effect analyses which guarantee program equivalence and memory safety through these transformations. We show that Exo enables rapid development of state-of-the-art matrix-matrix multiply and convolutional neural network kernels, for both an embedded neural accelerator and x86 with AVX-512 extensions, in a few dozen lines of code each.
first_indexed 2024-09-23T16:57:33Z
format Thesis
id mit-1721.1/144822
institution Massachusetts Institute of Technology
last_indexed 2024-09-23T16:57:33Z
publishDate 2022
publisher Massachusetts Institute of Technology
record_format dspace
spelling mit-1721.1/1448222022-08-30T03:01:36Z Exocompilation for Productive Programming of Hardware Accelerators Ikarashi, Yuka Ragan-Kelley, Jonathan Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science High-performance kernel libraries are critical to exploiting accelerators and specialized instructions in many applications. Because compilers are difficult to extend to support diverse and rapidly-evolving hardware targets, and automatic optimization is often insufficient to guarantee state-of-the-art performance, these libraries are commonly still coded and optimized by hand, at great expense, in low-level C and assembly. To better support development of high-performance libraries for specialized hardware, we propose a new programming language, Exo, based on the principle of exocompilation: externalizing target-specific code generation support and optimization policies to user-level code. Exo allows custom hardware instructions, specialized memories, and accelerator configuration state to be defined in user libraries. It builds on the idea of user scheduling to externalize hardware mapping and optimization decisions. Schedules are defined as composable rewrites within the language, and we develop a set of effect analyses which guarantee program equivalence and memory safety through these transformations. We show that Exo enables rapid development of state-of-the-art matrix-matrix multiply and convolutional neural network kernels, for both an embedded neural accelerator and x86 with AVX-512 extensions, in a few dozen lines of code each. S.M. 2022-08-29T16:14:05Z 2022-08-29T16:14:05Z 2022-05 2022-06-21T19:25:48.125Z Thesis https://hdl.handle.net/1721.1/144822 In Copyright - Educational Use Permitted Copyright MIT http://rightsstatements.org/page/InC-EDU/1.0/ application/pdf Massachusetts Institute of Technology
spellingShingle Ikarashi, Yuka
Exocompilation for Productive Programming of Hardware Accelerators
title Exocompilation for Productive Programming of Hardware Accelerators
title_full Exocompilation for Productive Programming of Hardware Accelerators
title_fullStr Exocompilation for Productive Programming of Hardware Accelerators
title_full_unstemmed Exocompilation for Productive Programming of Hardware Accelerators
title_short Exocompilation for Productive Programming of Hardware Accelerators
title_sort exocompilation for productive programming of hardware accelerators
url https://hdl.handle.net/1721.1/144822
work_keys_str_mv AT ikarashiyuka exocompilationforproductiveprogrammingofhardwareaccelerators