Project Guidelines

Project Timeline

1/23 - Proposals due (returned 1/25)

2/11 - Part 1 Report due

2/19 - Peer Review due (assigned 2/13, shared with authors 2/22)

3/11-15 - Final Presentations

3/19 - Final Project Report due (revised Part 1 + Part 2)


The course research project will be an opportunity to design an accelerator, and it will be done in groups of two. Due to the short length of the quarter, there will not be enough time to fully implement the accelerator, but there is enough time to create a high-level design (and learn a lot in the process). The project will be done in two parts. In the first part, groups will characterize their target workload to identify features to exploit with specialization. In the second part, groups will use the insights from the first part to design the accelerator and provide rationale to justify its potential for efficiency.

There are other project activities in addition to the written reports for the two parts of the project. To get started on the right path, each group will first submit a project proposal. To receive the benefits of additional viewpoints, each group will review another group's part 1 project report and give constructive feedback. The final report will include the part 1 report with revisions suggested by the feedback. To get experience explaining their work, at the end of the quarter, each group will give a presentation on their project.

At the completion of the course, groups will have created an accelerator design with rationale for why it is worth building. Following the course, groups can implement their designs, and hopefully turn them into publications or even masters theses/projects. 


The proposal should provide a plan for how your pair intends to approach the project. During the course of research, plans can of course change, but it is good to start with a plausible path. Each pair should submit a 1-page proposal as a PDF (via Canvas), and it should include:

Group member names (2)

Target workload domain

Plan for workload - What code and input will you be using?

Execution environment - Where will you be running the workload? What will serve as your project's baseline?

Scale of intended accelerator - How do you envision your final accelerator fitting into a system? Will it be a processor ISA-extension or a full-fledged independent system, or something in between?

How will you model your accelerator design?

Related Work - References for the workload, and any prior work on characterizing your target workload or accelerators for it.

Part 1 Report - Workload Characterization

In order to specialize hardware for a target workload, you must first understand the target workload. Thus, in the first part of the project, you will characterize your target workload. The goal is to find workload properties you can exploit in the second part when you design the accelerator. Typical beneficial properties are places where the workload has higher locality or parallelism available. In the 4-page report, you should also motivate why the workload is important, discuss the typical structure of the workload, provide measurements to support your findings, and survey prior work. It may also be interesting to include some negative results, such as parts of the workload that will make acceleration more challenging. You should submit your report as a PDF formatted with the ACM template to Canvas.

Part 1 Peer Review

The purpose of this exercise it to help improve the projects, not to evaluate them. Each group will be assigned to review the part 1 report from another group. In a 1-page PDF submitted via Canvas, each group will provide constructive feedback that contains the following sections:

Summary - Summarize the workload, its application, the main properties found, and the methods used. Being able to concisely summarize the work under review helps in multiple ways. First, it forces the reviewers to distill what the big picture is. Second, it demonstrates to the authors that the reviewers read it carefully. Third, if the reviewers' summary is wildly different than the author's intention, it suggests possible sources of confusion.

Strengths - List a few of the overall strengths of the report.

Weaknesses - List a few of the overall weakness (places for improvement) of the report.

Characterization benefit - Do the workload properties found suggest an opportunity to design an accelerator? Does the report weigh the benefits of specialization against the workload's need for programmability? How you would you improve the characterization to make it more useful for designing an accelerator?

Ways to improve methodology - Are the workload claims supported by the measurements? What would make them more convincing? Are there other things they should measure?

Ways to improve writing - Did you find any parts of the report confusing? How would you suggest improving the clarity and writing of the report?

Final Presentation

Each group will present their project on the day listed on Canvas. The presentation should last 15 minutes in order to leave a few minutes for questions. The presentation's content should essentially be what will go into the final report, including: the workload, motivation, workload characterization, properties exploited, accelerator design, accelerator programmability, and evaluation. Although some experiments and results may change between the presentation and final report, the bulk of project should be done to make the presentation useful. Consider the presentation to be a great opportunity to practice the your project's narrative as well as receive feedback from your peers. Both members need to speak during the presentation. Upload your slides by 5pm the day of your presentation to the Canvas assignment.

Final Report

To conclude the project, summarize your project in a 8-page report. In this report, you will describe your workload, present an accelerator designed for it, and evaluate the accelerator. You should also motivate why the workload is important, discuss the typical structure of the workload, highlight workload properties your accelerator exploits, survey prior work (including prior characterizations & accelerators), and discuss the programmability needed. You will want to use content from your part 1 report, revised with the feedback from your peers and instructor. You may also wish to discuss negative results from your work or tradeoffs considered when designing your accelerator. For both the workload characterization and the accelerator evaluation, you should provide quantitative measurements. Although you will not actually build the accelerator, you should still simulate or model its improvements in terms of both performance and energy. You should submit your report as a PDF formatted with the  ACM template to Canvas. Please submit before the deadline, as there will be no extensions granted or late submissions accepted.

Frequently Asked Questions

1) Does the final result need to design hardware?

You should plan on designing hardware. During your project research, you may find the workload characteristic you are exploiting can also be exploited in software. That is ok. Talk to the instructor if it comes up.