Patent ID: 8395631

Claim:
A computer-implemented method for allocating a memory buffer within a system memory of a computer system that is configured to be shared among a plurality of graphics processing units (GPUs) included in the computer system, the method comprising: maintaining a list of processes executing on the plurality of GPUs, wherein each process in the list of processes has access to all shared memory buffers in the system memory; maintaining a list of address range entries, wherein each address range entry in the list of address range entries comprises an address range for a different shared memory buffer in the system memory; allocating a page-locked memory buffer in the system memory; for each GPU executing one or more processes in the list of processes, for each of the one or more processes executing on the GPU, requesting that the GPU map the page-locked memory buffer into a virtual address space associated with the process; and adding an address range entry to the list of address range entries that comprises the address range of the page-locked memory buffer, wherein each process having the page-locked memory buffer mapped into an associated virtual address space has access to the page-locked memory buffer.