Compiling Irregular Software to Specialized Hardware

High-level synthesis (HLS) has simplified the design process for energy-efficient hardware accelerators: a designer specifies an accelerator’s behavior in a “high-level” language, and a toolchain synthesizes register-transfer level (RTL) code from this specification. Many HLS systems produce efficie...

Full description

Bibliographic Details
Main Author: Townsend, Richard Morse
Language:English
Published: 2019
Subjects:
Online Access:https://doi.org/10.7916/d8-4yxc-gz97
id ndltd-columbia.edu-oai-academiccommons.columbia.edu-10.7916-d8-4yxc-gz97
record_format oai_dc
spelling ndltd-columbia.edu-oai-academiccommons.columbia.edu-10.7916-d8-4yxc-gz972019-08-29T03:04:51ZCompiling Irregular Software to Specialized HardwareTownsend, Richard Morse2019ThesesComputer scienceHardwareAlgorithmsFunctional programming languagesHigh-level synthesis (HLS) has simplified the design process for energy-efficient hardware accelerators: a designer specifies an accelerator’s behavior in a “high-level” language, and a toolchain synthesizes register-transfer level (RTL) code from this specification. Many HLS systems produce efficient hardware designs for regular algorithms (i.e., those with limited conditionals or regular memory access patterns), but most struggle with irregular algorithms that rely on dynamic, data-dependent memory access patterns (e.g., traversing pointer-based structures like lists, trees, or graphs). HLS tools typically provide imperative, side-effectful languages to the designer, which makes it difficult to correctly specify and optimize complex, memory-bound applications. In this dissertation, I present an alternative HLS methodology that leverages properties of functional languages to synthesize hardware for irregular algorithms. The main contribution is an optimizing compiler that translates pure functional programs into modular, parallel dataflow networks in hardware. I give an overview of this compiler, explain how its source and target together enable parallelism in the face of irregularity, and present two specific optimizations that further exploit this parallelism. Taken together, this dissertation verifies my thesis that pure functional programs exhibiting irregular memory access patterns can be compiled into specialized hardware and optimized for parallelism. This work extends the scope of modern HLS toolchains. By relying on properties of pure functional languages, our compiler can synthesize hardware from programs containing constructs that commercial HLS tools prohibit, e.g., recursive functions and dynamic memory allocation. Hardware designers may thus use our compiler in conjunction with existing HLS systems to accelerate a wider class of algorithms than before.Englishhttps://doi.org/10.7916/d8-4yxc-gz97
collection NDLTD
language English
sources NDLTD
topic Computer science
Hardware
Algorithms
Functional programming languages
spellingShingle Computer science
Hardware
Algorithms
Functional programming languages
Townsend, Richard Morse
Compiling Irregular Software to Specialized Hardware
description High-level synthesis (HLS) has simplified the design process for energy-efficient hardware accelerators: a designer specifies an accelerator’s behavior in a “high-level” language, and a toolchain synthesizes register-transfer level (RTL) code from this specification. Many HLS systems produce efficient hardware designs for regular algorithms (i.e., those with limited conditionals or regular memory access patterns), but most struggle with irregular algorithms that rely on dynamic, data-dependent memory access patterns (e.g., traversing pointer-based structures like lists, trees, or graphs). HLS tools typically provide imperative, side-effectful languages to the designer, which makes it difficult to correctly specify and optimize complex, memory-bound applications. In this dissertation, I present an alternative HLS methodology that leverages properties of functional languages to synthesize hardware for irregular algorithms. The main contribution is an optimizing compiler that translates pure functional programs into modular, parallel dataflow networks in hardware. I give an overview of this compiler, explain how its source and target together enable parallelism in the face of irregularity, and present two specific optimizations that further exploit this parallelism. Taken together, this dissertation verifies my thesis that pure functional programs exhibiting irregular memory access patterns can be compiled into specialized hardware and optimized for parallelism. This work extends the scope of modern HLS toolchains. By relying on properties of pure functional languages, our compiler can synthesize hardware from programs containing constructs that commercial HLS tools prohibit, e.g., recursive functions and dynamic memory allocation. Hardware designers may thus use our compiler in conjunction with existing HLS systems to accelerate a wider class of algorithms than before.
author Townsend, Richard Morse
author_facet Townsend, Richard Morse
author_sort Townsend, Richard Morse
title Compiling Irregular Software to Specialized Hardware
title_short Compiling Irregular Software to Specialized Hardware
title_full Compiling Irregular Software to Specialized Hardware
title_fullStr Compiling Irregular Software to Specialized Hardware
title_full_unstemmed Compiling Irregular Software to Specialized Hardware
title_sort compiling irregular software to specialized hardware
publishDate 2019
url https://doi.org/10.7916/d8-4yxc-gz97
work_keys_str_mv AT townsendrichardmorse compilingirregularsoftwaretospecializedhardware
_version_ 1719238119853654016