Skip to content

Inspired by Tsodings ventures in ML with C, this is an FPGA hardware implementation of the simple example seen at the start of episode 1.

License

Notifications You must be signed in to change notification settings

Guiltybyte/ml_in_chisel

Repository files navigation

Simple ML Example In Chisel

Simple machine learning (training) example intended for synthesis on an FPGA.

Inspired by Tsoding's recent ventures with Machine Learning in C, in particular this project implements the 1st simple example developed during his Machine Learning in C (Episode 1) Stream.

To summarise, using very rudimentiary mathematics, this HDL describes a circuit which can train a single parameter function (or neuron at a stretch) to fit the training data, to produce a model which approximates a 2 times multiplier.

Initial Design Doc

The original "design document", which I used to reason about the general 'flow' of the hardware implementation of this simple ML algorithm. This is no formal design document, and was just for my own understanding and reasoning. It does however provide some important context for the RTL in this repo. rough design document

Instructions

  1. Download the source code
git clone https://github.com/Guiltybyte/ml_in_chisel
cd ml_in_chisel
  1. Run the simulation
make test

You should see that the final weight is approximately 2.0

  1. Run a build with VtR

If you have VtR installed, you can run the following to run a "build" (synthesis -> optimization -> placing -> routing) with the following command

make build

generated *.blif files and logs from the VtR flow run will be in: generated/vtr/TopML
Note currently there is no script included in this repository to generate FASM and/or bitsreams.

About

Inspired by Tsodings ventures in ML with C, this is an FPGA hardware implementation of the simple example seen at the start of episode 1.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published