Skip to content

Latest commit

 

History

History
35 lines (29 loc) · 1.6 KB

README.md

File metadata and controls

35 lines (29 loc) · 1.6 KB

Classify MNIST by RISC-V !

This is the second project for UCB CS61C 2020fall, you will implement a simple fully connected neural network to do the MNIST image classifying.

At the end of this project you will have written all RISC-V assembly code necessary to run a simple Artificial Neural Network (ANN) on the Venus RISC-V simulator. In part A you will implement the basic operations such as a vector dot product, matrix-matrix multiplication, the argmax and an activation function. In part B you will combine these basic functions in order to load a pretrained network and execute it to classify handwritten digits from the MNIST benchmark dataset.

Here is the project structure.

.
├── inputs (test inputs)
├── outputs (some test outputs)
├── README.md
├── src
│   ├── argmax.s (partA)
│   ├── classify.s (partB)
│   ├── dot.s (partA)
│   ├── main.s (do not modify)
│   ├── matmul.s (partA)
│   ├── read_matrix.s (partB)
│   ├── relu.s (partA)
│   ├── utils.s (do not modify)
│   └── write_matrix.s (partB)
├── tools
│   ├── convert.py (convert matrix files for partB)
│   └── venus.jar (RISC-V simulator)
└── unittests
    ├── assembly (contains outputs from unittests.py)
    ├── framework.py (do not modify)
    └── unittests.py (partA + partB)

To get started, you should go to this course website to get the start code the follow its detailed guidance to implement your own RISC-V classifier !!

GOOD LUCK !