Hello! Welcome to the Fall 2024 edition of CMSC 818J/ENEE759C at UMD CS/ECE!
Administrative Information
- Instructor: Bahar Asgari
- Email: bahar [AT] umd [DOT] edu
- TA: Divya Kothandaraman
- Email: dkr [AT] umd [DOT] edu
- Lectures:
- Time: MW 3:30pm - 4:45pm
- Location: CSI 3117
- Office Hours:
- Wednesday 2:30pm to 3:15pm | Location: IRB 5148
- Exceptions (OH for Septemebr): 9/4/24, 9/16/24, and 9/23/24
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.
- Begin with a Project Proposal
- Topic Exploration
- Review abstracts from multiple papers and pinpoint a topic of interest
- Identify the most recent and relevant publications about your chosen topic
- Select metrics and compare previous studies using these metrics
- Understand challenges that remain unaddressed in the existing literature
- Conceptualize a solution
- Brainstorm potential strategies to address the challenge
- Anticipate the improvements your solution might offer over existing studies
- Assess Your Solution
- Specify the tools you will use including infrastructure, simulators, programming languages, etc.
- Select appropriate workloads and datasets for evaluation
- Execute your solution and conduct tests
- Compile Your Findings
- Showcase Your Work to the Cohort
Subject Areas:
Throughout this course, we will delve into the following areas:
- Foundational Principles:
- Evaluating and Modeling Performance
- Tools like Perf, the Roofline Model, Little's Law, among others
- Understanding Dataflow Architectures and Systolic Arrays
- Methods of Data Representation for Sparse Data
- Emerging Technologies in DSAs
- Techniques such as Processing near/in/using Memory, Intelligent SSDs, etc.
- Specific DSAs for:
- Computer Vision
- Natural Language Processing (NLP)
- Recommendation Systems
- Sparse Problems
- Scientific Computing
- Analyzing Graph Structures
- Database Systems
- Robotics
- Genomic Data Processing and DNA Sequencing
Course Requirements
- A foundational understanding of computer architecture is sufficient. Please reach out to the instructor for additional clarification.
- For project work, some familiarity with C/C++ programming and basic Linux commands is essential, though you will have opportunities to pick these up during the course!
Communication and discussion forums
For communication and sharing resources we will be using:
- Elms-Canvas (to share lectures, homework assignments, project materials, and recordings)
- Piazza (for offline discussions)
- Gradescope (for grading)
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
- Midterm Exam 30%
- Assignments 10% (subject to change) + 2%
- Assignment 0: 2%
- Assignment 1 and 2: 5% each (subject to change)
- Paper Reading Practice 10% (subject to change)
- Presentation and leading the discussion: 5%
- Critiques and participation in discussions: 5%
- Research Project 50%
- Literature Review: 10%
- Proposal: 5%
- Report: 15%
- Presentation: 15%
- Peer Review: 5%
Tentative schedule (subject to change)
Week | Date | Lesson | Released | Due | Comments |
---|---|---|---|---|---|
1 | 08/26/2024 | Logistics + Introduction to DSAs | Assignment 0 | Lecture | |
1 | 08/28/2024 | Dataflow Architectures I | Assignment 1 | Lecture | 2 | 09/02/2024 | No Class | Labor Day |
2 | 09/04/2024 | Dataflow Architectures II | Paper Critique Instructions, Paper Critique 1 | Assignment 0 | Lecture |
3 | 09/09/2024 | Dataflow Architectures III | Paper Critique 1 | Paper Discussion Led By Instructor | |
3 | 09/11/2024 | Streaming Accelerators and Sparsity I | Assignment 2 | Lecture | |
4 | 09/16/2024 | Sparse Accelerators and Sparsity II | Assignment 1 | Lecture | |
4 | 09/18/2024 | Sparse Accelerators and Sparsity III | Paper Critique 2 | Lecture | |
5 | 09/23/2024 | Hardware/Software Co-Design | Lecture | ||
5 | 09/25/2024 | Sparse Accelerators and Sparsity IV | Paper Critique 2, Assignment 2 | Paper Discussion Led By Instructor | |
6 | 09/30/2024 | Recommendation Systems I | Topic Exploration Instructions | Lecture | |
6 | 10/02/2024 | Recommendation Systems II | Lecture | ||
7 | 10/07/2024 | Importance of Interconnection Networks in DSAs | Bonus Question 2 | Topic Exploration | Lecture |
7 | 10/09/2024 | Optically Reconfigurable DSAs | Literature Review Instructions | Bonus Question 2 | Lecture |
8 | 10/14/2024 | Practice Questions I | Lecture | ||
8 | 10/16/2024 | Practice Questions I | Lecture | ||
9 | 10/21/2024 | Midterm Exam | Exam | ||
9 | 10/23/2024 | Overview of Simulators | Proposal Instructions (10/25) | Literature Review (10/25) | Lecture |
10 | 10/28/2024 | High-Level Synthesis (HLS) | Paper Critique 3, 4, 5, 6 and Presentation Assignments | Lecture | |
10 | 10/30/2024 | Technology Trends and Future of Computing Reconfigurable Computing | Proposal | Lecture | |
11 | 11/04/2024 | Guest Lecture by Prof. Cunxi Yu | Guest Lecture | ||
11 | 11/06/2024 | No Class | No Class | ||
12 | 11/11/2024 | Topic and Presenter: TBD | Paper Critique 3 | Paper Discussion Led By Students | |
12 | 11/13/2024 | Topic and Presenter: TBD | Paper Critique 4 | Paper Discussion Led By Students | |
13 | 11/18/2024 | Topic and Presenter: TBD | Paper Critique 5 | Paper Discussion Led By Students | |
13 | 11/20/2024 | Topic and Presenter: TBD | Paper Critique 6 | Paper Discussion Led By Students | |
14 | 11/25/2024 | Topic and Presenter: TBD | Paper Critique 7 | Paper Discussion Led By Students | |
14 | 11/27/2024 | No Class | Thanksgiving Recess | ||
15 | 12/02/2024 | Topic and Presenter: TBD | Final Presentations | ||
15 | 12/04/2024 | Topic and Presenter: TBD | Final Presentations | ||
16 | 12/09/2024 | Topic and Presenter: TBD | Final Presentations | ||
17 | 12/16/2024 | 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 is not 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
- Hardcoding of results in a project assignment. Hardcoding refers to attempting to make a program appear as if it works correctly (e.g., printing expected results for a test).
- Using any work available on the internet/web or any other source. For example, using work from StackOverflow, Sourceforge, or GitHub.
- Hiring any online service to complete an assignment for you.
- Discussing project implementations (everything beyond clarifications) with your classmates.
- Sharing your work with any students.
- Providing ideas/suggestions on how to solve/implement a programming assignment.
- Looking at another student’s work.
- Using online forums to ask for help regarding our assignments.
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.