Mosaic: A GPU Memory Manager

Slides:



Advertisements
Similar presentations
Gennady Pekhimenko Advisers: Todd C. Mowry & Onur Mutlu
Advertisements

9.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory OSC: Chapter 9. Demand Paging Copy-on-Write Page Replacement.
CS 333 Introduction to Operating Systems Class 12 - Virtual Memory (2) Jonathan Walpole Computer Science Portland State University.
Memory Management Chapter 7. Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated efficiently to pack as.
1 Lecture 15: Virtual Memory and Large Caches Today: TLB design and large cache design basics (Sections )
Memory Management 2010.
Chapter 11 – Virtual Memory Management Outline 11.1 Introduction 11.2Locality 11.3Demand Paging 11.4Anticipatory Paging 11.5Page Replacement 11.6Page Replacement.
Chapter 9 Virtual Memory Produced by Lemlem Kebede Monday, July 16, 2001.
Lecture 17: Virtual Memory, Large Caches
Computer Organization and Architecture
1 Lecture 14: Virtual Memory Today: DRAM and Virtual memory basics (Sections )
Virtual Memory BY JEMINI ISLAM. What is Virtual Memory Virtual memory is a memory management system that gives a computer the appearance of having more.
Chapter 91 Translation Lookaside Buffer (described later with virtual memory) Frame.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts, Amherst Operating Systems CMPSCI 377 Lecture.
Basics of Operating Systems March 4, 2001 Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard.
Memory Management in Windows and Linux &. Windows Memory Management Virtual memory manager (VMM) –Executive component responsible for managing memory.
Paging. Memory Partitioning Troubles Fragmentation Need for compaction/swapping A process size is limited by the available physical memory Dynamic growth.
Lecture 21 Last lecture Today’s lecture Cache Memory Virtual memory
Example of a Resource Allocation Graph CS1252-OPERATING SYSTEM UNIT III1.
Review of Memory Management, Virtual Memory CS448.
CS 153 Design of Operating Systems Spring 2015 Final Review.
CS 153 Design of Operating Systems Spring 2015 Lecture 17: Paging.
Cosc 2150: Computer Organization Chapter 6, Part 2 Virtual Memory.
Memory Management Chapter 7.
Chapter 8 – Main Memory (Pgs ). Overview  Everything to do with memory is complicated by the fact that more than 1 program can be in memory.
SOCSAMS e-learning Dept. of Computer Applications, MES College Marampally VIRTUALMEMORY.
CS 149: Operating Systems March 3 Class Meeting Department of Computer Science San Jose State University Spring 2015 Instructor: Ron Mak
Memory Management COSC 513 Presentation Jun Tian 08/17/2000.
1 Lecture 13: Cache, TLB, VM Today: large caches, virtual memory, TLB (Sections 2.4, B.4, B.5)
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 9: Virtual Memory.
4.3 Virtual Memory. Virtual memory  Want to run programs (code+stack+data) larger than available memory.  Overlays programmer divides program into pieces.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Demand Paging.
Memory Management CS Spring Overview Partitioning, Segmentation, and Paging External versus Internal Fragmentation Logical to Physical Address.
Redundant Memory Mappings for Fast Access to Large Memories
3.1 Advanced Operating Systems Superpages TLB coverage is the amount of memory mapped by TLB. I.e. the amount of memory that can be accessed without TLB.
Memory Management Chapter 5 Advanced Operating System.
Agile Paging: Exceeding the Best of Nested and Shadow Paging
Virtual Memory.
Computer Architecture Lecture 12: Virtual Memory I
Memory Management Chapter 7.
Basic Paging (1) logical address space of a process can be made noncontiguous; process is allocated physical memory whenever the latter is available. Divide.
Gwangsun Kim, Jiyun Jeong, John Kim
Paging.
Non Contiguous Memory Allocation
Virtual Memory CSSE 332 Operating Systems
Chang Hyun Park, Taekyung Heo, and Jaehyuk Huh
Chapter 2 Memory and process management
Exploiting Inter-Warp Heterogeneity to Improve GPGPU Performance
From Address Translation to Demand Paging
Lecture: Large Caches, Virtual Memory
CS703 - Advanced Operating Systems
Chapter 9: Virtual Memory
From Address Translation to Demand Paging
Rachata Ausavarungnirun GPU 2 (Virginia EF) Tuesday 2PM-3PM
Rachata Ausavarungnirun
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy 11/12/2018.
CSCI206 - Computer Organization & Programming
Rachata Ausavarungnirun, Joshua Landgraf, Vance Miller
MASK: Redesigning the GPU Memory Hierarchy
Chapter 9: Virtual-Memory Management
Segmentation Lecture November 2018.
Exploiting Inter-Warp Heterogeneity to Improve GPGPU Performance
So far in memory management…
CSE451 Virtual Memory Paging Autumn 2002
Lecture 35 Syed Mansoor Sarwar
Paging and Segmentation
` A Framework for Memory Oversubscription Management in Graphics Processing Units Chen Li, Rachata Ausavarungnirun, Christopher J. Rossbach, Youtao.
Operating Systems: Internals and Design Principles, 6/E
4.3 Virtual Memory.
Virtual Memory 1 1.
Presentation transcript:

Mosaic: A GPU Memory Manager with Application-Transparent Support for Multiple Page Sizes Rachata Ausavarungnirun, Joshua Landgraf, Vance Miller , Saugata Ghose, Jayneel Gandhi, Christopher J. Rossbach, Onur Mutlu GPU Support for Virtual Memory Improves programmability with a unified address space Enables large data sets to be processed in the GPU Allows multiple applications to run on a GPU Page Size Trade-Off Overhead of Address Translation Without Demand Paging GPU Core Private TLB Shared TLB Page Table Walkers Page Table Limited TLB reach High latency page walks Data CPU Memory High latency I/O Private Shared CPU-side GPU-side Large Pages: Better TLB reach High demand paging overhead Overhead of Both Address Translation and Demand Paging Small Pages: Low demand paging overhead Limited TLB reach How to achieve the best of both page sizes? Large Page Frame Coalesced Large Page Frame State-of-the-Art Memory Allocation Cannot coalesce (without moving multiple 4K pages) Unallocated App 1 App 2 In-Place Coalescing Mosaic Need to search which pages to coalesce Challenges with Multiple Page Sizes High overhead Design Goals Exploit benefits of both small and large pages High TLB Reach Low demand paging overhead No data movement Application transparency Programmers do not need to modify GPGPU applications Mosaic Soft Guarantee A large page frame contains pages from only a single address space Methodology GPGPU-Sim (MAFIA) configured to a GTX 750 Ti Multiple GPGPU applications can execute concurrently Model page walks and page tables Model virtual-to-physical address mapping Available at: https://github.com/CMU-SAFARI/Mosaic High-Level Overview of Mosaic Data Allocation Coalescing Hardware Contiguity-Conserving Allocation In-Place Coalescer Contiguity-Aware Compaction Application Demands Data GPU Runtime Allocate Memory Page Table Data Transfer Done List of Large Pages Coalesce Pages System I/O Bus Transfer Data Fully-allocated large page frames  Coalesceable 1 2 Results Coalesced Bit 1 Large Page Table Small Page Table Application transparency Data can be accessed using either page size No TLB flush 4 5 Homogeneous Heterogeneous 6 39.0% 33.8% 23.7% 43.1% Apply soft guarantee 55.4% 31.5% 61.5% 21.4% 95.0% Compaction CPU Memory Only triggered when memory is heavily fragmented Goals Reduce memory fragmentation Free up large page frames 3 Contiguity-Conserving Allocation 3 List of free pages Heavily-fragmented GPU memory Large Page Frames Large Page Frames Compaction In-Place Coalescer Page Table Free large page Free large page Splinter Pages Data 2 Compacted pages has no virtual contiguity No longer coalesceable Contiguity-Aware Compaction 1 Application Deallocates Data Data Deallocation