Print Settings
 

CS 80E: Dissecting The Modern Computer

In this course, students will be given a high-level, accessible introduction to computer architecture through the use of the RISC-V ISA. Through a series of interactive units, students will learn about the inner-workings of computers, from the execution of our programs all the way down to the hardware that runs them. Topics include simple digital circuits, assembly, simple processors, memory systems (Cache, DRAM, Disk), and bonus topics like GPU's. After completing this class, students should have a newfound appreciation for how incredible computational technology is, as well as direction to fantastic classes that delve into some of these topics in more detail, like CS149, EE108, and EE180. Prerequisite: CS106B.
Terms: Aut | Units: 2
Instructors: ; Master, T. (PI)

CS 149: Parallel Computing

This course is an introduction to parallelism and parallel programming. Most new computer architectures are parallel; programming these machines requires knowledge of the basic issues of and techniques for writing parallel software. Topics: varieties of parallelism in current hardware (e.g., fast networks, multicore, accelerators such as GPUs, vector instruction sets), importance of locality, implicit vs. explicit parallelism, shared vs. non-shared memory, synchronization mechanisms (locking, atomicity, transactions, barriers), and parallel programming models (threads, data parallel/streaming, MapReduce, Apache Spark, SPMD, message passing, SIMT, transactions, and nested parallelism). Significant parallel programming assignments will be given as homework. The course is open to students who have completed the introductory CS course sequence through 111.
Terms: Aut | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci

CS 348K: Visual Computing Systems

Visual computing tasks such as computational photography, image/video understanding, and real-time 3D graphics are key responsibilities of modern computer systems ranging from sensor-rich smart phones, autonomous robots, and large data centers. These workloads demand exceptional system efficiency and this course examines the key ideas, techniques, and challenges associated with the design of parallel, heterogeneous systems that execute and accelerate visual computing applications. This course is intended for graduate and advanced undergraduate-level students interested in architecting efficient graphics, image processing, and computer vision systems (both new hardware architectures and domain-optimized programming frameworks) and for students in graphics, vision, and ML that seek to understand throughput computing concepts so they can develop scalable algorithms for these platforms. Students will perform daily research paper readings, complete simple programming assignments, and compete a self-selected term project. Prerequisites: CS 107 or equivalent. Highly recommended: Parallel Computing (CS149) or Computer Architecture (EE 282). Students will benefit from some background in deep learning (CS 230, CS 231N), computer vision (CS 231A), digital image processing (CS 232) or computer graphics (CS248).
Terms: Spr | Units: 3-4
Instructors: ; Fatahalian, K. (PI)
© Stanford University | Terms of Use | Copyright Complaints