Overall description

The project structure was described in
the project kickoff class. There are two flavors (programming and architecture) and two tracks (research or non-research).

Project Flavors

The programming flavor project would typically consider a substantial application and provide GPU (or other accelerator based) implementation for it. The implementation should study the application and fine tune performance to the best of your ability.

The architecture flavor projects would explore architecture modifications to GPGPUSim to improve performance, power, or something similar ( for a somewhat out of date list of simulators and open cores, check the resources page).

Project Tracks

The research track has a research expectation -- i.e., a proposal/topic that may lead to a published paper. As a result, there is an expectation of a related work that explores papers related to your idea. There is also an expectation of a more detailed evaluation that perhaps compares against the most relevant alternative to your idea. Please scope something realistic, and keep in mind that we dont have a lot of time left in setting your goals -- if you like the topic (e.g., to work towards a publication), you can continue to work on it after the course.

In contrast, the implementation track the only requirement is that there is a substantial implementation effort. You do not have to establish novelty vs. related work and it is sufficient to evaluate your own implementation against the sequential one.

The research track project will allow you not to take the final exam under the conditions we discussed in class (that it covers a sufficient amount of the topics we are studying after the midterm; for example, atomics and streams for CUDA projects, and naturally GPU architecture for architecture projects). In contrast, Implementation track project students have to take the final exam. Note that if you are an MS student counting this class as a core class you may want to take the comprehensive problems on the exam to meet the comprehensive exam requirement for your degree.

How do I find a problem to work on?

Ideally, you would come up with something based on your research or interests and discuss it with me. I'd be happy to discuss possible ideas and help you converge on a topic. Given that the quarter is short, I will provide one default project for each of the tracks. Note that the default project could, with some thinking, be turned into a research project as well.

For the architecture track, I will make a set of possible default projects available. One is to come up with a warp scheduler that beats the current warp schedular in GPGPUSim (although I would like something more than a simple tweak of the current scheduler). For example, this could have been a submission to the GPU scheduling competition that ran a few years ago: (call for competition). If there is more than one team, we can have a local competition on who does best on Rhodinia benchmark (for bragging rights or a bonus). Let me know if you are interested. I will make other projects available shortly.

NEW: Additional GPGPUSim projects thanks to Hodjat.

For the programming track, the project is now available. Please check the class website for detail.

Logistics