ECE8001 - Advanced Computer Architecture (Spring 2011)

From Networking and Parallel Systems Lab - by Michela Becchi
Jump to: navigation, search
NV CUDA Teaching Center 3D thumb.jpg

Course description: The course covers advance topics in computer architecture (pipelining, in-order vs. out of order executions, cache and memory hierarchies, Flynn’s taxonomy), and focuses on parallel computer architecture (general purpose multi-cores and graphical processing units). In particular, emphasis will be given to both architectural and programmability aspects.


Contents

Syllabus

References

Books

Basic computer architecture references:

Parallel computer architecture references:

CUDA and parallel computing references:

Online material

Linux/Make tutorials for beginners

Tools

Presentations

Papers

Chip Multiprocessors

Transactional Memory

Manycore systems and Graphics Processing Units

Programming models

Conferences

Lecture Notes

Homework

Projects

Calendar

Week Tuesday Thursday Note
1 Jan 18 - Introduction
Jan 20 - Background (1)
Read Thousand core chips: a technology perspective, S. Borkar, DAC 2007.
Submit the Background Form
2 Jan 25 - Background (2)
Jan 27 - Background (3)
Read The Superblock: An Effective Technique for VLIW and Superscalar Compilation, W.W.Hwu et al. - EMAIL SUMMARY
3 Feb 1 - CLASS CANCELED Feb 3 - CLASS CANCELED
4 Feb 8 - Background (4) Feb 10 - Multithreading and OpenMP (1)
5
Feb 15 - Pthreads
Read PThread Tutorial and OpenMP Tutorial
Feb 17 - OpenMP (2)
Paper presentation: CMP
Dheeraj - The case for a single-chip multiprocessor - slides
6 Feb 22 - OpenMP (3) & Introduction to GPUs Feb 24 - GPU Programming (1)
7
Mar 1 - GPU Programming (2) & GPU Memories (1)
Homework #1 due
Mar 3 - Paper presentations: CMP (Memory & Interconnect)
Stanley - A Bandwidth-aware Memory-subsystem Resource Management using Non-invasive Resource Profilers for Large CMP Systems - slides
Jay - Interconnections in Multi-Core Architectures: Understanding Mechanisms, Overheads and Scaling - slides
Project selection
8
Mar 8 - GPU Memories (2)
Homework #2 due
Mar 10 - Paper presentations: Heterogeneous CMP
Pooparat - Single-ISA Heterogeneous Multi-Core Architectures for Multithreaded Workload Performance
Chinchao - Single-ISA heterogeneous multi-core architectures: the potential for processor power reduction - slides
9 Mar 15 - GPU Memories (3) Mar 17- Project proposal presentations (1)
10
Mar 22 - Project proposal presentations (2)
Read Parallel Reduction in CUDA
CUDA Performance (1)
Mar 24 - CUDA Performance (2)
11
Apr 5 - Paper presentations: Many-core Architectures
Felix - Rigel: An Architecture and Scalable Programming Interface for a 1000-core Accelerator - slides
Yan - An analytical model for a GPU architecture with memory-level and thread-level parallelism awareness - slides
Apr 7 - Paper presentations: Multi-core/Many-core Debate
Xiaodong - Debunking the 100X GPU vs. CPU myth: an evaluation of throughput computing on CPU and GPU - slides
Kittisak - Single-Chip Heterogeneous Computing: Does the Future Include Custom Logic, FPGAs, and GPGPUs? - slides
12 Apr 12 - Homework #3 due
Apr 14 - Paper presentations: Programming Models for Heterogeneous Platforms
Kevin - Programming model for a heterogeneous x86 platform - slides
Christopher - Qilin: exploiting parallelism on heterogeneous multiprocessors with adaptive mapping - slides
13
Apr 19 - Paper presentations: Programming Models for Heterogeneous Platforms
Rafael - EXOCHI: architecture and programming environment for a heterogeneous multi-core multithreaded system - slides
Mahdieh - Merge: a programming model for heterogeneous multi-core systems - slides
Apr 21 - Paper presentations: GPU Efficiency
Ryanne - Improving SIMT Efficiency of Global Rendering Algorithms with Architectural Support for Dynamic Micro-Kernels - slides
Prashant - Dynamic Warp Subdivision for Integrated Branch and Memory Divergence Tolerance - slides
14
Apr 26 - Paper presentations: GPU Efficiency & MapReduce
Shivasankalp - Many-Thread Aware Prefetching Mechanisms for GPGPU Applications - slides
Ian - Tiled-MapReduce: optimizing resource usages of data-parallel applications on multicore with tiling - slides
Apr 28- Paper presentations: Programming Models
Adam - The implementation of the Cilk-5 multithreaded language - slides
Kranthi Kumar - Transactional memory: architectural support for lock-free data structures - slides
15 May 3 - Final project presentations May 5 - Final project presentations

Paper Review Guideline

  1. Briefly summarize the main contributions of the paper
  2. List the paper's strengths
  3. List the paper's weaknesses
  4. Discuss the paper

Examples:


Review schedule: pdf

Paper Presentation Guideline

(25 min + questions, 5-10 min discussion, avg 2 min/slides)

  1. Context & Introduction
  2. Summary of Paper Contributions
  3. Details of Paper Contributions
  4. Results
  5. Summary
  6. Comments and Discussion Topics

Teams

  1. Kittisak Sajjapongse
  2. Adam Procter & Ian Graves - 05/13 @ 1:00 pm
  3. Jay Eggert & Ryanne Thomas - 05/13 @ 9:00 am
  4. Christopher Spain & Kevin Stone - 05/13 @ 11:00 am
  5. Prashant Revankar & Sankalp Shivaprakash & Yan Li - 05/10 @ 3:00 pm
  6. Yifeng (Felix) Zeng & Chinchao Suriyakul & Stanley Ikpe - 05/13 @ 4:00 pm
  7. Xiaodong Xu & Dheeraj Kaveti & Boinpally Kranthi Kumar
  8. Mahdieh Poostchi - 05/13 @ 5:00 pm
  9. Xiangge (Rafael) Li - 05/13 @ 2:00 pm
Personal tools
Namespaces
Variants
Actions
main
courses
NPS only
Toolbox