Search result: Catalogue data in Autumn Semester 2023
Electrical Engineering and Information Technology Bachelor ![]() | |||||||||||||||||||||||||||||||||||||||||||||||||||
![]() A minimum of 15 cp must be achieved in the category "Laboratory Courses, Projects, Seminars | |||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() Enrolment is only possible for students in the BSc Electrical Engineering and Information Technology from Friday before the start of the semester. Places are allocated using the P&S application tool (https://psapp.ee.ethz.ch/). Please only enrol for P&S for which you apply via the tool. | |||||||||||||||||||||||||||||||||||||||||||||||||||
Number | Title | Type | ECTS | Hours | Lecturers | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
227-0085-25L | P&S: Magnetic Resonance: From Spectrum to Image ![]() Does not take place this semester. The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | W | 1 credit | 1P | |||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | The phenomenon of nuclear magnetic resonance (NMR) and its application for spectroscopy and imaging are introduced. The course starts with a general introduction to NMR, followed by measurements on a clinical MRI scanner. The NMR experiments will be developed and programmed by the students. Starting from a simple spectroscopic experiment, the basics of imaging will be acquired step-by-step. Finally, sectional images of test objects will be obtained. The course will be conducted only if at least 2 participants show up. In case in-classroom teaching is not allowed, the course must be cancelled. | ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-26L | P&S: Biosignal Acquisition and Processing for IoT Wearable Devices ![]() Does not take place this semester. The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | W | 3 credits | 3P | |||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | Biosignal acquisition and processing – Wearable sensor node design and analysis for bio-impedance sensor using an Arm Cortex-M (Nordic nrf52838) Microcontroller Wearable smart sensor electronics has the potential to revolutionize the medical field. Various body conformal flexible sensors have been used to monitor motion and physiological electrical signals such as electrocardiography (ECG), electroencephalography (EEG) and body composition analysis via body bio-impedance measurements. Smart sensor nodes not only provide accurate and continuous data in time but also automate the process of maintaining medical records, thereby lowering the workload oft he health worker or clinician. This course offers an avenue for the students to understand the interdisciplinary principles that make it possible to interpret human physiology by utilizing discreet electronic components. Most importantly, participants will get a chance to do hands-on system design specific to electronically tracking a particular physiological phenomenon. In particular, the focus will be laid on programming of micro controllers, interfacing with sensors, acquisition of data and utilizing discreet analog elements for bio-signal processing. The programming will be performed in C. The course will be taught in English and by the ITET center for project based learning. | ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-27L | P&S: Android Application Development (AAD) ![]() Does not take place this semester. The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | W | 4 credits | 3P | |||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | Android Applications – Programming and development of Application - Android Studio – Smart Phone Sensors – GPS and Google Maps. Although the App-Industry is dominated by the giant Apps right now, it is still crucial that one knows how those Apps function and how those Apps are communicating with their hardware. This course offers the opportunity for the participants to understand the development of application using Android Studio. Most importantly, participants will get a chance to do hands-on software design specific to Android smartphone and the data acquisition from sensors, GPS, google maps and other internal devices. The main goal of the course if providing the students with the basic principle and software programming for build up every android application. The course include 4-5 weeks project were the students alone or in group will build up a working demo of a target application. The course will conclude with the presentation of the students work. Previous experience in C/Java or other languages is preferable but not mandatory. The students will program their own Android Smartphone. The course will be taught in English by the new Project-based learning centre. | ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-28L | P&S: iCEBreaker FPGA For IoT Sensing Systems ![]() The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | W | 3 credits | 3P | M. Magno, C. Vogt | ||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | Ultra Low Lattice FPGA – High Level Programming – Peripehrals Interfacing using an Lattice FPGA Field-programmable gate array (FPGA) is an integrated circuit designed to be configured by a customer or a designer after manufacturing , so they are also "field-programmable". The FPGA configuration is generally specified using a hardware description language (HDL), similar to that used for an application-specific integrated circuit (ASIC). However more and more nowdays producers and open source community are providing higher level toolls to program them similary than processors. On the other side still it is important know the hardware architectures. This course will give to the students the opportunity to program FPGA in a high level way and use them to connect with external peripherals such as display, sensors, etc. In particular, the course will use the iCEBreaker FPGA boards that is specifically designed for students and engineers . They work out of the box with the latest open source FPGA development tools and next-generation open CPU architectures. The course will also iCEBreaker can be expandable through its Pmod connectors, so the students can make use of a large selection of third-party modules. The course will include a project where the students will learn how to build a full working system for the next generation of Internet of Things intelligent smart sensing. The course will be taught in English by the new D-ITET center for Project-based learning. | ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-29L | P&S: Embedded Deep Learning with Huawei Atlas 200 AI Dev Kit ![]() The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | W | 3 credits | 3P | M. Magno | ||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | Deep Learning Intro - Python - Accelerated Embedded Computing Deep neural networks (DNNs) have become the leading method for a wide range of data analytics tasks, after a series of major victories at the ImageNet Large Scale Visual Recognition Challenge (ILSVRC). For ILSVRC, the task was to classify images into 1000 different classes, many of which are difficult to distinguish (e.g. many classes are different breeds of dogs). All that was given were 1.2 million labelled images. Meanwhile, this recipe for success has taken over many more areas, from image-based tasks like segmenting objects in images, detecting objects, enhancing images using super-resolution and compression artifact reduction, to robotics and reinforcement learning, and a wide range of industrial applications. DNNs and their subtype convolutional neural networks (CNNs) have not been new in the 2013 when the wave of success has started, but they got this huge boost through the new availability of large-scale dataset and—at least as importantly—the availability of the necessary compute resources by using GPUs to perform the computations required during training. While GPUs were then also used to stem the high computation effort of DNNs during inference (e.g. classifying images directly using a trained DNN rather than training the DNN itself). The high demand, the need for cost efficiency, and the goal of deploying DNNs not just in data centers but pervasively in everyday devices, wearables, and low-latency industrial or interactive applications, has triggered the development of various application-specific processors which are much faster, vastly more energy efficient, and cheaper at the same time—such as the Google TPU, Graphcore, …, and Huawei’s Ascend/Atlas platforms. In this course, you will learn: 1) the basics of deep neural networks, how they work, and what challenges there are for inference, 2) how platforms with specialized hardware accelerators, specifically the Huawei Atlas 200, can be used for running DNN inference and getting a practical application running, and 3) work on your own project using DNNs and hardware accelerators based on your own ideas or on some of our proposals. The course will be taught in English by the new D-ITET center for Project-Based Learning and a special guest lecturer from Huawei. Individual interactions/help can also be in (Swiss) German. Most sessions will be around 1 hour of lecture and 2 hours of practical computer exercises. We will start an introduction and then you will have ca. 8 weeks to work on your project, which will concluded with a final presentation of your results. | ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-31L | P&S: Vision Goes Vegas ![]() The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | W | 2 credits | 2P | L. Van Gool, F. Yu | ||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | Computer Vision beschäftigt sich unter anderem damit, Maschinen zu befähigen ihre Umwelt zu sehen und das wahrgenommene Bild zu verstehen. In unserem Projekt soll ein System entwickelt werden, das Spielkarten erkennen kann und, einer guten Strategie folgend, erfolgreich Black-Jack spielen kann. Die Teilnehmer des Projektes werden kleine Teams bilden und gemeinsam mit einem Assistenten die Aufgabe erarbeiten und eine Implementierung erstellen. Am Ende des Semesters sollen die Programme im öffentlichen Wettstreit gegeneinander antreten! Ziel des Projektes ist es, aktuelle Methoden der Computer Vision kennen zu lernen. Spielkarten, die von einer Digitalkamera in beliebiger Orientierung aufgenommen werden, müssen registriert und erkannt werden. Ein Strategiemodul kontrolliert dann die Spieltaktik aufgrund allgemeiner Regeln und dem Wissen über schon gefallene Karten. Da sehr viele verschiedene Möglichkeiten bestehen, solch ein System zu realisieren, sind der Phantasie der Teilnehmer keine Grenzen gesetzt. Als Voraussetzungen sollte Interesse an Computer Vision mitgebracht werden und die Bereitschaft, sich in einem Team von Mitstudierenden einzubringen. Kenntnisse in C++ sind notwendig. Der Kurs wird von Prof. Fisher Yu mitbegutachtet. Dieses P&S wird in englischer Sprache durchgeführt. | ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-32L | P&S: Magnetic Fields in Our Daily Life ![]() The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | W | 3 credits | 3P | J. Leuthold | ||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | Magnetic fields can be found everywhere but are rarely directly perceptible. This also leads to sometimes irrational fears, such as of electrosmog. The power supply with direct current, 16.67 Hz and 50 Hz alternating current is indispensable today. Wherever electricity flows, magnetic fields are generated. That is why magnetic fields are omnipresent. But where do particularly high fields occur? How high can these fields be before they cause damage to health? Many studies have already dealt with this question and country-specific guidelines have been defined on this basis. But are these actually adhered to? Where are the legal limits exceeded? What are the consequences? The P&S will deal with this topic and an invited guest will speak. The participants of the P&S will pursue small research projects of their own. To do this, they will be equipped with mobile measuring devices that can be connected to a smartphone to search for and characterise various magnetic field sources. How strong are the magnetic fields in our environment really? Can they pose a danger? How can they be shielded? These questions will be systematically investigated. At the end of the P&S, the individual groups present the findings | ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-33L | P&S: Accelerating Genome Analysis with FPGAs, GPUs, and New Execution Paradigms ![]() The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | W | 3 credits | 3P | C. Firtina | ||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | Genome analysis is a cornerstone for groundbreaking scientific and medical advancements, including personalized healthcare. However, the field faces significant computational challenges, such as algorithmic bottlenecks and the handling of large datasets. This course aims to provide a comprehensive understanding of these computational facets, spanning across the computing stack from algorithms, software & tools, to microarchitecture & hardware accelerators. The course will cover how advanced hardware solutions like FPGAs and GPUs can expedite genome analysis by reducing computational time and energy consumption. In parallel, it will delve into the use and development of heuristic algorithms & tools for accelerating genome analysis across various computational platforms. These algorithms, for example, can offer tradeoffs between computational intensity and accuracy. Students will engage in hands-on projects focused on optimizing existing methods or innovating new solutions for genome analysis. The curriculum’s dual emphasis on hardware solutions and versatile algorithmic strategies offers students a holistic view of the current challenges and potential resolutions within the realm of genome analysis. The course is conducted in English. Course website: https://safari.ethz.ch/projects_and_seminars/doku.php?id=bioinformatics | ||||||||||||||||||||||||||||||||||||||||||||||||||
Content | The students carry out a hands-on project under the supervision of their mentors. We also offer the following lectures that the students are encouraged to follow to make impactful progress on their projects. Lecture 1a: P&S Course Introduction & Scope Lecture 1b: Project Overview and Q&A Lecture 2: Introduction to Genome Analysis Lecture 3: From Molecules to Data: An Overview of DNA Sequencing Technologies Lecture 4a: Fundamentals of Sequence Alignment: Algorithms and Applications Lecture 4b: Optimizing Sequence Search: Hashing, Indexing, and Filtering Techniques Lecture 5a: Building the Blueprint of Life: Genome Assembly Lecture 5b: Generating Insights from Genome Analysis: Variant Calling and Functional Genomics Lecture 6a: GateKeeper Lecture 6b: SneakySnake Lecture 6c: GRIM-Filter Lecture 7a: GenASM Lecture 7b: Scrooge Lecture 8: SeGraM Lecture 9: GenStore Lecture 10a: GenPIP Lecture 10b: TargetCall Lecture 11a: BLEND Lecture 11b: AirLift Lecture 12a: Raw Nanopore Signal Analysis & RawHash | ||||||||||||||||||||||||||||||||||||||||||||||||||
Lecture notes | See: https://safari.ethz.ch/projects_and_seminars/doku.php?id=bioinformatics | ||||||||||||||||||||||||||||||||||||||||||||||||||
Literature | Learning Materials =============== 1. Overview paper on co-designing hardware and software for genome analysis: https://people.inf.ethz.ch/omutlu/pub/AcceleratingGenomeAnalysis_dac23.pdf 2. Survey on the main steps in the genome analysis pipeline and their bottlenecks: https://people.inf.ethz.ch/omutlu/pub/IntelligentGenomeAnalysis_csbj22.pdf 3. Survey on accelerating genome analysis: https://people.inf.ethz.ch/omutlu/pub/AcceleratingGenomeAnalysis_ieeemicro20.pdf 4. Detailed survey on state-of-the-art algorithms for sequencing data: Link 5. Example of accelerating genomic sequence matching with FPGAs or GPUs: Link 6. Example using different computing paradigms for read mapping and alignment, improving energy consumption: https://arxiv.org/pdf/1711.01177.pdf, https://arxiv.org/pdf/2208.01243.pdf 7. Examples of software/hardware co-design for genomic sequence matching: - Link - Link - https://people.inf.ethz.ch/omutlu/pub/GenStore_asplos22-arxiv.pdf - https://arxiv.org/pdf/2209.08600.pdf 8. Example on analyzing raw nanopore signals: https://arxiv.org/pdf/2301.09200.pdf | ||||||||||||||||||||||||||||||||||||||||||||||||||
Prerequisites / Notice | - No prior knowledge in bioinformatics or genome analysis is required. - An interest in optimizing efficiency and solving complex problems is essential. - Basic to good knowledge in C or C++ programming language is required. - Previous coursework in Digital Design and Computer Architecture, or an equivalent course, is desirable. - Experience in either FPGA implementation, GPU programming, or algorithm design is highly beneficial but not mandatory. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Competencies![]() |
| ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-34L | P&S: Exploration of Emerging Memory Systems ![]() Does not take place this semester. The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | W | 3 credits | 3P | O. Mutlu | ||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | DRAM is predominantly used to build the main memory systems of modern computing devices. Emerging memory technologies (RRAM, PCM, STT-MRAM, FeRAM) provide an exciting opportunity to replace or complement DRAM. Simulation-based experimental studies are key for understanding the complex interactions between DRAM, emerging memory technologies, and modern applications. Ramulator is an extensible main memory simulator providing cycle-accurate performance models for a variety of commercial DRAM standards (e.g., DDR3/4, LPDDR3/4, GDDR5, HBM), emerging memory technologies, and academic proposals. Ramulator has a modular design that enables easy integration of additional standards, technologies and mechanisms. Ramulator is written in C++11 and can be easily integrated to full-system simulators such as gem5. In this P&S, you will design new memory and memory controller mechanisms for improving overall system performance, energy consumption, reliability, security, scalability and cost. You will extend Ramulator with these new designs and evaluate their performance, energy consumption, and reliability using modern applications. This will be the right P&S for you if you would like to learn about the state-of-the-art and future memory and memory controllerdesigns and their interaction with modern applications. This P&S will also enable you to hands-on simulate and understand the memory system behavior of modern workloads such as machine learning, graph analytics, genome analysis. The course is conducted in English. Course website: https://safari.ethz.ch/projects_and_seminars/doku.php?id=ramulator | ||||||||||||||||||||||||||||||||||||||||||||||||||
Lecture notes | See https://safari.ethz.ch/projects_and_seminars/doku.php?id=ramulator | ||||||||||||||||||||||||||||||||||||||||||||||||||
Literature | Learning Materials =============== An old version of Ramulator: https://github.com/CMU-SAFARI/ramulator Original Ramulator paper: https://people.inf.ethz.ch/omutlu/pub/ramulator_dram_simulator-ieee-cal15.pdf An example study of modern workloads and DRAM architectures using Ramulator: Link An example recent study of a new DRAM architecture using Ramulator: Link An example recent study of a new virtual memory system architecture using Ramulator: https://people.inf.ethz.ch/omutlu/pub/VBI-virtual-block-interface_isca20.pdf Several examples of new ideas enabled by Ramulator based evaluation https://people.inf.ethz.ch/omutlu/pub/rowclone_micro13.pdf https://people.inf.ethz.ch/omutlu/pub/salp-dram_isca12.pdf https://people.inf.ethz.ch/omutlu/pub/raidr-dram-refresh_isca12.pdf https://people.inf.ethz.ch/omutlu/pub/DR_STRANGE_EndtoEnd-DRAM-TRNG_hpca22.pdf | ||||||||||||||||||||||||||||||||||||||||||||||||||
Prerequisites / Notice | Prerequisites of the course: Digital Circuits AND Computer Engineering A good knowledge in C/C++ programming language. Interest in making things efficient and solving problems. Interest in understanding software development and hardware design, and their interactions. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Competencies![]() |
| ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-35L | P&S: FPGA-based Exploration of DRAM and RowHammer ![]() The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | W | 3 credits | 3P | O. Mutlu | ||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | DRAM is predominantly used to build the main memory systems of modern computing devices. To improve the performance, reliability, and security of DRAM, it is critical to perform experimental characterization and analysis of existing cutting-edge DRAM chips. SoftMC is an FPGA-based DRAM testing infrastructure that enables the programmer to perform all low-level DRAM operations (i.e., DDR commands) in a cycle-accurate manner. SoftMC provides a simple and intuitive high-level programming interface (in C++) that completely hides the low-level details of the FPGA from programmers. Programmers implement test routines in C++, and the test routines automatically get translated into the low-level SoftMC memory controller operations in the FPGA. SoftMC developers write low-level hardware description language code to enable new and faster studies. In this P&S, you will have the chance to learn how DRAM is organized and operates in a low-level and gain practical experience in using SoftMC while developing SoftMC programs for new DRAM characterization studies related to performance, reliability, and security. You may also improve the SoftMC infrastructure itself to enable new studies. And, who knows, you might discover new security vulnerabilities like RowHammer. This will be the right P&S for you if you are interested in DRAM technology and would like to learn more about it as well as FPGA technology and how it can be used for practical purposes such as understanding and mitigating RowHammer attacks, generating true random numbers, reducing memory latency, fingerprinting and identifying devices, and improving reliability. Prerequisites of the course: - Digital Circuits AND Computer Engineering (or equivalent courses) - Familiarity with FPGA programming - Interest in low-level system exploration and memory - Interest in discovering why things do or do not work and solving problems The course is conducted in English. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Lecture notes | See: https://safari.ethz.ch/projects_and_seminars/doku.php?id=softmc | ||||||||||||||||||||||||||||||||||||||||||||||||||
Literature | Learning Materials: =================== - An old version of SoftMC is here: https://github.com/CMU-SAFARI/SoftMC - SoftMC description: https://people.inf.ethz.ch/omutlu/pub/softMC_hpca17.pdf - SoftMC lecture: https://www.youtube.com/watch?v=tnSPEP3t-Ys - Example RowHammer study using SoftMC: https://people.inf.ethz.ch/omutlu/pub/Revisiting-RowHammer_isca20.pdf - Example security attack study using SoftMC: Link - Example neural network acceleration study using SoftMC: Link - Example random number generation study using SoftMC: Link - Example physical unclonable function study using SoftMC: https://people.inf.ethz.ch/omutlu/pub/dram-latency-puf_hpca18.pdf - The original RowHammer study using SoftMC: https://people.inf.ethz.ch/omutlu/pub/dram-row-hammer_isca14.pdf - PiDRAM: A Holistic End-to-end FPGA-based Framework for Processing-in-DRAM: https://arxiv.org/abs/2111.00082 - PiDRAM Source Code: https://github.com/CMU-SAFARI/PiDRAM - DRAM Bender: An Extensible and Versatile FPGA-based Infrastructure to Easily Test State-of-the-art DRAM Chips: https://arxiv.org/pdf/2211.05838.pdf - DRAM Bender Source Code: https://github.com/CMU-SAFARI/DRAM-Bender | ||||||||||||||||||||||||||||||||||||||||||||||||||
Prerequisites / Notice | Prerequisites of the course: - Digital Circuits AND Computer Engineering - Familiarity with FPGA programming - Interest in low-level system exploration and memory - Interest in discovering why things do or do not work and solving problems | ||||||||||||||||||||||||||||||||||||||||||||||||||
Competencies![]() |
| ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-36L | P&S: Genome Sequencing on Mobile Devices ![]() The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | W | 3 credits | 3P | C. Firtina | ||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | Genome analysis is the foundation of many scientific and medical discoveries, and serves as a key enabler of personalized medicine. This analysis is currently limited by the inability of existing technologies to read an organism’s complete genome. Instead, a dedicated machine (called sequencer) extracts a large number of shorter random fragments of an organism’s DNA sequence, known as reads. Small, handheld sequencers such as ONT MinION and Flongle make it possible to sequence bacterial and viral genomes in the field, thus facilitating disease outbreak analyses such as COVID-19, Ebola, and Zika. However, large, capable computers are still needed to perform genome assembly, which tries to reassemble read fragments back into an entire genome sequence. This limits the benefits of mobile sequencing and may pose problems in rapid diagnosis of infectious diseases, tracking outbreaks, and near-patient testing. The problem is exacerbated in developing countries and during crises where access to the internet network, cloud services, or data centers is even more limited. In this course, we will cover the basics of genome analysis to understand the speed-accuracy tradeoff in using computationally-lightweight heuristics versus accurate computationally-expensive algorithms. Such heuristic algorithms typically operate on a smaller dataset that can fit in the memory of today’s mobile device. Students will experimentally evaluate different heuristic algorithms and observe their effect on the end results. This evaluation will give the students the chance to carry out a hands-on project to implement one or more of these heuristic algorithms in their smartphones and help the society by enabling on-site analysis of genomic data. The course is conducted in English. Course website: https://safari.ethz.ch/projects_and_seminars/doku.php?id=genome_seq_mobile | ||||||||||||||||||||||||||||||||||||||||||||||||||
Lecture notes | See: https://safari.ethz.ch/projects_and_seminars/doku.php?id=genome_seq_mobile | ||||||||||||||||||||||||||||||||||||||||||||||||||
Literature | Learning Materials =============== 1. A survey on accelerating genome analysis: https://arxiv.org/pdf/2008.00961 2. A detailed survey on the state-of-the-art algorithms for sequencing data: https://arxiv.org/pdf/2003.00110 3. An example of how to accelerate genomic sequence matching by two orders of magnitude with the help of FPGAs or GPUs: https://arxiv.org/abs/1910.09020 4. An example of how to accelerate read mapping step by an order of magnitude and without using hardware acceleration: https://arxiv.org/pdf/1912.08735 5. An example of using a different computing paradigm for accelerating read mapping step and improving its energy consumption: https://arxiv.org/pdf/1708.04329 6. Two examples on using software/hardware co-design to accelerate genomic sequence matching by two orders of magnitude: https://arxiv.org/abs/1604.01789 https://arxiv.org/abs/1809.07858 7. An example of a purely software method for fast genome sequence analysis: http://www.biomedcentral.com/content/pdf/1471-2164-14-S1-S13.pdf 8. From Molecules to Genomic Variations: Accelerating Genome Analysis via Intelligent Algorithms and Architectures: https://arxiv.org/abs/2205.07957 9. Accelerating Genome Analysis, Invited Talk BSC, Onur Mutlu: https://www.youtube.com/watch?v=tVpg0XqU_c4 | ||||||||||||||||||||||||||||||||||||||||||||||||||
Prerequisites / Notice | Prerequisites of the course: - No prior knowledge in bioinformatics or genome analysis is required. - A good knowledge in C programming language and programming is required. - Interest in making things efficient and solving problems | ||||||||||||||||||||||||||||||||||||||||||||||||||
Competencies![]() |
| ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-37L | P&S: Data-Centric Architectures: Fundamentally Improving Performance and Energy ![]() Does not take place this semester. The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | W | 3 credits | 3P | |||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | Data movement between the memory units and the compute units of current computing systems is a major performance and energy bottleneck. From large-scale servers to mobile devices, data movement costs dominate computation costs in terms of both performance and energy consumption. For example, data movement between the main memory and the processing cores accounts for 62% of the total system energy in consumer applications. As a result, the data movement bottleneck is a huge burden that greatly limits the energy efficiency and performance of modern computing systems. This phenomenon is an undesired effect of the dichotomy between memory and the processor, which leads to the data movement bottleneck. Many modern and important workloads such as machine learning, computational biology, graph processing, databases, video analytics, and real-time data analytics suffer greatly from the data movement bottleneck. These workloads are exemplified by irregular memory accesses, relatively low data reuse, low cache line utilization, low arithmetic intensity (i.e., ratio of operations per accessed byte), and large datasets that greatly exceed the main memory size. The computation in these workloads cannot usually compensate for the data movement costs. In order to alleviate this data movement bottleneck, we need a paradigm shift from the traditional processor-centric design, where all computation takes place in the compute units, to a more data-centric design where processing elements are placed closer to or inside where the data resides. This paradigm of computing is known as Processing-in-Memory (PIM). This is your perfect P&S if you want to become familiar with the main PIM technologies, which represent "the next big thing" in Computer Architecture. You will work hands-on with the first real-world PIM architecture, will explore different PIM architecture designs for important workloads, and will develop tools to enable research of future PIM systems. Projects in this course span software and hardware as well as the software/hardware interface. You can potentially work on developing and optimizing new workloads for the first real-world PIM hardware or explore new PIM designs in simulators, or do something else that can forward our understanding of the PIM paradigm. Prerequisites of the course: - Digital Circuits AND Computer Engineering (or equivalent courses) - Familiarity with C/C++ programming. - 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 The course is conducted in English. The course has two main parts: 1. Weekly lectures on processing-in-memory. 2. Hands-on project: Each student develops his/her own project. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Lecture notes | See: https://safari.ethz.ch/projects_and_seminars/ | ||||||||||||||||||||||||||||||||||||||||||||||||||
Literature | Learning materials ============ Summary papers about recent research in PIM. - Link - Link - Link An analysis of a real-world processing in memory architecture. Link Repository: https://github.com/CMU-SAFARI/prim-benchmarks PIM Simulators. Ramulator-PIM: A version of Ramulator simulator for PIM. https://github.com/CMU-SAFARI/ramulator-pim DAMOV simulator. https://github.com/CMU-SAFARI/DAMOV UPMEM SDK documentation: The first real-world PIM architecture. https://sdk.upmem.com/2023.1.0/ An example recent study of 3D-stacked PIM for consumer workloads. Link An example recent study of lightweight PIM functionality on 3D-stacked memory: Link An example recent study of a PIM accelerator for graph processing. Link An example recent study of a Processing-using-Memory system. https://people.inf.ethz.ch/omutlu/pub/ambit-bulk-bitwise-dram_micro17.pdf https://people.inf.ethz.ch/omutlu/pub/SIMDRAM_asplos21.pdf | ||||||||||||||||||||||||||||||||||||||||||||||||||
Prerequisites / Notice | Prerequisites of the course: - Digital Circuits AND Computer Engineering (or equivalent courses). - Familiarity with C/C++ programming. - 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 | ||||||||||||||||||||||||||||||||||||||||||||||||||
Competencies![]() |
| ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-38L | P&S: Controlling Biological Neuronal Networks Using Machine Learning ![]() Does not take place this semester. Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | W | 4 credits | 5P | J. Vörös | ||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | The way memory and learning is achieved in the brain is an unsolved problem. Due to its relative simplicity, in-vitro neuroscience can help us discover the fundamentals of information processing in the brain. For this we can simulate a small number of biological neurons on top of an array of microelectrodes. Such an approach allows us to simulate the electrical activity of the neurons when they get stimulated. Following this approach, we can investigate biological neural networks, that have about 5-50 neurons and a controlled network architecture. Still, their behavior remains highly unpredictable. Therefore, it is not yet clear how such networks need to be stimulated electrically in order to control their behavior. However, we can use machine learning to find a mapping between a stimulus and a desired response. More specifically, we can use reinforcement learning, since finding the right stimulation pattern is an instance of the so called multi-armed bandit problem. This P&S consists of two parts. In the first part we will introduce you to the way neurons can be simulated. You will learn how neurons work and how they communicate. The second part will be about machine learning. We will discuss the basics of both artificial neural networks (ANN) and reinforcement learning. As homework exercises you will implement a reward function for a provided reinforcement learner, which will control your biological networks. In addition you will implement an ANN, that replaces unsatisfactorily performing stimulation patterns with new patterns, that this network evaluates to perform better. If the current situation will allow, the developed ANNs will be tested on real neurons in our laboratory. This P&S will be given in English. In total, the P&S takes 8 afternoons and about 50 hours of homework (ANN implementation). | ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-39L | P&S: Python for Science & Machine Learning ![]() Does not take place this semester. Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | W | 3 credits | 3P | |||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | This beginner course to programming with Python - with a focus on applications in science and technology - is an ideal starting point for later courses. We will start with an introduction to the dev environment and tools for effective development to get you started. Then we will learn the basics of Python with exercises, and discover popular modules for data processing and visualisation that will be useful for your later studies and career. We conclude with an introduction to popular machine learning techniques and some time for you to implement your own small free-style projects. By the end of the semester, you will - be familiar with your PC’s command-line interface and know how to use available dev environments effectively. - have learned the basics of Python and be able to write basic programs that do what you want (most of the time) with the help of modules. - be able to process, visualize and analyze numerical data, e.g. lab measurements, images, etc. - have first experience with machine learning techniques - maintain your first git repository and know how to collaborate with others on coding projects. Language: English / German (if necessary) | ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-44L | P&S: Understanding and Designing Modern SSDs (Solid-State Drives) ![]() Does not take place this semester. Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | W | 3 credits | 3P | |||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | NAND flash memory is the de facto standard in architecting a storage device in modern computing systems. As modern computing systems process a large amount of data at an unprecedented scale, a storage device needs to meet high requirements on storage capacity and I/O performance. A NAND flash-based SSD can provide an order(s) of magnitude higher I/O performance compared to traditional hard-disk drives (HDDs), with a much lower cost-per-bit value over any other SSDs based on emerging non-volatile memory (NVM) technologies. NAND flash memory has several unique characteristics, such as the erase-before write property (i.e., a flash cell needs to be first erased before programming it), limited lifetime (i.e., a cell can reliably store data for a certain number of program/erase cycles), and large operation units (e.g., a NAND flash chip reads/writes data in a page (e.g., 16 KiB) granularity). To achieve high performance and large capacity of the storage system while hiding the unique characteristics of NAND flash memory, it is critical to design efficient SSD firmware, commonly called Flash-Translation Layer (FTL). An FTL is responsible for many critical management tasks, such as address translation, garbage collection, wear-leveling, and I/O scheduling, that significantly affect the performance, reliability, and lifetime of the SSD. In this P&S, we will cover how a modern NAND flash-based SSD is organized and operates, from the basics of underlying NAND flash devices and various SSD-management tasks at the FTL-level. You will build a practical SSD simulator by refactoring MQSim, a state-of-the-art simulator for high-end SSDs, to support advanced features of modern NAND flash chips and essential SSD-management tasks. This will allow you to have the chance to obtain a comprehensive background of modern storage systems and research experience on system optimization with rigorous evaluation. Prerequisites of the course: • No prior knowledge in NAND flash-based storage systems is required. • Digital Circuits AND Computer Engineering (or equivalent courses) • Good knowledge in C/C++ programming language is required. • Interest in system optimizations The course is conducted in English. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Lecture notes | See: https://safari.ethz.ch/projects_and_seminars/ | ||||||||||||||||||||||||||||||||||||||||||||||||||
Literature | Learning Materials ============ Inside NAND Flash Memories: https://search.library.ethz.ch/permalink/f/823s1o/ELENDING603606 Inside Solid State Drives (SSDs): https://search.library.ethz.ch/permalink/f/823s1o/ELENDING1030264 MQSim, an open-source multi-queue SSD simulator Source code: https://github.com/CMU-SAFARI/MQSim Paper: https://people.inf.ethz.ch/omutlu/pub/MQSim-SSD-simulation-framework_fast18.pdf An example of how to improve SSD performance by optimizing the I/O scheduling policy of the FTL: Link Examples of how to improve SSD reliability by exploiting physical characteristics of modern NAND flash memory: Link Link https://arxiv.org/pdf/1706.08642.pdf Examples of how to improve the security and privacy of stored data in SSDs: Link Link | ||||||||||||||||||||||||||||||||||||||||||||||||||
Prerequisites / Notice | Prerequisites of the course: - No prior knowledge of NAND flash-based storage systems is required. - Digital Circuits AND Computer Engineering (or equivalent courses). - Good knowledge of C/C++ programming language is required. - Interest in system optimizations | ||||||||||||||||||||||||||||||||||||||||||||||||||
Competencies![]() |
| ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-45L | P&S: Robotic Maze Solving with a TI-RSLK Robot (RMaze) ![]() Does not take place this semester. Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | W | 3 credits | 3P | |||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | Microcontroller programming (C) – Peripherals Interfacing using a MSP433 MCU – Control of a Robot in a maze The course will focus on teaching how to build and program a Texas Instrument robotic system learning kit (TI-RSLK). It is a robot kit, which includes a 2 wheeled robot, a line sensor to determine lines on the floor as well as sensors to recognize walls. The robot is driven by a MSP432 state of the art ARM Cortex M4 processor. This course will give the students the opportunity to learn how to program the microcontroller of this robot to navigate in a small maze. For this, the students will learn how to control the motors and, consequently the movement of the robot with the peripherals of the microcontroller. Next to the movement, also the control and readout of the attached sensors will be part of the P&S course. Once the students are able to read sensor values and control the motors of the robot, this course will conclude with a 4-week project. Within this project the students will design their own algorithm, such that the robot can navigate autonomously within a maze. A small competition at the end of the P&S will find the fastest robot of the group. The course will be taught in English by the new D-ITET center for Project-based learning, the programming toolchain will be installed on the student’s own laptop. Experience with microcontroller programming (C) is an advantage, however not required. A short introduction will be given during the course. This course will be taught in English or in German if necessary. | ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-46L | P&S: Embedded Systems With Drones ![]() Does not take place this semester. Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | W | 4 credits | 4P | |||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | Microcontrollers - Programming in C – Drones – Autonomous Drones – Embedded System – Sensors. Drones can be fun to use but understanding the hardware and software and building and programming them to be intelligent and autonomous is even better. This course gives the basis of the embedded systems having the drones as the primary target. The course will introduce embedded systems and, in particular, the microcontroller ARM Cortex-M, focusing on all the crucial blocks such as Interrupts, GPIO, ADC's, Timers, and Serial communication protocols. Apart from the core topics, real-time and power-efficient algorithms for attitude and motor control are also discussed, making the drone efficient. Finally, exciting drone exercises are supported in the course to experiment with the development kit. The course will end with a 4-5 weeks project where the students will make the drone fly with some specific goal. It is not required any previous knowledge except C language. The course will be taught in English and organized by the new Project-Based Learning center. | ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-47L | P&S: Machine Learning on Smart Phone ![]() Does not take place this semester. Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | W | 3 credits | 3P | |||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | Machine Learning with Smart Phone Sensors –Programming Android Phones – Neural Networks – Keras/Tensor Flow- Projects and App on smartphones Smartphones have several sensors that can acquire much useful information, for instance where we are, what we are doing, with whom we are together, what is our constitution, what are our needs. Based on this information our 'smartphone' offers us the appropriate computational power to process them in loco without sending the sensor data to the cloud. This course focus on giving the bases of machine learning and embedded systems. The student will learn the tools to implement a machine learning algorithm, such as Tensor Flow and others in their android phones to have an advanced smartphone. The course will end with 4 weeks project where the students can target a specific application scenario. It is not required any previous experience In machine learning. Phyton is a plus but the basis of phyton will be given in the course to be able to complete the project. The course will be taught in English and organized by the new Project-based Learning center. | ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-48L | P&S: Introduction to Program Nao Robots for Robocup Competition ![]() Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | W | 3 credits | 3P | M. Magno, L. Pascarella | ||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | Programming Robots – Sensors- Humanoid Robot. NAO robots from Softbank are the leading humanoid robot being used in research and education worldwide. Robotics is the fastest growing and most advanced technology used in education and research. The main goal of this course is to introduce and allowing the students to learn how to program an NAO humanoid robot to make him walk, talking, watching objects understanding the human, and reacting to external input. The Nao Robots used in this course are equipped with many sensors: Tactile Sensors, Ultrasonic sensors, A Gyro, An Accelerometer, Force Sensors, Infrared sensors, 2 HD Cameras, 4 Microphones, and high accuracy digital encoders on each joint. It has two processors on board: an Intel Atom 1.6Ghz (The main computer includes SSD drive, WiFi, Bluetooth, and wired network) and an additional ARM-9 processor in its chest. The course will introduce the software package and the full SDK and API. The students will learn how to program ( mainly in C and Phyton) the robot to access the full functionality. To improve the hands-on skills of students the course will end with a 5 weeks project where the students in the group will compete in a small soccer game where the robots will play the game following and kicking a red ball. It is not requested any previous knowledge but programming skills are a plus. The course will be taught in English and organized by the new Project-based Learning center. | ||||||||||||||||||||||||||||||||||||||||||||||||||
227-0085-49L | P&S: Smart Patch Projects ![]() Does not take place this semester. Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | W | 4 credits | 4P | |||||||||||||||||||||||||||||||||||||||||||||||
Abstract | The 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 objective | Wearable devices, PCB Design, Firmware developing, multi-sensors, Communication. The Smart Patch project will design autonomous, low power and mesh enabled multi-sensor wearable smart patches. They will be based on the always-on smart sensing paradigm to continuously acquire process and stream physiological data in real-time. They can be trained to autonomously detect illness symptoms or other physical conditions, such as stress. The students will work in a team to design a sub-block of the smart patch. According to the students' background, they will be associated swith designing the hardware or the firmware. Together in a team, they will learn how to structure problems and identify solutions, system analysis, and simulation, as well as presentation and documentation techniques. They will get access to D-ITET labs and state-of-the-art engineering tools (Matlab, Simulink, Firmware development IDE, PCB Design, etc.) The projects will be done under the Smart Patches: a flagship project for D-ITET students. (pbl.ee.ethz.ch) |
Page 2 of 3
All