Skip to main content

High-level synthesis task-level parallelization

Project description

Task-Level Parallelization for HLS

Feature Synopsis

  • software simulation (not cycle-accurate)
  • Xilinx HLS backend
  • HeteroCL frontend

Application Synopsis

App Properties Details # Streams # Tasks # Steps
bandwidth static bandwidth test using async_mmap 4 4 1
cannon static,feedback Cannon's algorithm 20 7 1
graph dynamic,feedback connected components 6 3 1
jacobi static 5-point stencil 23 17 1
page-rank dynamic,feedback Page Rank on HBM 143 36 2
vadd static naïve vector addition 3 4 1

Getting Started

Prerequisites for Building tlpcc

  • CMake 3.13+
  • A C++11 compiler

Prerequisites for Using tlpc

  • tlpcc
  • Google glog library
  • Clang headers
  • Python 3 and its requirements
    • pyverilog
    • haoda
How to install CMake 3.13+ on Ubuntu 16.04+ and CentOS 7?

Ubuntu 16.04+

sudo apt install python-pip
sudo -H python -m pip install cmake

CentOS 7

sudo yum install python-pip
sudo python -m pip install cmake
How to install Google glog library on Ubuntu and CentOS?

Ubuntu

sudo apt install libgoogle-glog-dev

CentOS

sudo yum install glog-devel
How to install the latest Clang on Ubuntu?

Follow the instructions here. Note that running tlpcc doesn't require the latest Clang; old (e.g. Clang 3.8) headers are fine.

How to install Python pyverilog on Ubuntu?
sudo apt install iverilog python3-pip
sudo python3 -m pip install pyverilog
How to install Python haoda?
sudo apt install python3-pip
sudo python3 -m pip install haoda

Run tests

mkdir build
cd build
cmake ..
make
make test

Known Issues

  • Template functions cannot be tasks
  • Tasks cannot invoke functions with tlp::stream or tlp::mmap
  • Loops generated by convenient EoS macros must be manually pipelined

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tlpc-0.0.20200423.1.tar.gz (28.5 kB view hashes)

Uploaded Source

Built Distributions

tlpc-0.0.20200423.1-py3.6.egg (69.5 kB view hashes)

Uploaded Source

tlpc-0.0.20200423.1-py3-none-any.whl (33.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page