Distributed Texture Memory in a Multi-GPU Environment
In this work, we demonstrate a system that allows texture memory on multiple GPUs to be virtualized in a manner that is both scalable and transparent to the programmer. Our system is built using a directory-based shared memory abstraction to allow texture memory to be distributed while staying consistent. We use texture pages as our basic memory block and discuss the data structures, threading model, and consistency mechanisms necessary to implement a paging system in a multi-GPU environment. The system is demand-driven, and pages will only be loaded into the texture memory of a GPU that makes a request. The main contribution of this work is the identification of the mechanisms required to implement our abstraction, as well as the discussion of its limitations in order to make it more efficient.