CMSC 818J - Domain Specific Architectures (DSA)

Hello! Welcome to the Fall 2023 edition of CMSC 818J/ENEE759C at UMD CS/ECE!

Administrative Information

Description and topics

Domain-Specific Architectures (DSAs):

For years, the majority of global computations, from expansive data centers to modest home devices, rely predominantly on general-purpose CPUs and, increasingly, on GPUs. While the flexibility of such computing platforms has made them versatile across various applications, this adaptability tends to diminish power and cost efficiency. This inefficiency arises because even simple logic operations like AND or OR need multiple intricate steps to convert software code into a hardware function. For a long time, as Moore's law ensured that the transistor count on chips doubled every two years, these computational costs were manageable. However, with the slowing of Moore's law, particularly in areas like on-chip memory, there is a pressing need to adopt domain-specific architectures (DSAs) or hardware accelerators, which are tailored to harness hardware's potential by focusing only on essential operations specific to an application, sidestepping the need for broad programmability. DSAs have been conceptualized and developed for diverse applications, from deep learning and computer vision to scientific computig and database systems. With growing academic interest, industry too is heavily investing in DSAs. Today, most devices, be it smartphones or laptops, come equipped with at least one DSA. Notable examples include Google's TPU and Apple's Neural Engine.

Course Objectives:

This course delves into the latest developments in the design of DSAs from both academic and industrial efforts. We will examine the attributes of applications that are particularly suited for DSAs and understand the primary factors driving speed improvements, including parallelism, optimization of memory access, and data specialization.

Learning Outcomes:

In this course, students will become familiar with prevalent techniques, such as the use of systolic arrays and near-data processing, which are instrumental in the design of state-of-the-art DSAs for efficient computation. Additionally, the course provides an overview of the hardware/software co-design concept. It aids students in grasping essential design-space trade-offs, such as balancing between area-power-performance and specialization-generality, crucial for crafting efficient DSAs. Furthermore, the course underscores vital benchmarking metrics essential for evaluating the burgeoning DSAs emerging from both academic and industrial spheres.

Course Outline and Topics:

This course weaves together lectures with in-depth paper readings and interactive discussions. Our course materials are extracted from recent papers presented at leading computer architecture conferences such as ISCA, MICRO, HPCA, and ASPLOS. Throughout the semester, assignments mainly encompass paper analysis and exercises related to DSA applications or explorations. Additionally, the course features a research-driven project, enabling students to delve into pressing research challenges in this arena and craft innovative solutions. Initially, students will explore a variety of application domains to select a specific area for their project. They will then be systematically guided through the subsequent phases of their project, with each phase carrying specific credit points. Outstanding final reports are not only encouraged to shape their findings into a research paper but will also receive support for presenting their work at relevant conferences.

Subject Areas:

Throughout this course, we will delve into the following areas:

Course Requirements

Communication and discussion forums

For communication and sharing resources we will be using:

Material and textbooks

This course is mainly based on recent papers from top-tier computer architecture conferences that will be shared by students throughout the semester.

Evaluation

Tentative schedule (subject to change)

Week Date Lesson Released Due Comments
1 08/28/2023 Logistics + Introduction to DSAs Assignment 0 Lecture
1 08/30/2023 Dataflow Architectures Assignment 1 Lecture I
2 09/04/2023 No Class Labor Day
2 09/06/2023 Dataflow Architectures Paper Critique Instructions Assignment 0 Lecture II
3 09/11/2023 Dataflow Architectures Paper Critique 1 Paper Discussion
3 09/13/2023 Streaming Accelerators and Sparsity Assignment 2 Assignment 1 Lecture I
4 09/18/2023 Sparse Accelerators and Sparsity Lecture II
4 09/20/2023 Sparse Accelerators and Sparsity Paper Critique 2 Lecture III
5 09/25/2023 Hardware/Software Co-Design Lecture
5 09/27/2023 Sparsity: Paper discussions Topic Exploration Instructions (9/29) Paper Critique 2 (9/27), Assignment 2 (9/29) Paper Discussion
6 10/02/2023 Recommendation Systems Lecture I
6 10/04/2023 Recommendation Systems Bonus Question 2 Lecture II
7 10/09/2023 Importance of Interconnection Networks in DSAs Literature Review Instructions Topic Exploration Lecture
7 10/11/2023 Optically Reconfigurable DSAs Bonus Question 2 Lecture I
8 10/16/2023 No Class
8 10/18/2023 Programmable Switch-Based Security Applications Literature Review Guest Lecture by Dr. Alan Liu
9 10/23/2023 Overview of Simulators Proposal Instructions Lecture
9 10/25/2023 Midterm Exam Paper Critique 3, 4, 5, 6 and Presentation Assignments
10 10/30/2023 Overview of High-Level Synthesis (HLS) Lecture
10 11/01/2023 Reconfigurable Computing Proposal (11/03) Lecture
11 11/06/2023 TBD Topic: TBD
11 11/08/2023 Paper Presentation & Disscussion Paper Critique 3 Topic: TBD
12 11/13/2023 Paper Presentation & Disscussion Paper Critique 4 Topic: TBD
12 11/15/2023 Paper Presentation & Disscussion Paper Critique 5 Topic: TBD
13 11/20/2023 Paper Presentation & Disscussion Paper Critique 6 Topic: TBD
13 11/22/2023 No Class Thanksgiving Recess
14 11/27/2023 Technology Trends and Future of Computing Lecture I
14 11/29/2023 Final Project Presentations Lecture II
15 12/04/2023 Final Project Presentations Topic: TBD
15 12/06/2023 Final Project Presentations Topic: TBD
16 12/11/2023 Final Project Presentations Topic: TBD
16 12/13/2023 No Class Final Report Final report submission deadline is subject to change.

Disabilities Support Accommodations

In case academic accommodations are needed, you must provide a letter of accommodation from the Office of Accessibility and Disability Services (ADS) within the first two weeks of the semester. For details, see the section titled “Accessibility” available at Course Related Policies.

Mask Policy

Please check the latest campus policies regarding COVID protocols: https://umd.edu/4Maryland. There has been an update in the mask mandate: “Effective Monday, August 29, 2022, wearing a mask will not be required while indoors in most situations, including classrooms. However, wearing a KN95 mask is recommended while indoors for added protection.”

Academic Integrity

Academic dishonesty includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. In short, all submitted work must be your own. Cases of academic dishonesty will be pursued to the fullest extent possible as stipulated by the Office of Student Conduct.

It is very important for you to be aware of the consequences of cheating, fabrication, facilitation, and plagiarism. If the student is found to be responsible for academic dishonesty, the typical sanction results in a special grade “XF”, indicating that the course failed due to academic dishonesty. If you have any doubt as to whether an act of yours might constitute academic dishonesty, please contact your TA or the course coordinator.

The CS Department takes academic integrity seriously. Information on how the CS Department views and handle academic integrity matters can be found at Academic Integrity.

A few examples of academic integrity violations

Additional information can be found in the sections titled “Academic Integrity” and “Code of Student Conduct” available at Course Related Policies.

For more information on the Code of Academic Integrity or the Office of Student Conduct, visit https://studentconduct.umd.edu.

Excused Absences

If you need to be excused for an absence from a single lecture due to a medical reason, you shall make a reasonable attempt to inform the instructor of your illness prior to the class. Upon returning to the class, you will present a self-signed note attesting to the date of your illness. Each note must contain an acknowledgment by the student that the information provided is true and correct. Providing false information to University officials is prohibited under Part 9(i) of the Code of Student Conduct (V-1.00(B) the University of Maryland Code of Student Conduct) and may result in disciplinary action.

Missing an exam for reasons such as illness, religious observance, participation in required university activities, or family or personal emergency (such as a serious automobile accident or close relative’s funeral) will be excused so long as the absence is requested in writing in advance and the student includes documentation that shows the absence qualifies as excused.

A self-signed note is not sufficient for exams because they are Major Scheduled Grading Events. In the case of medical absence, you must furnish documentation from the health care professional who treated you. The documentation must clearly include verification of (1) treatment dates and (2) the time period for which the student is unable to meet academic responsibilities. In addition, it must contain the name and phone number of the medical service provider to be used if verification is needed. No diagnostic information will ever be requested. Note that simply being seen by a health care professional does not constitute an excused absence; it must be clear that you were unable to perform your academic duties.

For additional details, see the section titled “Attendance and Missed Assignments” available at Course Related Policies.

Copyright

All course materials are copyright UMD, Department of Computer Science. All rights reserved. Students are permitted to use course materials for their own personal use only. Course materials may not be distributed publicly or provided to others (except other students in the course), in any way or format.

Although every effort has been made to be complete and accurate, unforeseen circumstances arising during the semester could require the adjustment of any material given here. Consequently, given due notice to students, the instructor reserves the right to change any information on this syllabus or in other course materials.

Concerns

If you have any class concerns, please feel free to contact the instructor. If an issue arises with the instructor, report it using the form available at https://www.cs.umd.edu/classconcern.

UMD Web Accessibility