Final Project

The project for this course is very open-ended. You are welcome to propose any topic that is related to the class material. See the lecture slides about the final project for more ideas. As discussed a few options include:

  1. Implementing and optimizing an algorithm of your choice in HLS.
  2. Exploring, improving, or evaluating some aspect of HLS tools (open-source or commercial).
  3. Exploring, improving, or evaluating the growing space of DSL to HLS compilers.

You can work alone, or in a group of 2. As a rule-of-thumb, the level of difficulty expected is: Number of people * level-of-difficulty-for-each-assignment * 2

Project Deliverables

There will be four deliverables for the project:

Project Proposal

  1. A project proposal. In order to ensure that everyone has a suitable project, I am asking you to email me a topic by March 26th. You should indicate the project title and the members of your group (if you are not working on your own). You should also write enough to convince me that the project is interesting, and is of a suitable difficulty.

  2. An interim class presentation on the last day of class. In this presentation, you will describe the problem you are trying to solve, any relevant previous work, and your approach. You should have some results to present. Like the mini-lecture, your goal is to make sure that the class understands what you are tying to do, and why you are trying to do it. Presentations should be close to 15 minutes.

  3. The final technical report. This should be prepared in IEEE conference format (10pt, two columns), with a 4 page limit. The paper should be of similar writing quality to a IEEE conference paper. Introduce your problem, describe what you did, and include results. Use figures where appropriate to help describe your project. If your project is better presented in another format (jupyter notebook page, wiki page), discuss this with the instructor. The final report is due Wednesday, April 21st, 11:59pm

  4. Commit any code or code products to your Github repo. Include some basic documentation that outlines the organization of your files and how someone would use them.

Grading Breakdown

Your final project will be graded on these categories:

  • 50%: Work completed for project. (Difficulty of problem tackled, amount of work completed, auality and clarity of results, etc.)
  • 20%: Class presentation (Clarity, organization, engagement)
  • 20%: Report (Clarity of presentation, context with related work, writing quality, qualtiy of graphics and/or figures)
  • 10%: Organization and documentation of code products