Skip to content

Latest commit

 

History

History
132 lines (96 loc) · 4.56 KB

README.md

File metadata and controls

132 lines (96 loc) · 4.56 KB

🚀 A High-Performance FPGA Placement and Routing Framework Powered by PyTorch

State-of-the-Art  |  GPU-Accelerated  |  Production-Ready

Table of Contents

Overview

OpenPARF is a cutting-edge FPGA placement and routing framework that delivers superior performance through innovative algorithms and GPU acceleration. Our framework achieves up to 12.7% improvement in routed wirelength and 2X+ speedup in placement compared to state-of-the-art solutions.

Key Features

  • 🔋 Advanced Placement Technology

    • Multi-Electrostatic-based placement engine
    • Multi-die FPGA support with SLL count optimization
    • Comprehensive unit support (LUT, FF, DSP, BRAM, IO, etc.)
  • High Performance

    • GPU acceleration via CUDA
    • 0.4-12.7% better routed wirelength
    • 2X+ faster placement speed
  • 🛠 Production Ready

    • Industry-standard architecture support
    • Extensive benchmarking suite
    • Well-documented API and examples

Latest Updates

🎉 OpenPARF 2.0 Release (2024/02/02)

  • Multi-die FPGA placement support
  • Flexshelf architecture format
  • Performance improvements and bug fixes
  • Release Notes

Visual Demo

Experience the power of our electrostatic field-based placement through these visualizations from benchmark ISPD2016/FPGA06:

LUT FF DSP BRAM
LUT ff dsp BRAM

Getting Started

Prerequisites

  • Python 3.7+
  • C++14 compatible compiler
  • PyTorch 1.7.1
  • CUDA 11.0 (for GPU acceleration)
  • Gurobi 9.5 (optional)

Installation

# Create conda environment
mamba create --name openparf python=3.7
mamba activate openparf

# Install dependencies
mamba install cmake boost bison
mamba install pytorch==1.7.1 torchvision==0.8.2 cudatoolkit=11.0 -c pytorch
pip install hummingbird-ml pyyaml networkx tqdm

# Build OpenPARF
git clone --recursive https://github.com/PKU-IDEA/OpenPARF.git
mkdir build && cd build
cmake .. -DCMAKE_PREFIX_PATH=$CONDA_PREFIX -DPYTHON_EXECUTABLE=$(which python) -DCMAKE_INSTALL_PREFIX=../install
make -j8 && make install

For detailed installation instructions, see INSTALL.md.

Running Benchmarks

Download the benchmarks according to BENCHMARKS.md, then run the following command:

cd ../install
python openparf.py --config unittest/regression/ispd2016/FPGA01.json

For more benchmark information, see BENCHMARKS.md.

Documentation

Resources

Team & Contributors

OpenPARF is developed and maintained by PKU-IDEA Lab at Peking University, under the supervision of Prof. Yibo Lin.

Core Contributors:

Publications

For academic papers and citations, please see our publications list.

License

OpenPARF is released under the BSD 3-Clause License. See LICENSE for details.