Expressive Memory: Rethinking the Hardware-Software Contract with Rich Cross-Layer Abstractions

Tuesday October 16, 2018
Location: CIC 4th floor Panther Hollow Conference Room
Time: 4:30PM-5:30PM

Abstract

Recent years have seen the rapid evolution and advancements at all levels of the computing stack, from application to hardware. Key abstractions and interfaces among the levels, however, have largely stayed the same: hardware and software, for instance, still primarily interact with traditional abstractions (e.g., virtual memory, instruction set architecture (ISA)). These interfaces are narrow, as hardware is unaware of key program semantics and programmer intent; and rigid, in terms of the fixed roles played by hardware and software. This fundamentally constrains the performance, programmability, and portability we can attain.

In this talk, I will make a case for rethinking the semantic contract between hardware and software and discuss how designing richer hardware-software abstractions can fundamentally change how we optimize for performance today. I will introduce two of our recent works in ISCA 2018 that explore the design and benefits of such cross-layer abstractions in two different contexts. I will first introduce Expressive Memory (XMem), a new cross-layer interface that communicates higher-level program semantics from the application to the underlying OS and hardware architecture. XMem thus enables the OS/architecture to identify the program’s data structures and be aware of each data structure’s access semantics, data types, etc. We demonstrate that this key, otherwise unavailable, information enables intelligent and much more powerful optimizations in operating systems and hardware architecture that significantly improves overall performance, programmability, and portability.

I will also briefly introduce the Locality Descriptor, a cross-layer abstraction to express and exploit data locality in throughput-oriented architectures, such as modern GPUs. I will discuss how a challenging aspect of programming GPUs can be made much simpler with a rich cross-layer programming abstraction that also significantly enhances performance and portability.

Bio

Nandita Vijaykumar is a Ph.D. candidate at Carnegie Mellon University, advised by Prof. Onur Mutlu and Prof. Phil Gibbons. Her research focuses on the interaction between programming models, system software, and hardware architecture, and explores how richer cross-layer abstractions can enhance performance, programmability, and portability. She is excited about rethinking the roles played by different levels of the stack in the modern era of rapidly evolving, specialized, and data-centric computing landscapes. During her Ph.D., she has been fortunate to intern at Microsoft Research, Nvidia Research, and Intel Labs and spend time as a visiting student at ETH Zurich.