Giter Site home page Giter Site logo

bynaryman / pof Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 6.61 MB

The Posit Operators Framework (POF) is a comprehensive library designed to facilitate arithmetic computations and neural network operations using the Posit numerical format on FPGAs.

SystemVerilog 95.81% Verilog 0.59% VHDL 1.59% Python 2.00%
architecture arithmetic computer ieee754 posit

pof's Introduction

POF (Posit Operators Framework) - Documentation

Table of Contents

  1. Overview
  2. Project Structure
  3. Getting Started
  4. Authors

Overview

The Posit Operators Framework (POF) is a comprehensive library designed to facilitate arithmetic computations and neural network operations using the Posit numerical format on FPGAs. POF includes a comprehensive suite of hardware description language (HDL) files and corresponding software to execute high-precision and efficient arithmetic computations, with a focus on neural network applications. Through POF, it is possible to employ and test multi-layer perceptrons, described as 'positrons,' which capitalize on the Posit numerical format for superior accuracy and performance enhancements.

Project Structure

POF/
├── pynq_soft/                  # Python scripts and datasets for PYNQ
│   ├── MNIST_posit.py          # MNIST recognition script using posits
│   └── *.raw                   # Posit test vectors and dataset files
├── python_tb/                  # Python testbench script generators
│   └── adder_vector_generator.py
├── README.md                   # Project documentation
├── src/                        # HDL source files
│   ├── *.sv                    # SystemVerilog modules
│   ├── *.v                     # Verilog modules
│   └── *.vhd                   # VHDL modules
├── tb/                         # Testbenches for HDL verification
│   ├── tb_*.sv                 # SystemVerilog testbench modules
│   └── vectors/                # Input and output test vectors
└── weights/                    # Text files of Posit neuron weights
    ├── *_0/
    │   ├── hidden_weights_*_0/
    │   │   └── hidden_weights_*
    │   └── output_weights_*_0/
    │       └── output_weights_*
└── ...

Each sub-folder is briefly described below:

  • pynq_soft/: This directory houses the Python software for the execution of Posit-related computations on PYNQ (Artix FPGA) hardware.
  • python_tb/: Contains scripts for the generation of testbench vectors that are utilized within the tb folder.
  • src/: The source files crafted in various HDLs containing the foundations of arithmetic operations, including support for Posit-format calculations.
  • tb/: This is where the test benches ensure the reliability and functionality of the HDL modules found in the src directory.
  • weights/: Aligning with neural network architecture, this set of folders keeps the neuron weights for multi-layer perceptrons in text format, arranged for different Posit configurations.

Getting Started

To get started with POF:

  1. Clone the repository to your local system which should have the necessary FPGA development environment installed (e.g., Xilinx Vivado).
  2. Launch the FPGA development application and incorporate the src directory's source files for a new FPGA project setup.
  3. Proceed with the project synthesis and configure your target FPGA device with the resultant bitstream.
  4. Assure that the bitstream flashed onto the FPGA includes the Posit neuron weights from the weights directory.
  5. Utilize the PYNQ platform to run the Python scripts located in pynq_soft, which ultimately runs mnist inference with posit perceptron.

Authors

For any questions concerning the Posit Operators Framework, the authors are available for contact:

Please consider reaching out to the authors regarding contribution proposals, usage queries, or academic collaborations.

pof's People

Contributors

bynaryman avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.