Split Driver Architecture for Multi-GPU Concurrency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computer systems, especially portable devices, face limitations in supporting high-performance graphics rendering and parallel computing due to the complexity and resource-intensive nature of advanced multi-core GPUs, which restricts their ability to handle a large number of graphics-consumer processes efficiently.

Innovation Solution

A client-server environment is established where client devices can leverage the graphics-rendering power of a server system, utilizing a shared front-end driver module and multiple back-end driver modules to manage and route GPU service requests across a plurality of GPUs, allowing for scalable and efficient parallel processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single driver module manages multiple GPUs, then device complexity is reduced, but productivity and concurrency are limited

Engineering Contradiction:
Improvedriver implementation complexityVSAvoidgraphics processing throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The driver is segmented into multiple independent driver instances, each managing a specific GPU. This segmentation allows each driver instance to operate independently, improving concurrency and productivity while maintaining manageable complexity through modular architecture. Each driver instance can be optimized for its specific GPU without affecting other GPUs in the system.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple driver modules are used to manage multiple GPUs, then productivity and concurrency are improved, but device complexity increases

Engineering Contradiction:
Improvegraphics processing throughputVSAvoiddriver implementation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Multiple instances of the same driver module are deployed, where each instance serves multiple functions: managing its assigned GPU, handling GPU service requests, and coordinating with the graphics stack. This universal approach improves productivity through parallel management while controlling complexity by using identical, well-understood modules rather than creating entirely new complex management systems.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Power

If advanced multi-core GPUs are deployed, then graphics rendering performance is improved, but device complexity and power consumption increase

Engineering Contradiction:
Improvegraphics rendering performanceVSAvoidsystem configuration complexity
Core Design Contradiction:
PowerVSDevice complexity

Solution Approach 1:

The system segments the management of advanced multi-core GPUs by assigning dedicated driver instances to each GPU. This segmentation simplifies the overall system configuration by providing clear, one-to-one mapping between drivers and GPUs, making it easier to manage and configure complex multi-core GPU systems while maintaining high rendering performance.

Inventive Principle:
Principle #1Segmentation

4Productivity

If a large number of GPUs are supported, then parallel processing capability is improved, but mapping complexity increases

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidprocess mapping complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The driver management is segmented such that each driver instance manages exactly one GPU, creating simple and predictable mapping relationships. This segmentation reduces mapping complexity significantly compared to a single driver managing multiple GPUs, as the mapping becomes trivial (one-to-one correspondence) while still supporting a large number of GPUs through multiple independent driver instances.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9734546B2Split driver to control multiple graphics processors in a computer system
Publication Date: 2017.08.15 NVIDIA CORP
  • US9734546B2 patent drawing
  • US9734546B2 patent drawing
  • US9734546B2 patent drawing

AI summary

A computer system includes an operating system having a kernel and configured to launch a plurality of computing processes. The system also includes a plurality of graphics processing units (GPUs), a front-end driver module, and a plurality of back-end driver modules. The GPUs are configured to execute instructions on behalf of the computing processes subject to a GPU service request. The front-end driver module is loaded into the kernel and configured to receive the GPU service request from one of the computing processes. Each back-end driver module is associated with one or more of the GPUs and configured to receive the GPU service request from the front-end driver module and pass the GPU service request to an associated GPU.