Abstract:
Techniques for emulating geometry shaders and stream output using compute shaders are provided. In one set of embodiments, a geometry shader/stream output (GS/SO) emulation module can receive a geometry shader defined by an application for execution via a geometry shader stage of a graphics processing unit (GPU) of a computer system, where the geometry shader comprises program code for processing an input primitive. The GS/SO emulation module can further convert the geometry shader into one or more compute shaders, where the one or more compute shaders incorporate the program code of the geometry shader. The GS/SO emulation module can then issue the one or more compute shaders to a graphics driver of the computer system for execution via a compute shader stage of the GPU.
Abstract:
Techniques for emulating geometry shaders and stream output using compute shaders are provided. In one set of embodiments, a geometry shader/stream output (GS/SO) emulation module can receive a geometry shader defined by an application for execution via a geometry shader stage of a graphics processing unit (GPU) of a computer system, where the geometry shader comprises program code for processing an input primitive. The GS/SO emulation module can further convert the geometry shader into one or more compute shaders, where the one or more compute shaders incorporate the program code of the geometry shader. The GS/SO emulation module can then issue the one or more compute shaders to a graphics driver of the computer system for execution via a compute shader stage of the GPU.
Abstract:
Methods, techniques, and systems for dynamically allocating graphics processing units among virtual machines are provided. Example embodiments provide a dynamic GPU allocation system (“DGAS”), which enables the efficient allocation of physical GPU resources to one or more virtual machines. In one embodiment, the DGAS comprises a GPU allocation list for use in allocating the physical GPU resources comprising one or more virtual machine entries each containing a designation of a virtual machine, an indication of a GPU benefit factor associated with the designated virtual machine, and an indication of processing bandwidth requirements associated with the designated virtual machine. The entries are ranked based at least upon the GPU benefit factor associated with each designated virtual machine. Available GPU resources are allocated to some subset of these ranked virtual machines as physical GPU capacity is matched with the requirements of the subset.
Abstract:
Methods, techniques, and systems for dynamically allocating graphics processing units among virtual machines are provided. Example embodiments provide a dynamic GPU allocation system (“DGAS”), which enables the efficient allocation of physical GPU resources to one or more virtual machines. In one embodiment, the DGAS comprises virtualization logic running on a server computing system that computes GPU benefit factors for the virtual machines on a dynamic basis, and combines the computed GBFs with static priorities to determine a ranked ordering of virtual machines. The available GPU resources are then allocated to some subset of these ranked virtual machines as physical GPU capacity is matched with the requirements of the subset. Physical GPU resources are then allocated to the subset of virtual machines that have the highest promise of GPU utilization.
Abstract:
Techniques for emulating geometry shaders and stream output using compute shaders are provided. In one set of embodiments, a geometry shader/stream output (GS/SO) emulation module can receive a geometry shader defined by an application for execution via a geometry shader stage of a graphics processing unit (GPU) of a computer system, where the geometry shader comprises program code for processing an input primitive. The GS/SO emulation module can further convert the geometry shader into one or more compute shaders, where the one or more compute shaders incorporate the program code of the geometry shader. The GS/SO emulation module can then issue the one or more compute shaders to a graphics driver of the computer system for execution via a compute shader stage of the GPU.
Abstract:
Techniques for emulating geometry shaders and stream output using compute shaders are provided. In one set of embodiments, a geometry shader/stream output (GS/SO) emulation module can receive a geometry shader defined by an application for execution via a geometry shader stage of a graphics processing unit (GPU) of a computer system, where the geometry shader comprises program code for processing an input primitive. The GS/SO emulation module can further convert the geometry shader into one or more compute shaders, where the one or more compute shaders incorporate the program code of the geometry shader. The GS/SO emulation module can then issue the one or more compute shaders to a graphics driver of the computer system for execution via a compute shader stage of the GPU.
Abstract:
Systems and methods described herein facilitate processing or rendering desktop graphics for remote desktop display in, for example, a virtual desktop infrastructure (VDI), by decreasing the amount of data being transferred from a graphics processing unit (GPU). More specifically, the embodiments described herein include a host for hosting virtual machines within a VDI, the host includes a GPU that is configured to access a reference frame associated with desktop graphics. The GPU is further configured to generate a current frame associated with desktop graphics. The GPU is also configured to compare the reference frame with the current frame to identify one or more changed portions of the current frame relative to the reference frame, wherein the changed portions are used for the generation of an encoded frame that is configured to be displayed.
Abstract:
Methods, techniques, and systems for dynamically allocating graphics processing units among virtual machines are provided. Example embodiments provide a dynamic GPU allocation system (“DGAS”), which enables the efficient allocation of physical GPU resources to one or more virtual machines. In one embodiment, the DGAS determines runtime profiles of a plurality of virtual machines. The runtime profiles are determined by determining a runtime assessment of workload indicative of a potential benefit that the virtual machine can receive from using a GPU resource. The DGAS then causes the processing bandwidth of the physical GPU resources to be allocated to some of the plurality of virtual machines based upon the dynamically determined runtime assessments of workload.