Virtual GPU Multithreaded Rendering Parallelism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The complexity of managing and provisioning resources in large-scale distributed systems, particularly in virtualized environments, increases the difficulty in providing efficient graphics processing across multiple computing systems, leading to challenges in maintaining parallelism and optimizing graphics rendering.

Innovation Solution

The implementation of virtualized graphics processing in a provider network, where virtual compute instances are provisioned with virtual GPUs, allowing for the selection of instance types and GPU classes, enabling parallel execution of application threads and efficient graphics processing through multithreaded rendering techniques, including the use of separate network connections for query messages and data slices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If virtualized graphics processing is implemented across multiple computing systems in a distributed network, then resource utilization and processing capacity are improved, but system complexity and difficulty of provisioning increase

Engineering Contradiction:
Improvegraphics processing capacityVSAvoidsystem provisioning complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the graphics processing system into virtual GPU instances that can be independently provisioned and managed. Each virtual GPU instance represents a discrete unit of graphics processing capability that can be allocated to different compute instances, allowing the complex distributed system to be managed through modular, manageable units rather than as a monolithic system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a virtualization layer that acts as an intermediary between the physical GPU hardware and the compute instances. This virtualization layer manages the complexity of resource allocation, scheduling, and provisioning, shielding users from the underlying system complexity while enabling efficient utilization of graphics processing resources across the distributed network.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple application threads are executed in parallel using virtualized GPUs, then rendering performance is improved, but maintaining parallelism and synchronization becomes more difficult

Engineering Contradiction:
Improverendering performanceVSAvoidparallelism management
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent extracts the synchronization and parallelism management logic from the application layer and places it in the virtualization layer. The virtual GPU instances handle thread synchronization, command buffering, and execution scheduling independently, allowing multiple application threads to run in parallel without requiring complex coordination logic in the applications themselves.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent creates virtual copies of GPU execution contexts for each application thread, allowing parallel execution without direct interference between threads. Each virtual GPU instance maintains separate command buffers and execution states, enabling independent parallel execution while the virtualization layer ensures proper synchronization when results need to be combined.

Inventive Principle:
Principle #26Copying

3Speed

If separate network connections are used for query messages and data slices, then communication efficiency is improved, but network infrastructure complexity increases

Engineering Contradiction:
Improvecommunication efficiencyVSAvoidnetwork configuration
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments network communications into separate channels: one for query messages and another for data slices. This segmentation allows each type of communication to be optimized independently - query messages can use connection-oriented protocols for reliability while data slices can use connectionless protocols for speed - without requiring the entire network infrastructure to be reconfigured.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10877769B2Multithreaded rendering for virtualized graphics processing
Publication Date: 2020.12.29 AMAZON TECH INC
  • US10877769B2 patent drawing
  • US10877769B2 patent drawing
  • US10877769B2 patent drawing

AI summary

Methods, systems, and computer-readable media for multithreaded rendering for virtualized graphics processing are disclosed. Commands for a GPU are generated by application threads executing in parallel on a computing device. A virtual GPU is implemented using a physical GPU in a GPU server and attached to the computing device over a network. The GPU server receives the commands from the computing device via the network. Individual commands are associated with identifiers of individual application threads. Based at least in part on the identifiers, the individual commands are assigned to individual execution threads on the GPU server. The individual execution threads correspond to individual application threads. GPU output is generated based at least in part on parallel execution of the commands using the execution threads.