Per-process GPU virtual address spaces

Per-process GPU virtual address spaces.

This documentation is archived and is not being maintained.

Each process is associated with two graphics processing unit (GPU) virtual address spaces, an application GPU virtual address space and a privileged virtual address space.

Application GPU virtual address space

The application GPU virtual address space is the address space that command buffers, generated by the user mode driver, execute within. This address space is managed by the user mode driver using services provided by the video memory manager. Before an allocation can be accessed by a GPU engine operating in the virtual mode, the user mode driver must assign a GPU virtual address range to the allocation. For regular allocations, this is done using the new MapGpuVirtualAddress service, exposed by the video memory manager. MapGpuVirtualAddress allows the user mode driver to either pick a specific address where it wants the allocation to be mapped or it can let the video memory manager pick an available GPU virtual address automatically. Drivers should generally let the video memory manager pick an address automatically but in some circumstances the driver may need more control. In linked display adapter configurations, MapGpuVirtualAddress can also be used to specify whether a mapping is to the instance of the allocation on the current GPU or on a peer GPU. MapGpuVirtualAddress queues a request to the video memory manager and returns to the user mode driver immediately while the request is processed. The request is queued on the device paging queue and the user mode driver must ensure it synchronizes against the returned device paging fence value. FreeGpuVirtualAddress can be used to unmap an allocation and reclaim its GPU virtual address. All virtual addresses associated with an allocatio n are automatically freed when the allocation is destroyed so the user mode driver doesn’t need to explicitly unmap it. The video memory manager provides two tile resources-specific services to the user mode driver. ReserveGpuVirtualAddress allows the user mode driver to reserve address space for a tile resource and UpdateGpuVirtualAddress allows the user mode driver to map and unmap regions of the tile resources to specific tile pool pages. ReserveGpuVirtualAddress executes against the device paging queue, while UpdateGpuVirtualAddress executes in a special companion context running within the process' privileged address space.

Process privileged virtual address space

Processes using tile resources get a second virtual address space associated with them on the first call to ReserveGpuVirtualAddress. This add ress space is used to update the page table of the process synchronously with rendering. We cover this address space in the Tile resources topic.

Virtual address space on linked display adapters

When physical graphics adapters are linked to a linked display adapter chain, there is still a single GPU virtual address space per process (except the paging process). But the virtual address space on each physical adapter is mapped by its own set of page tables.

Send comments about this topic to Microsoft

Show:

Video Per-process GPU virtual address spaces

Per-process GPU virtual address spaces


Source: www.bing.com
Images credited to www.bing.com and


Related Posts To Per-process GPU virtual address spaces


Per-process GPU virtual address spaces Rating: 4.5 Posted by: Brot Trune

Search Here

Popular Posts

Total Pageviews

Recent Posts