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

PyPI Downloads PyPI version GitHub license Documentation GitHub branch status Go to Python website GitHub Issues or Pull Requests GitLab CI Linux

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.

Quick Links

What's New in FINN+

FINN+ incorporates all upstream FINN development while adding significant enhancements across multiple areas:

Core Improvements

  • Transformer/Attention Support - Native support for modern transformer architectures
  • Enhanced Streamlining - Improved optimization pipeline for better performance
  • Smart FIFO Sizing (WIP) - Automatic folding and FIFO-sizing with better algorithms
  • QoR Estimation (WIP) - Empirical quality-of-result estimation for design space exploration

Backend Extensions

  • Hardware Profiling - Instrumentation for accurate performance measurement in simulation and hardware
  • Alveo Support - Enhanced build flow for Xilinx Alveo cards
  • Multi-FPGA - Support for distributed inference across multiple FPGAs
  • Optimized Drivers - High-performance C++ drivers for better host-accelerator communication

Developer Experience

  • Better Diagnostics - Improved logging and error handling throughout the framework
  • Type Safety - Comprehensive type hinting and checking for better code quality
  • YAML Configuration - Alternative YAML-based build configuration system
  • Simplified Setup - Containerless installation and setup process

Track Development: Check our Feature Tracker for real-time status updates on all features. We merge improvements early to accelerate development and enable cutting-edge research.

Getting Started

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

Prerequisites

Before installing FINN+, ensure you have:

  • Python: Version 3.10 or 3.11 (Python 3.12+ not yet supported)
  • Xilinx Tools: Vivado, Vitis, and Vitis HLS (2022.2 or 2024.2)
  • System Dependencies: See our dependency installation script for required packages

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 model.onnx   # Run a FINN+ build defined in a YAML file

For more detailed instructions, like installation for development use, please refer to our Wiki!

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.3.0.tar.gz (544.1 kB 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.3.0-py3-none-any.whl (823.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: finn_plus-1.3.0.tar.gz
  • Upload date:
  • Size: 544.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.10.19 Linux/6.11.0-1018-azure

File hashes

Hashes for finn_plus-1.3.0.tar.gz
Algorithm Hash digest
SHA256 aed29c72c0d6da7444e0c81f1aa4a3b58eb165f2009b6ac2f074236c5fb66ee8
MD5 12e5d7506ec088954cbefa38b7c452f2
BLAKE2b-256 b72bba9998d4a6e35247ba99f658a15c3215dd658ace61aee46fcd0d9ef5efca

See more details on using hashes here.

File details

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

File metadata

  • Download URL: finn_plus-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 823.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.10.19 Linux/6.11.0-1018-azure

File hashes

Hashes for finn_plus-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1a46af956e51133f9c2a4ab7a4ecf5c0b6b92c51199aca2d9b7b9e0f18bc9085
MD5 6e79989719ea7e6517bdd47ec4d53e1b
BLAKE2b-256 5f823252d4dd557c7c4abfcc2415bd8be86e229ec1f8670a73347d81a664d2f7

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