CS 6501: Special Topics in Computer Architecture: CPU/GPU Memory Systems and Near-Data Processing
Spring 2025
Instructor: Kevin Skadron
Class meetings: Tu-Th 2:00-3:15 in Rice 340
Prerequisite: undergraduate computer architecture, covering at least processor pipelines, virtual memory, and caches -- for UVA undergraduate students, this would be CS 3330 or ECE 4435 (old curriculum) or CS 3130 (new curriculum) or equivalent.
Topics
This course will explore:
- The design and optimization of processor memory and storage systems, including DRAM, caches, solid-state storage, etc. for CPUs and GPUs
- Research on optimizing these memory/storage architectures, such as improving cache replacement and prefetching
- Hardware acceleration, such as near-data and in-memory processing (PNM/PIM)
- Emerging technologies, such as 3D stacked DRAM, MRAM, RRAM, etc.
- Driving applications, such as scientific computing and machine learning, that motivate innovations in the above categories
Course Logistics
After some initial lectures presenting background material, the class sessions will move into student-led paper readings and discussion.
Assignments will consist of readings, group presentations of readings for class discussion, participation via comments written before class, scribe duties for the in-class discussion, and a research project. Group projects are encouraged.
The project topic and plan for the project should offer the potential for publication.
Depending on course size, we may also have some small programming projects using these some of these accelerators.
Tentatively, the course grade will be based approximately on:
- Presentation or lecture (at least one per student, perhaps more depending on class enrollment): 15%
- In-class participation: 10%
(note that participation will include short comments about the paper of the
day from each student, to be posted on the class wiki)
- Scribe duties: 10% (summary of discussion, to be posted on class wiki
within 24 hrs)
- Programming assignments: 25% (approx 5 assigmments total)
- Final project: 40% (this in turn will be divided between a proposal,
status report, and final report and presentation)
Honor code terms: All work must correctly attribute sources. All group
work must represent equal effort from all partners--deviations from equal effort
must be documented and should be discussed with me first. Projects must
represent original work.
List of programming assignments:
(please see Canvas for assignment details)
- Intro to roofline modeling
- CACTI cache architecture exploration
- DRAM performance exploration with DRAMsim3
- Intro to GPU programming with matrix multiply
Last updated: 14 Jan. 2024