Mini Projects

Each mini project has a clear set of goals. Explore and understand different concepts practically while working towards achieving those goals.

Mini Projects
Photo by Hunter Haley / Unsplash

GPU Accelerated Matrix Multiplication

GitHub - tgautam03/xGeMM: Accelerated General (FP32) Matrix Multiplication
Accelerated General (FP32) Matrix Multiplication. Contribute to tgautam03/xGeMM development by creating an account on GitHub.

Goal: Code matrix multiplication from scratch and (try to) match the performance of cuBLAS SGeMM.

Read more

Mini Project: GPU Accelerated Matrix Multiplication (almost) like cuBLAS
Learn CUDA C/C++ basics by working on a single application: matrix multiplication. To make things interesting, let us try to match the performance of NVIDIA cuBLAS.

GPU Accelerated Image Filters

GitHub - tgautam03/xFilters: GPU accelerated filters for high resolution images.
GPU accelerated filters for high resolution images. - tgautam03/xFilters

Goal: Code 2D convolution from scratch in CUDA C/C++ and use that to apply filters to high-resolution images.

Read more

Mini Project: GPU Accelerated Image Filters using Convolution
Apply filters to high-resolution images using 2D convolution on a GPU. Along the way, learn about caches and using constant, shared, and pinned memory.

Earthquake Simulation

GitHub - tgautam03/earthquake.cpp: 3D earthquake wave simulation
3D earthquake wave simulation. Contribute to tgautam03/earthquake.cpp development by creating an account on GitHub.

Goal: Generate 3D earthquake wave simulation by solving the wave equation using finite difference methods from scratch in C++.

Read more

Mini Project: 3D Earthquake Simulation
GitHub - tgautam03/earthquake.cpp: 3D earthquake wave simulation3D earthquake wave simulation. Contribute to tgautam03/earthquake.cpp development by creating an account on GitHub.GitHubtgautam03 Earthquakes are unpredictable and can be extremely dangerous. Knowing how the surface will respond in an earthquake is extremely important if we want to protect