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.