Metadata-Version: 2.1
Name: tlpc
Version: 0.0.20200221.1
Summary: High-level synthesis task-level parallelization
Home-page: https://github.com/Blaok/tlp
Author: Blaok Chi
License: UNKNOWN
Description: # Task-Level Parallelization for HLS
        
        ## Feature Synopsis
        
        + [x] software simulation (not cycle-accurate)
        + [x] Xilinx HLS backend
        + [ ] HeteroCL frontend
        
        ## Application Synopsis
        
        | App      | Properties       | Details               | # Streams | # Tasks | # Steps |
        |----------|------------------|-----------------------|-----------|---------|---------|
        | `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       |
        | `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`
        
        <details><summary>How to install CMake 3.13+ on Ubuntu 16.04+ and CentOS 7?</summary>
        
        Ubuntu 16.04+
        
        ```bash
        sudo apt install python-pip
        sudo -H python -m pip install cmake
        ```
        
        CentOS 7
        
        ```bash
        sudo yum install python-pip
        sudo python -m pip install cmake
        ```
        
        </details>
        
        <details><summary>How to install Google glog library on Ubuntu and CentOS?</summary>
        
        Ubuntu
        
        ```bash
        sudo apt install libgoogle-glog-dev
        ```
        
        CentOS
        
        ```bash
        sudo yum install glog-devel
        ```
        
        </details>
        
        <details><summary>How to install the latest Clang on Ubuntu?</summary>
        
        Follow the instructions [here](https://apt.llvm.org). Note that running `tlpcc` doesn't require the latest Clang; old (e.g. Clang 3.8) headers are fine.
        
        </details>
        
        <details><summary>How to install Python <code>pyverilog</code> on Ubuntu?</summary>
        
        ```bash
        sudo apt install iverilog python3-pip
        sudo python3 -m pip install pyverilog
        ```
        
        </details>
        
        <details><summary>How to install Python <code>haoda</code>?</summary>
        
        ```bash
        sudo apt install python3-pip
        sudo python3 -m pip install haoda
        ```
        
        </details>
        
        ### Run tests
        
        ```bash
        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
        
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: System :: Hardware
Requires-Python: >=3.6
Description-Content-Type: text/markdown
