Skip to main content

Fork of FINN, a QNN dataflow compiler for AMD/Xilinx FPGAs

Project description

Dataflow Compiler for Fast, Scalable Quantized Neural Network Inference on FPGAs

FINN+ is a fork of FINN, an experimental framework from the Integrated Communications and AI Lab of AMD Research & Advanced Development to explore deep neural network inference on FPGAs. It specifically targets quantized neural networks, with emphasis on generating dataflow-style architectures customized for each network. The resulting FPGA accelerators are highly efficient and can yield high throughput and low latency. The framework is fully open-source in order to give a higher degree of flexibility, and is intended to enable neural network research spanning several layers of the software/hardware abstraction stack.

To get an overview of how FINN+ is used, take a look at the Getting Started section below!

While our Wiki is under construction, we refer to the original FINN homepage for further information.

FINN+ Extensions

FINN+ aims to incorporate all development from the upstream repository (dev branch) while extending FINN in all directions, including the following list of features that are either in progress or already completed:

  • Transformer/Attention support
  • Improved streamlining
  • Improved automatic folding and FIFO-sizing
  • Empirical quality-of-result (QoR) estimation
  • Back-end extensions
    • Instrumentation for accurate performance profiling in simulation and on hardware
    • Improved Alveo build flow
    • Multi-FPGA support
    • Optimized C++ driver
  • Quality-of-live improvements
    • Better logging and error handling
    • Type hinting/checking
    • Alternative YAML-based build configuration
    • Containerless setup

Please refer to our Feature Tracker for the current status of individual features. While some items are already on-track to be merged into the upstream repository, we try to merge them into the FINN+ dev branch as early as possible to increase development pace and drive our research forward.

Getting Started

This is a quick overview of how to get started, for additional information please refer to our Wiki!

Requirements

The primary dependencies currently are:

Installing via pip

After preparing the dependencies mentioned above, simply run the following to start a build flow:

# Make sure to create a fresh virtual environment for FINN+
pip install finn-plus          # Install FINN+ and its Python dependencies via pip
finn deps update               # Ensure FINN+ pulled all further dependencies (this might update packages in your venv!)
finn build build_config.yaml   # Run a FINN+ build defined in a YAML file

Installing from the repository

To install directly from the repository, you'll need Poetry (>= 2.0) for dependency management. After cloning the repo and setting up the system-level dependencies, run the following to start a build flow:

cd finn-plus
poetry install                 # Install Python packages into a Poetry-managed virtual environment
source <your-poetry-venv>      # Use "poetry env info" to find the path to your Poetry venv. For further information visit the Poetry documentation
finn config create             # Create a default configuration in ~/.finn/settings.yaml. Optional but recommended
finn deps update               # Ensure FINN+ pulled all further dependencies (this might update packages in your venv!)
finn build build_config.yaml   # Run a FINN+ build defined in a YAML file

About Us

FINN+ is maintained by researchers from the Computer Engineering Group (CEG) and Paderborn Center for Parallel Computing (PC²) at Paderborn University, Germany as part of the eki research project.

logo logo

logo logo

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

finn_plus-1.2.0.tar.gz (3.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

finn_plus-1.2.0-py3-none-any.whl (3.7 MB view details)

Uploaded Python 3

File details

Details for the file finn_plus-1.2.0.tar.gz.

File metadata

  • Download URL: finn_plus-1.2.0.tar.gz
  • Upload date:
  • Size: 3.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.0 CPython/3.10.18 Linux/6.11.0-1018-azure

File hashes

Hashes for finn_plus-1.2.0.tar.gz
Algorithm Hash digest
SHA256 b50a6f31b142fb47c2a3cfff0f05377a75be3a903aeb65cc305f94df2921dcd2
MD5 8198521f40e6df4ab292c8386fac7a9c
BLAKE2b-256 8643b7254360512f36ad0513b47f56c39962bf9b1ba6c75bf978eb557f18babb

See more details on using hashes here.

File details

Details for the file finn_plus-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: finn_plus-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.0 CPython/3.10.18 Linux/6.11.0-1018-azure

File hashes

Hashes for finn_plus-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 24e41c8857a87f5422bafe9e031ed7d84f317c265ed3a601e5aed7b016c526ef
MD5 c774dd52d59b5c8c934aecc3a3388a94
BLAKE2b-256 a43d94df4acf744f9abc416f79ce1f5e0f09664eb5c5d301f259303e61d72262

See more details on using hashes here.

Supported by

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