Project 2: CS61Classify
Part A Deadline: Saturday, July 9, 11:59:59 PM PT
Part B Deadline: Wednesday, July 20, 11:59:59 PM PT
In this project, you will write RISC-V assembly code to classify handwritten digits with a simple machine learning algorithm.
The goal of this project is to familiarize you with RISC-V, specifically calling convention, calling functions, using the heap, interacting with files, and writing some tests.
Content in scope for this project: Lectures 7-9, Lab 2, Homework 3. Also, make sure you've finished the setup in Lab 0.
This assignment can be done alone or with a partner.
Warning: Once you create a Github repo, you will not be able to change (add, remove, or swap) partners for this project (both 2A and 2B), so please be sure of your partner before starting the project.
If there are extenuating circumstances that require a partner switch (e.g. your partner drops the class, your partner is unresponsive), please reach out to us privately.
Visit Galloc. Log in and start the Project 2 assignment. This will create a GitHub repository for your work.
Clone the repository on your local machine (you don't need the hive machine at all for this project). Windows users should clone in Git Bash.
username with your GitHub username)
Navigate to your repository:
Add the starter repository as a remote:
Setup: Java and Python
Make sure that you followed the local computer setup directions in Exercise 2 of Lab 0.
We will use the Venus web interface for debugging. The procedure is very similar to the Venus setup in Lab 2 (link TBD), so we highly recommend doing Lab 2 first.
bash test.sh download_toolsto download Venus for this project. (You only need to run this once.)
On your local computer (not the hive), navigate to your
61c-proj2directory and run this command. Windows users should run outside WSL (Git Bash is recommended).
In your web browser, open https://venus.cs61c.org (Chrome or Firefox is recommended). In the Venus web terminal, run
mount local vmfs. In your browser, you may see a prompt saying
Key has been shown in the Venus mount server! Please copy and paste it into here. You should be able to see a key (string of letters and numbers) in the most recent line of your local terminal output; copy and paste the key into the dialog.
Now the project files from your local computer are loaded into the Venus web interface. In Venus, you can open the Files tab or run
ls vmfsin the Venus terminal to see all your files in your browser.
If you can see your files in Venus, you can skip the rest of this section. If the above steps didn't work, you can follow the guide below to manually upload files.
Manually Uploading Files
On your local computer or on the hive, zip your
Navigate to https://venus.cs61c.org Type
uploadin the Venus terminal.
A file upload prompt should appear. Upload the zip file you created in step 1.
Now you can edit and debug your files on Venus.
To download any files you've edited, you can run
zip zipname file1 file2 file3 in the Venus terminal. Replace
zipname with whatever you want the downloaded zip file to be named. Replace
file1 file2 file3 with a list of files or directories you want to download (there can be more or less than 3 files or directories).