227-0085-56L  P&S: Intelligent Architectures via Hardware/Software Cooperation

SemesterAutumn Semester 2023
LecturersO. Mutlu
Periodicityevery semester recurring course
CourseDoes not take place this semester.
Language of instructionEnglish
CommentCourse can only be registered for once. A repeatedly registration in a later semester is not chargeable.


AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveModern general-purpose processors are agnostic to an application 19s high-level semantic information. Hence, they employ prediction-based techniques to enable computational and memory optimizations, such as prefetching, cache management policies, memory data placement, instruction scheduling, and many others. As such, the potential of such optimizations is limited due to the limited information the underlying hardware can discover on its own and such optimizations come with large area, power and complexity overheads required by the hardware for prediction purposes. Purely-hardware optimizations cannot achieve their performance potential and waste power, complexity and hardware area, since they are not aware of the application characteristics. On the other hand, purely-software optimizations are fundamentally tied up and limited by the underlying hardware.

A promising way to increase the performance of modern applications is to co-design software and hardware. Hence, lately both industry and academia are making serious attempts to improve performance, energy and security using hardware/software cooperative schemes such as application-specific hardware accelerators (e.g., Google 19s Tensor Processing Unit) and application-specific extensions in general-purpose processors (e.g., Media Engine in Apple M1).

In this course, we will explore several different topics around hardware/software co-design such as: (i) new hardware/software interfaces (e.g., virtual memory, instruction set architecture) to enhance performance, energy and security, (ii) hardware/software co-design schemes to improve the performance of the memory subsystem in killer memory-intensive applications (e.g., sparse and irregular workloads), (iii) hardware/software cooperative machine-learning-based techniques for different microarchitectural components such as prefetchers, caches and branch predictors, which would continuously learn from the vast amount of memory accesses seen by a processor and adapt to the varying workload and system conditions.

If you are enthusiastic about working hands-on to design both software and hardware, this is your P&S. You will have the opportunity to study modern applications, propose software changes to better match the underlying hardware components, design new hardware components that better match the overlying software and come up with new machine-learning techniques to design efficient microarchitectural components. You will also learn how to program industry-supported microarchitectural simulators and study the performance of modern workloads after your hardware/software modifications.

Prerequisites of the course:
- Digital Circuits AND Computer Engineering (or equivalent courses)
- Familiarity with C/C++ programming and strong coding skills.
- Interest in future computer architectures and computing paradigms.
- Interest in discovering why things do or do not work and solving problems
- Interest in making systems efficient and usable

Preferable:
- Hands-on experience with Machine Learning frameworks (depends on the topic you choose)

The course is conducted in English.
Lecture notesSee: https://safari.ethz.ch/projects_and_seminars/
LiteratureLearning materials
============

[1] Onur Mutlu,"Intelligent Architectures for Intelligent Machines"
Invited Keynote Paper in Proceedings of the 2020 International Symposia on VLSI (VLSI): Link

[2] Kanellopoulos et al. "SMASH: Co-designing Software Compression and Hardware-Accelerated Indexing for Efficient Sparse Matrix Operations", Proceedings of the 52nd International Symposium on Microarchitecture (MICRO 2019): Link

[3] Bera et al. "Pythia: A Customizable Hardware Prefetching Framework Using Online Reinforcement Learning" Proceedings of the 54th International Symposium on Microarchitecture (MICRO 2021): Link

[4] Hajinazar et al. "The Virtual Block Interface: A Flexible Alternative to the Conventional Virtual Memory Framework" Proceedings of the 47th International Symposium on Computer Architecture (ISCA 2020): https://people.inf.ethz.ch/omutlu/pub/VBI-virtual-block-interface_isca20.pdf

[5] Vijaykumar et al. "A Case for Richer Cross-layer Abstractions: Bridging the Semantic Gap with Expressive Memory", Proceedings of the 45th International Symposium on Computer Architecture (ISCA 2018): Link

[6] Vijaykumar et al. “MetaSys: A Practical Open-Source Metadata Management System to Implement and Evaluate Cross-Layer Optimizations” TACO 2022: https://arxiv.org/abs/2105.08123

[7] Vijaykumar et al. "The Locality Descriptor: A Holistic Cross-Layer Abstraction to Express Data Locality in GPUs"
Proceedings of the 45th International Symposium on Computer Architecture (ISCA 2018): Link

[8] Besta et al. "SISA: Set-Centric Instruction Set Architecture for Graph Mining on Processing-in-Memory Systems", Proceedings of the 54th International Symposium on Microarchitecture (MICRO 2021): https://people.inf.ethz.ch/omutlu/pub/SISA-GraphMining-on-PIM_micro21.pdf
Prerequisites / NoticePrerequisites of the course:
- Digital Circuits AND Computer Engineering
- Familiarity with C/C++ programming and strong coding skills.
- Interest in future computer architectures and computing paradigms.
- Interest in discovering why things do or do not work and solving problems
- Interest in making systems efficient and usable

Preferable:
- Hands-on experience with Machine Learning frameworks (depends on the topic you choose)
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Problem-solvingassessed
Project Managementassessed
Social CompetenciesCommunicationassessed
Cooperation and Teamworkassessed
Leadership and Responsibilityassessed
Personal CompetenciesAdaptability and Flexibilityassessed
Critical Thinkingassessed
Self-direction and Self-management assessed