CSE 240C: Advanced Microarchitecture (Winter 2018)

Instructor: Hadi Esmaeilzadeh

Email: hadi [AT] eng [DOT] ucsd [DOT] edu
Office: CSE 3228
Office hours: Monday Wednesday 5-6pm

Atieh Lotfi: alotfi [AT] eng [DOT] ucsd [DOT] edu
Shelby Thomas: sht005 [AT] eng [DOT] ucsd [DOT] edu
Office hours: Fridays 3-4pm, B215

Course Description

A wide range of commercial and enterprise applications such as health monitoring, social networking, e-commerce, and financial analysis, rely on Machine Learning (ML) to accomplish their objectives. In fact, the advances in machine learning are changing the landscape of computing towards a more personalized and targeted experience for users. For instance, services that provide personalized health-care and targeted advertisements are either prevalent or on the horizon. Nevertheless, machine learning algorithms are computationally intensive workloads. Specifically, learning a model from data requires substantial amount of computation that is repeated over the training data for a relatively large number of iterations. While the demand for these computationally intensive techniques is increasing, the benefits from general- purpose solutions is diminishing. With the effective end of Dennard scaling, traditional CMOS scaling no longer provides performance and efficiency gains commensurate with increases in transistor density. The current paradigm of general- purpose processor design falls significantly short of the traditional cadence of performance improvements. These challenges have coincided with the explosion of data where the rate of data generation has reached an overwhelming level that is beyond the capabilities of current computing systems to match. As a result, both the industry and the research community are focusing on programmable accelerators, which can provide large gains in efficiency and performance by restricting the workloads they support. In this course, we will first thoroughly examine these trends to understand the underlying research challenges and opportunities. Second, we will devise novel technologies to build the foundation of next generation computing systems for artificial sentience and consciousness.


The course will be a combination of lectures, student presentation, and separate brainstorming sessions in which we will collectively explore and develop new ideas on each topic. The students will do a project based on one of these ideas.


There are no pre-requisites for the course but students will be expected to be comfortable with a) basic computer organization, and b) programming in a language such as Python or C/C++. The course is open to both PhD and MS students. Undergraduate students require permission from the instructor.


Students will be evaluated based on the following rubric. For the details on each item please refer to its corresponding page.

Class Participation 10%
Critiques 25%
Class Presentations 25%
Final Project 40%

Course Material

There is no required textbook. All relevant materials will be made available online.

Academic Honesty

Students are expected to abide by the UC San Diego Honor Code. Honest and ethical behavior is expected at all times. All incidents of suspected dishonesty will be reported to and handled by the office of student affairs. You will have to do all assignments individually unless explicitly told otherwise. You may discuss it with classmates but you may not copy any solution (or any part of a solution).