Published November 26, 2018 | Version 1.1
Dataset Open

Dataset for EASY: Efficient Arbiter SYnthesis from Multi-threaded Code

  • 1. Imperial College London
  • 2. University of Toronto

Contributors

Contact person:

  • 1. Imperial College London

Description

High-level synthesis (HLS) is an increasingly popular method for generating hardware from a description written in a software language like C/C++. Traditionally, HLS tools have operated on sequential code, however in recent years there has been a drive to synthesise multi-threaded code. In this context, a major challenge facing HLS tools is how to automatically partition memory among parallel threads to fully exploit the bandwidth available on an FPGA device and minimise memory contention. Existing partitioning approaches require inefficient arbitration circuitry to serialise accesses to each bank because they make conservative assumptions about which threads might access which memory banks. In this work, we design a static analysis that can prove certain memory banks are only accessed by certain threads and use this analysis to simplify or even remove the arbiters while preserving correctness. We show how this analysis can be implemented using the Microsoft Boogie verifier, a tool named EASY for automatic formal verification using an SMT solver. Our work supports arbitrary input code with any irregular memory access patterns and indirect array addressing forms. We implement our approach in LLVM, integrate it with the LegUp HLS tool, and show that for a set of typical application benchmarks we can achieve up to 87% (avg. 61%) area savings and up to 39% (avg. 23%) improvement in execution time, with little additional compilation time relative to a long time in hardware synthesis.

This repository includes all the measured results for this work.

Files

Files (99.7 kB)

Name Size Download all
md5:a381f65c0783277d7fa987569264d8ef
21.3 kB Download
md5:da0e36a9fe221b59af9a49e043816904
11.0 kB Download
md5:a075f5e2108b37efe9943fb8e7b9a33b
11.2 kB Download
md5:36bc863300e270609885ea2c2ccd8cd2
11.5 kB Download
md5:72aeac0f3f06f6d3acecd4fb7896ced7
11.2 kB Download
md5:2ce8e99e7b809f30b7a62127c4dbf36c
11.0 kB Download
md5:b8312bebe026097ff60fed3c0c5c880b
11.3 kB Download
md5:d923b71738fb82009387724235aaa9c8
11.2 kB Download