Final Project

Team Formation: Monday May 7, 2018

Project Presentation: June 6 & 8, 2018

Project Report and Code Due: Thursday, June 14, 2018


Requirements:

  • Team of 2 - 3 students
  • Final project report detailing implementation and results
  • Final ~10 minute presentation in class
  • Open-ended project topics. “Make something faster!” or “Make more efficient on GPU”

Project and Team Formation

Due Monday, May 7th

Once you form a team, make a post in Piazza under the finalproject folder with the following information:

  • Team members:
  • Team name:
  • Proposed project idea:
  • Why did you pick this project?
  • Potential technical problems/challenges?
  • What is your plan/outline of your project?

Please fill out the doodle to select a time to meet with me to discuss project ideas: https://doodle.com/poll/hwhyck7bkw96pn9y

Project Deliverables

Project report

For the Final Project report, you can use any template you like (). An example template in Latex is https://www.overleaf.com/latex/templates/project-template-titlepage/bwmhgfdvvhpw

There is no page minimum for the final project report. Therefore, the length should be long enough to sufficiently cover the information requested, but not too long that you require rambling filler sentences.

In general, the project report closely follows the presentation requirement, but with more documentation and complete implementation/results. The report should at a minimum include the following:

  • Title page with project name and team members
  • Project Idea / Overview
  • How is the GPU used to accelerate the application?
    • Examples of this includes:
    • Details related to the parallel algorithm
    • How is the problem space partitioned into threads / thread blocks
    • Which stage of the software pipeline is parallelized
  • Implementation details
  • Documentation on how to run your code
  • Evaluation/Results
  • Problems faced
  • On the last page, include a table with a list of tasks for the project, and a percentage breakdown of contribution of each team member for the tasks. You can choose the granularity of task breakdown here.

Reports should be zipped with the final project code files and uploaded to iLearn.

Presentation

June 6 and June 8 in class

~10 minutes in length

Sign up at the following link: https://doodle.com/poll/v8wsr2h3tux9axnc

  • Discuss your high-level project idea.
  • How you are implementing / How you are using the GPU?
  • Progress / Results / Lack thereof…
  • Short demo?

Project Ideas

  • Use CuDNN to implement a CNN, such as LeNet or AlexNet. Train it and demonstrate inference. Potentially compare against a CPU implementation to measure speedup.
  • Build a simple back propagation NN from scratch, without using any libraries. Apply various optimizations you learned in class, such as tiling, privatization, etc.
  • Implement a molecular dynamic application. Visualize it in real-time with OpenGL or other graphics framework.
  • Speedup signal processing applications using CuFFT.
  • We have an Nvidia Jetson board and a Microsoft Kinect that you can also borrow and use. An example project of this: https://www.youtube.com/watch?v=yYZfoV3YkWA
  • Parallelize the hashing functions of cryptocurrencies in CUDA
  • Compare performance of various parallel algorithms using CUDA, OpenCL, OpenACC, etc. Explore performance and productivity tradeoffs of various low-level GPU programming languages.