Skip to content

๐Ÿ•น OpenPARF: An Open-Source Placement and Routing Framework for Large-Scale Heterogeneous FPGAs with Deep Learning Toolkit

License

Notifications You must be signed in to change notification settings

PKU-IDEA/OpenPARF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

37 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ 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 ../OpenPARF -DCMAKE_PREFIX_PATH=$CONDA_PREFIX -DPYTHON_EXECUTABLE=$(which python)
make -j8 && make install

For detailed installation instructions, see INSTALL.md.

Running Benchmarks

cd <installation directory>
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.

About

๐Ÿ•น OpenPARF: An Open-Source Placement and Routing Framework for Large-Scale Heterogeneous FPGAs with Deep Learning Toolkit

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published