Visual computing tasks such as 2D/3D graphics, image processing, and image understanding are important responsibilities of modern computer systems ranging from sensor-rich smart phones to large datacenters. These workloads demand exceptional system efficiency and this course examines the key ideas, techniques, and challenges associated with the design of parallel (and heterogeneous) systems that serve to accelerate visual computing applications. This course is intended for graduate and advanced undergraduate-level students interested in architecting efficient future graphics and image processing platforms and for students seeking to develop scalable algorithms for these platforms.
Sep 8 |
Real-time rendering from a systems perspective
|
Sep 10 |
Characteristics of the pipeline workload, Molnar's scheduling taxonomy, trade-offs between parallelism, communication, and locality
|
Sep 15 |
Clipping, tessellation, challenges of parallel scheduling
|
Sep 17 |
Visibility algorithms and their fixed-function implementation, occlusion culling, anti-aliasing, frame-buffer compression
|
Sep 22, 24 |
Anti-aliasing using the mip-map, locality-friendly texture data layouts
|
Sep 24, 29 |
Hardware-accelerated texture decompression techniques, prefetching, and multi-threading
|
Oct 1 |
Level of abstraction decisions, mapping shader logic to GPU processing cores
|
Oct 6 |
Motivation for alternative abstractions, interoperability issues with graphics pipeline, AMD's Mantle, Apple's Metal
|
Oct 8 |
Motivation for use, impact on global renderer scheduling decisions
|
Oct 13 |
Workload characteristics, coherence optimizations, potential for hardware acceleration
|
Oct 15 |
Light field theory, how image-based rendering has found its legs in a world with ubiquitous cameras
|
Oct 20 |
Sensor basics, noise sources, early stages of the image pipeline
|
Oct 22 |
Gamma, JPG compression, auto-focus, auto-exposure
|
Oct 27/29 |
Work efficiency, parallelism, and locality trade-offs using Halide
|
Nov 3 |
Case studies of workload characteristics and scheduling possibilities
|
Nov 5 |
Design characteristics, requirements, and capabilities of emerging systems
|
Nov 10 | |
Nov 12 |
Unique challenges of light-field photography
|
Nov 17 |
How the Microsoft Kinect system works, algorithms for computing depth and pose
|
Nov 19 | |
Nov 24 |
Modern work on 3D reconstruction from large image collections
|
Nov 26 |
No Class - Thanksgiving Holiday
|
Dec 1 | |
Dec 3 |
All students will be expected to perform daily paper readings, complete two simple programming exercises, and complete a seven-week self-selected final project.
due Oct 1 | Assignment 1: Implementing a Parallel Sort-Middle Tiled Renderer |
optional | Mapping SPMD Code to a SIMD Machine (optional practice assignment) |
due Nov 7 | Assignment 2: Image Processing on the kPhone 869s |
due Dec 12 | Final Project Instructions (proposal due Oct 30) |