๐ A High-Performance FPGA Placement and Routing Framework Powered by PyTorch
State-of-the-Art ย |ย GPU-Accelerated ย |ย Production-Ready
- Overview
- Key Features
- Latest Updates
- Visual Demo
- Getting Started
- Documentation
- Resources
- Team & Contributors
- Publications
- License
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.
-
๐ 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
๐ OpenPARF 2.0 Release (2024/02/02)
- Multi-die FPGA placement support
- Flexshelf architecture format
- Performance improvements and bug fixes
- Release Notes
Experience the power of our electrostatic field-based placement through these visualizations from benchmark ISPD2016/FPGA06
:
LUT | FF | DSP | BRAM |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- Python 3.7+
- C++14 compatible compiler
- PyTorch 1.7.1
- CUDA 11.0 (for GPU acceleration)
- Gurobi 9.5 (optional)
# 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.
cd <installation directory>
python openparf.py --config unittest/regression/ispd2016/FPGA01.json
For more benchmark information, see BENCHMARKS.md.
- ๐ Installation Guide
- ๐ Benchmark Guide
- ๐ Architecture Customization
OpenPARF is developed and maintained by PKU-IDEA Lab at Peking University, under the supervision of Prof. Yibo Lin.
Core Contributors:
- Jing Mai, Jiarui Wang and Yibai Meng - Initial release
- Runzhe Tao - Multi-die placement integration
- Jing Mai, Jiarui Wang, Yifan Chen, Zizheng Guo, Xun Jiang, Yun Liang, Yibo Lin - OpenPARF 3.0 with macro placement
For academic papers and citations, please see our publications list.
OpenPARF is released under the BSD 3-Clause License. See LICENSE for details.