This project was developed for the Spring 2024 class of CS147 (GPU programming) at UCR.
It contains an hand written back propagating neural network for predicting stocks data, both a CPU-based implementation using plain python and numpy, and a GPU-based implementation using Numba.
There is also a PyTorch version for comparison.
Performance of the model on the S&P500
First of all install the required python packages:
# You can setup a virtual environment if you want
python3 -m pip install venv
python3 -m venv .venv
source .venv/bin/activate
# Install packages
python3 -m pip install -r requirements.txt
Change directory to src
and from there you can run the targets of the makefile.
- Run
make cpu
to run the cpu version of the neural network - Run
make gpu
to run the gpu version of the neural network - Run
make pytorch
to run the model on pytorch
The code can be run on GPU provided that:
- You have a NVIDIA GPU
- You have cuda installed in your system
- Presentation: https://docs.google.com/presentation/d/1pMCIn6s4FMmayNxdV6SKRwrzRtKbEc6xfHKGRCjdnIM/edit?usp=sharing
- Report: https://docs.google.com/document/d/1CZPaI57Etz3DFJPeZs57x3tjNPrIG3cxlGybwlbjN1g/edit?usp=sharing
- Colab: https://colab.research.google.com/drive/1C607n23h6gnq2w5iezJEZ5IX1nj7DIPI?usp=sharing