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 !