Teaching

I am the currently the instructor for the Graduate-Level Advanced Computer Architecture Course (CPEN 511).

1. Description

The course will focus on modern high-performance processor and accelerator architecture. Topics include – Microarchitecture-level exploits and security, advanced instruction flow and data flow techniques, high-performance memory hierarchy, special-purpose accelerator architectures, and architectural support for operating systems and programmability.

2. Pre-requisites

CPEN 411 or equivalent with instructor permission.

Students must have a prior in-depth understanding of the operation of modern out-of-order superscalar speculative CPUs and accelerators such as GPUs.

3. Instructor Contacts

Prashant Nair; office hours by appointment.

Jonathan Lew (TA): office hours by appointment

4. Course Structure

Lectures:

Tuesdays and Thursdays 12:30–14:00, CEME 1212

Website:

Canvas will be used to distribute material, administer quizzes, and collect submissions.

Readings:

Students will read about four research papers per week, around 12–13 pages each, which will then be discussed in class; the reading assignments for each lecture will be posted on Canvas about a week in advance. There will be a quiz for each assigned paper.

Paper reviews and presentations:

Students will be assigned two papers to present in class. A written review will be due for each assigned paper (see the Review Guidelines document). The presentation should be similar to a conference talk (a 20-minute talk); the student will also lead the in-class discussion for the relevant paper. There will be a question and answer session by the instructors and students (peers).

Final project:

Students will complete a final research project roughly equivalent in scope to a single paper covered in class. See Project Proposal Guidelines for final project details. Each student will submit a proposal (subject to instructor approval) and two progress reports during the term. At the end of the course, students will present their findings in a final report (equivalent to a conference submission) and a final presentation (equivalent to a conference talk). Subject to instructors’ approval, students are encouraged to work in teams (the requirements will be adjusted appropriately).

5. Learning Outcomes

The course will prepare students to learn about cutting-edge computer systems techniques from published literature, a skill critical for both research and industry. Students will learn to:

1. Read top-tier publications in computer architecture.

2. Critically assess the advantages and limitations of published work.

3. Quantitatively reason about tradeoffs in computer system design.

4. Develop research ideas in computer architecture and formulate relevant research questions.

5. Apply cutting-edge computer architecture techniques to solve research problems.

6. Quantitatively evaluate research ideas and artifacts in computer architecture.

6. Materials

Course readings will be selected from recent publications in top-tier venues in computer architecture, such as ISCA, ASPLOS, MICRO, HPCA, etc. IEEE or ACM typically publishes proceedings and may be accessed from UBC or externally via the UBC Libraries EZProxy.

For a more thorough background on selected topics, students are encouraged to peruse the Synthesis Lectures on Computer Architecture series published by Morgan & Claypool, accessible from UBC or via EZProxy. Finally, students who require a “refresher” on modern high-performance CPU architecture may optionally refer to Modern Processor Design: Fundamentals of Superscalar Processors by Lipasti & Shen.

7. Paper Readings

The paper readings are listed on Canvas.

8. Course Assessment

The final grade will be calculated as follows:


Quizzes: 40%

Paper Reviews and Presentations: 20% –> (5% Paper Review 1) + (5% Paper Presentation 1) + (5% Paper Review 2) + (5% Paper Presentation 2)

Final Project: 40% –> (5% for the proposal) + (5% for the first progress report) +  (5% for the second progress report) + (10% for the final presentation) + (10% for the final report) + (5% for the source code + clear instructions on how to run in a README)

Marks will be posted on Canvas when available.


Paper Quizzes:

There will be a brief in-class quiz for each assigned reading; students must do the quiz on Canvas in class. Students may refer to the assigned papers during the quiz.

Paper Presentations:

For each assigned paper, the student will present the paper in class (as a 20-minute talk) and lead the in-class discussion. Please refer to the conference presentation style for reference. Presentations will be marked for the accuracy and comprehensive coverage of the assigned paper, presentation clarity, and the presenter’s responses to in-class questions.

Paper Reviews: For each paper assigned for in-class presentation, the presenting student will submit a paper review due one week after the presentation. Reviews will be marked according to criteria in the Paper Review Guidelines document and clarity.

Final Project:

Students will complete a final research project roughly equivalent in scope to a single paper covered in class. See Project Proposal Guidelines for final project details.

During the term, each student will submit a proposal (subject to approval by the instructors) and two progress reports. At the end of the course, students will present their findings in a final report (equivalent to a four to six-page IEEE CAL conference submission) and a final presentation (equivalent to a conference talk). Subject to instructor approval, students are encouraged to work in teams (the requirements will be adjusted appropriately).

Academic concessions:

Students requiring accommodations that fall under the UBC Academic Concession policy must submit a Request for Academic Concession Form via Engineering Academic Services.

Due to the nature of the paper discussions, missed quizzes may not be retaken after the quiz deadline has passed. To account for unexpected situations that warrant an academic concession, the lowest-marked quiz will be dropped for each student.

9. Academic Integrity

Each student’s work must be their own—this includes code, text, figures, data, etc., and the data must be reproducible. For final projects done in a team, the report and (if applicable) code must clearly state everyone’s contributions. In research, building upon other people’s ideas, tools, and code is normal; we encourage you to do that. Each submission must, however, stand on its own as a substantial contribution, and all code, ideas, quotations, and figures from other sources (e.g., a simulator you’ve modified to implement your new idea) must be appropriately cited. As a rule, each claim must be backed up with your experimental data or appropriate citations. Violations will be directly reported to the Dean of Applied Sciences. Should you have doubts about what might violate this policy, please clarify with a course instructor.

10. University Policies

UBC provides resources to support student learning and to maintain healthy lifestyles but recognizes that sometimes crises arise and so there are additional resources to access including those for survivors of sexual violence. UBC values respect for the person and ideas of all members of the academic community. Harassment and discrimination are not tolerated nor is suppression of academic freedom. UBC provides appropriate accommodation for students with disabilities and for religious and cultural observances. UBC values academic honesty and students are expected to acknowledge the ideas generated by others and to uphold the highest academic standards in all of their actions. Details of the policies and how to access support are available at https://senate.ubc.ca/policies-resources-support-student-success.